summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAmy Lee Walton <amylee@mapbox.com>2016-08-11 09:49:36 -0700
committerGitHub <noreply@github.com>2016-08-11 09:49:36 -0700
commitb0cb8715ed74678b4d0f05829fa71a590e41b2f6 (patch)
treeaf1ee87674c0963328b3c3bbdc5685270d647896 /src
parent89190f8d891f7734a3db3267afb746cf83e872d5 (diff)
downloadqtlocation-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.cpp2
-rw-r--r--src/mbgl/geometry/icon_buffer.cpp20
-rw-r--r--src/mbgl/geometry/text_buffer.cpp19
-rw-r--r--src/mbgl/shader/icon_shader.cpp8
-rw-r--r--src/mbgl/shader/sdf_shader.cpp8
-rw-r--r--src/mbgl/shader/shader.cpp2
-rw-r--r--src/mbgl/shader/shader.hpp4
-rw-r--r--src/mbgl/style/style.cpp2
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)),