diff options
author | Amy Lee Walton <amylee@mapbox.com> | 2016-08-11 09:49:36 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-11 09:49:36 -0700 |
commit | b0cb8715ed74678b4d0f05829fa71a590e41b2f6 (patch) | |
tree | af1ee87674c0963328b3c3bbdc5685270d647896 /src | |
parent | 89190f8d891f7734a3db3267afb746cf83e872d5 (diff) | |
download | qtlocation-mapboxgl-b0cb8715ed74678b4d0f05829fa71a590e41b2f6.tar.gz |
CJK overflow - update to match gl-shader (#5908)
* update vertex array ushorts
* update atlas size
* testing latest cjk test-suite branch
* update shader ref
* update shaders
* update icon buffer
* shaders
* updated tests
* buffer fix
* updated make tests
* annotation expected updates
* final push
* final fonts
* a_data1 removal
* remove cjk-mixed test
* hiring threshold for cjk-chinese
* update to new test suite
* Rename a_data2 to a_data in sdf and icon shaders
* update test-suite sha
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/geometry/collision_box_buffer.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/geometry/icon_buffer.cpp | 20 | ||||
-rw-r--r-- | src/mbgl/geometry/text_buffer.cpp | 19 | ||||
-rw-r--r-- | src/mbgl/shader/icon_shader.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/shader/sdf_shader.cpp | 8 | ||||
-rw-r--r-- | src/mbgl/shader/shader.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/shader/shader.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/style/style.cpp | 2 |
8 files changed, 33 insertions, 32 deletions
diff --git a/src/mbgl/geometry/collision_box_buffer.cpp b/src/mbgl/geometry/collision_box_buffer.cpp index a47267d566..291c5234e6 100644 --- a/src/mbgl/geometry/collision_box_buffer.cpp +++ b/src/mbgl/geometry/collision_box_buffer.cpp @@ -17,7 +17,7 @@ size_t CollisionBoxVertexBuffer::add(int16_t x, int16_t y, float ox, float oy, f shorts[3] /* offset */ = ::round(oy); uint8_t *ubytes = static_cast<uint8_t *>(data); - // a_data1 + // a_data ubytes[8] = maxzoom * 10; ubytes[9] = placementZoom * 10; diff --git a/src/mbgl/geometry/icon_buffer.cpp b/src/mbgl/geometry/icon_buffer.cpp index 51a4aa69fd..2895ca5c3b 100644 --- a/src/mbgl/geometry/icon_buffer.cpp +++ b/src/mbgl/geometry/icon_buffer.cpp @@ -16,16 +16,18 @@ size_t IconVertexBuffer::add(int16_t x, int16_t y, float ox, float oy, int16_t t shorts[2] /* offset */ = ::round(ox * 64); // use 1/64 pixels for placement shorts[3] /* offset */ = ::round(oy * 64); + uint16_t *ushorts = static_cast<uint16_t *>(data); + // a_texture_pos + ushorts[4] /* tex */ = tx / 4; + ushorts[5] /* tex */ = ty / 4; + uint8_t *ubytes = static_cast<uint8_t *>(data); - // a_data1 - ubytes[8] /* tex */ = tx / 4; - ubytes[9] /* tex */ = ty / 4; - ubytes[10] /* labelminzoom */ = labelminzoom * 10; - ubytes[11] /* labelangle */ = labelangle; - - // a_data2 - ubytes[12] /* minzoom */ = minzoom * 10; // 1/10 zoom levels: z16 == 160. - ubytes[13] /* maxzoom */ = ::fmin(maxzoom, 25) * 10; // 1/10 zoom levels: z16 == 160. + // a_data + ubytes[12] /* labelminzoom */ = labelminzoom * 10; + ubytes[13] /* labelangle */ = labelangle; + + ubytes[14] /* minzoom */ = minzoom * 10; // 1/10 zoom levels: z16 == 160. + ubytes[15] /* maxzoom */ = ::fmin(maxzoom, 25) * 10; // 1/10 zoom levels: z16 == 160. return idx; } diff --git a/src/mbgl/geometry/text_buffer.cpp b/src/mbgl/geometry/text_buffer.cpp index 382e87324d..56f1c402da 100644 --- a/src/mbgl/geometry/text_buffer.cpp +++ b/src/mbgl/geometry/text_buffer.cpp @@ -16,18 +16,21 @@ size_t TextVertexBuffer::add(int16_t x, int16_t y, float ox, float oy, uint16_t shorts[2] /* offset */ = ::round(ox * 64); // use 1/64 pixels for placement shorts[3] /* offset */ = ::round(oy * 64); + uint16_t *ushorts = static_cast<uint16_t *>(data); + // a_texture_pos + ushorts[4] /* tex */ = tx / 4; + ushorts[5] /* tex */ = ty / 4; + uint8_t *ubytes = static_cast<uint8_t *>(data); - // a_data1 - ubytes[8] /* tex */ = tx / 4; - ubytes[9] /* tex */ = ty / 4; - ubytes[10] /* labelminzoom */ = labelminzoom * 10; - ubytes[11] /* labelangle */ = labelangle; + // a_data + ubytes[12] /* labelminzoom */ = labelminzoom * 10; + ubytes[13] /* labelangle */ = labelangle; - // a_data2 - ubytes[12] /* minzoom */ = minzoom * 10; // 1/10 zoom levels: z16 == 160. - ubytes[13] /* maxzoom */ = ::fmin(maxzoom, 25) * 10; // 1/10 zoom levels: z16 == 160. + ubytes[14] /* minzoom */ = minzoom * 10; // 1/10 zoom levels: z16 == 160. + ubytes[15] /* maxzoom */ = ::fmin(maxzoom, 25) * 10; // 1/10 zoom levels: z16 == 160. return idx; } } // namespace mbgl + diff --git a/src/mbgl/shader/icon_shader.cpp b/src/mbgl/shader/icon_shader.cpp index d91fbe2ec0..148cf30043 100644 --- a/src/mbgl/shader/icon_shader.cpp +++ b/src/mbgl/shader/icon_shader.cpp @@ -21,11 +21,11 @@ void IconShader::bind(GLbyte* offset) { MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_offset)); MBGL_CHECK_ERROR(glVertexAttribPointer(a_offset, 2, GL_SHORT, false, stride, offset + 4)); - MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data1)); - MBGL_CHECK_ERROR(glVertexAttribPointer(a_data1, 4, GL_UNSIGNED_BYTE, false, stride, offset + 8)); + MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_texture_pos)); + MBGL_CHECK_ERROR(glVertexAttribPointer(a_texture_pos, 2, GL_UNSIGNED_SHORT, false, stride, offset + 8)); - MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data2)); - MBGL_CHECK_ERROR(glVertexAttribPointer(a_data2, 4, GL_UNSIGNED_BYTE, false, stride, offset + 12)); + MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data)); + MBGL_CHECK_ERROR(glVertexAttribPointer(a_data, 4, GL_UNSIGNED_BYTE, false, stride, offset + 12)); } } // namespace mbgl diff --git a/src/mbgl/shader/sdf_shader.cpp b/src/mbgl/shader/sdf_shader.cpp index 24b6f77d68..5de68e0e40 100644 --- a/src/mbgl/shader/sdf_shader.cpp +++ b/src/mbgl/shader/sdf_shader.cpp @@ -21,11 +21,11 @@ void SDFShader::bind(GLbyte* offset) { MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_offset)); MBGL_CHECK_ERROR(glVertexAttribPointer(a_offset, 2, GL_SHORT, false, stride, offset + 4)); - MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data1)); - MBGL_CHECK_ERROR(glVertexAttribPointer(a_data1, 4, GL_UNSIGNED_BYTE, false, stride, offset + 8)); + MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_texture_pos)); + MBGL_CHECK_ERROR(glVertexAttribPointer(a_texture_pos, 2, GL_UNSIGNED_SHORT, false, stride, offset + 8)); - MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data2)); - MBGL_CHECK_ERROR(glVertexAttribPointer(a_data2, 4, GL_UNSIGNED_BYTE, false, stride, offset + 12)); + MBGL_CHECK_ERROR(glEnableVertexAttribArray(a_data)); + MBGL_CHECK_ERROR(glVertexAttribPointer(a_data, 4, GL_UNSIGNED_BYTE, false, stride, offset + 12)); } } // namespace mbgl diff --git a/src/mbgl/shader/shader.cpp b/src/mbgl/shader/shader.cpp index ae36d21740..34813ac7d6 100644 --- a/src/mbgl/shader/shader.cpp +++ b/src/mbgl/shader/shader.cpp @@ -48,8 +48,6 @@ Shader::Shader(const char* name_, const char* vertexSource, const char* fragment MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_extrude, "a_extrude")); MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_offset, "a_offset")); MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_data, "a_data")); - MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_data1, "a_data1")); - MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_data2, "a_data2")); MBGL_CHECK_ERROR(glBindAttribLocation(program.get(), a_texture_pos, "a_texture_pos")); // Link program diff --git a/src/mbgl/shader/shader.hpp b/src/mbgl/shader/shader.hpp index f7da0c91ab..620e8f1368 100644 --- a/src/mbgl/shader/shader.hpp +++ b/src/mbgl/shader/shader.hpp @@ -34,9 +34,7 @@ protected: static constexpr GLint a_extrude = 1; static constexpr GLint a_offset = 2; static constexpr GLint a_data = 3; - static constexpr GLint a_data1 = 4; - static constexpr GLint a_data2 = 5; - static constexpr GLint a_texture_pos = 6; + static constexpr GLint a_texture_pos = 4; private: bool compileShader(gl::UniqueShader&, const GLchar *source); diff --git a/src/mbgl/style/style.cpp b/src/mbgl/style/style.cpp index ce33a409f7..9df734aeed 100644 --- a/src/mbgl/style/style.cpp +++ b/src/mbgl/style/style.cpp @@ -35,7 +35,7 @@ static Observer nullObserver; Style::Style(FileSource& fileSource_, float pixelRatio) : fileSource(fileSource_), glyphStore(std::make_unique<GlyphStore>(fileSource)), - glyphAtlas(std::make_unique<GlyphAtlas>(1024, 1024)), + glyphAtlas(std::make_unique<GlyphAtlas>(2048, 2048)), spriteStore(std::make_unique<SpriteStore>(pixelRatio)), spriteAtlas(std::make_unique<SpriteAtlas>(1024, 1024, pixelRatio, *spriteStore)), lineAtlas(std::make_unique<LineAtlas>(256, 512)), |