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
This commit is contained in:
Amy Lee Walton
2016-08-11 09:49:36 -07:00
committed by GitHub
parent 89190f8d89
commit b0cb8715ed
16 changed files with 36 additions and 35 deletions

View File

@@ -20,9 +20,9 @@
"csscolorparser": "^1.0.2",
"ejs": "^2.4.1",
"express": "^4.11.1",
"mapbox-gl-shaders": "mapbox/mapbox-gl-shaders#4d1f89514bf03536c8e682439df165c33a37122a",
"mapbox-gl-shaders": "mapbox/mapbox-gl-shaders#de2ab007455aa2587c552694c68583f94c9f2747",
"mapbox-gl-style-spec": "mapbox/mapbox-gl-style-spec#83b1a3e5837d785af582efd5ed1a212f2df6a4ae",
"mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#8e38705747dee1279a8503d05593543eb9af3ce1",
"mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#1619d84e76ff3434becd51237720d370c7405ee5",
"node-cmake": "^1.2.1",
"request": "^2.72.0",
"tape": "^4.5.1"

View File

@@ -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;

View File

@@ -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);
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;
uint16_t *ushorts = static_cast<uint16_t *>(data);
// a_texture_pos
ushorts[4] /* tex */ = tx / 4;
ushorts[5] /* tex */ = ty / 4;
// 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.
uint8_t *ubytes = static_cast<uint8_t *>(data);
// 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;
}

View File

@@ -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);
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;
uint16_t *ushorts = static_cast<uint16_t *>(data);
// a_texture_pos
ushorts[4] /* tex */ = tx / 4;
ushorts[5] /* tex */ = ty / 4;
// 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.
uint8_t *ubytes = static_cast<uint8_t *>(data);
// 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;
}
} // namespace mbgl

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);

View File

@@ -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)),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 47 KiB