Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update MapLibre GL JS to d8cf29023392b7de85b365cdc17e50ae263a357c #361

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion maplibre-gl-js
Submodule maplibre-gl-js updated 31 files
+13 −9 src/data/array_types.js
+3 −1 src/data/bucket/pattern_attributes.js
+27 −13 src/data/program_configuration.js
+2 −3 src/render/program/fill_extrusion_program.js
+5 −5 src/render/program/fill_program.js
+4 −5 src/render/program/line_program.js
+3 −5 src/render/program/pattern.js
+4 −0 src/shaders/fill_extrusion_pattern.fragment.glsl
+10 −7 src/shaders/fill_extrusion_pattern.vertex.glsl
+10 −7 src/shaders/fill_outline_pattern.vertex.glsl
+10 −7 src/shaders/fill_pattern.vertex.glsl
+23 −19 src/shaders/line_pattern.fragment.glsl
+9 −1 src/shaders/line_pattern.vertex.glsl
+ test/integration/render-tests/fill-extrusion-pattern/1.5x-on-1x-add-image/expected.png
+93 −0 test/integration/render-tests/fill-extrusion-pattern/1.5x-on-1x-add-image/style.json
+ test/integration/render-tests/fill-pattern/3x-on-2x-add-image/expected.png
+79 −0 test/integration/render-tests/fill-pattern/3x-on-2x-add-image/style.json
+ test/integration/render-tests/line-pattern/3x-on-2x-add-image/expected.png
+66 −0 test/integration/render-tests/line-pattern/3x-on-2x-add-image/style.json
+ test/integration/render-tests/line-pattern/@2x/expected.png
+ test/integration/render-tests/line-pattern/literal/expected.png
+ test/integration/render-tests/line-pattern/opacity/expected.png
+ test/integration/render-tests/line-pattern/overscaled/expected.png
+ test/integration/render-tests/line-pattern/pitch/expected.png
+ test/integration/render-tests/line-pattern/property-function/expected.png
+ test/integration/render-tests/line-pattern/step-curve/expected.png
+ test/integration/render-tests/line-pattern/with-dasharray/expected.png
+ test/integration/render-tests/line-pattern/zoom-expression/expected.png
+ test/integration/render-tests/regressions/mapbox-gl-js#5978/expected.png
+ test/integration/render-tests/regressions/mapbox-gl-js#8273/expected.png
+ test/integration/render-tests/regressions/mapbox-gl-native#9976/expected.png
4 changes: 2 additions & 2 deletions src/mbgl/programs/gl/fill_extrusion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ template <>
struct ShaderSource<FillExtrusionProgram> {
static constexpr const char* name = "fill_extrusion";
static constexpr const uint8_t hash[8] = {0x9d, 0x76, 0x7f, 0xaa, 0x86, 0x57, 0x56, 0x96};
static constexpr const auto vertexOffset = 21491;
static constexpr const auto fragmentOffset = 23422;
static constexpr const auto vertexOffset = 22633;
static constexpr const auto fragmentOffset = 24564;
};

constexpr const char* ShaderSource<FillExtrusionProgram>::name;
Expand Down
75 changes: 65 additions & 10 deletions src/mbgl/programs/gl/fill_extrusion_pattern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ struct ShaderSource;
template <>
struct ShaderSource<FillExtrusionPatternProgram> {
static constexpr const char* name = "fill_extrusion_pattern";
static constexpr const uint8_t hash[8] = {0x5a, 0x8f, 0x1a, 0xbf, 0x43, 0x62, 0xf0, 0x86};
static constexpr const auto vertexOffset = 23538;
static constexpr const auto fragmentOffset = 26509;
static constexpr const uint8_t hash[8] = {0x66, 0xa3, 0xd9, 0x87, 0x9b, 0x01, 0x0c, 0xeb};
static constexpr const auto vertexOffset = 24680;
static constexpr const auto fragmentOffset = 28270;
};

constexpr const char* ShaderSource<FillExtrusionPatternProgram>::name;
Expand All @@ -43,7 +43,7 @@ uniform mat4 u_matrix;
uniform vec2 u_pixel_coord_upper;
uniform vec2 u_pixel_coord_lower;
uniform float u_height_factor;
uniform vec4 u_scale;
uniform vec3 u_scale;
uniform float u_vertical_gradient;
uniform lowp float u_opacity;

Expand Down Expand Up @@ -95,6 +95,24 @@ uniform lowp vec4 u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
uniform lowp float u_pixel_ratio_from_t;
attribute lowp vec2 a_pixel_ratio_from;
varying lowp float pixel_ratio_from;
#else
uniform lowp float u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
uniform lowp float u_pixel_ratio_to_t;
attribute lowp vec2 a_pixel_ratio_to;
varying lowp float pixel_ratio_to;
#else
uniform lowp float u_pixel_ratio_to;
#endif


void main() {

#ifndef HAS_UNIFORM_u_base
Expand Down Expand Up @@ -124,22 +142,35 @@ void main() {
mediump vec4 pattern_to = u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
pixel_ratio_from = unpack_mix_vec2(a_pixel_ratio_from, u_pixel_ratio_from_t);
#else
lowp float pixel_ratio_from = u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
pixel_ratio_to = unpack_mix_vec2(a_pixel_ratio_to, u_pixel_ratio_to_t);
#else
lowp float pixel_ratio_to = u_pixel_ratio_to;
#endif


vec2 pattern_tl_a = pattern_from.xy;
vec2 pattern_br_a = pattern_from.zw;
vec2 pattern_tl_b = pattern_to.xy;
vec2 pattern_br_b = pattern_to.zw;

float pixelRatio = u_scale.x;
float tileRatio = u_scale.y;
float fromScale = u_scale.z;
float toScale = u_scale.w;
float tileRatio = u_scale.x;
float fromScale = u_scale.y;
float toScale = u_scale.z;

vec3 normal = a_normal_ed.xyz;
float edgedistance = a_normal_ed.w;

vec2 display_size_a = vec2((pattern_br_a.x - pattern_tl_a.x) / pixelRatio, (pattern_br_a.y - pattern_tl_a.y) / pixelRatio);
vec2 display_size_b = vec2((pattern_br_b.x - pattern_tl_b.x) / pixelRatio, (pattern_br_b.y - pattern_tl_b.y) / pixelRatio);
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;

base = max(0.0, base);
height = max(0.0, height);
Expand Down Expand Up @@ -214,6 +245,20 @@ uniform lowp vec4 u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
varying lowp float pixel_ratio_from;
#else
uniform lowp float u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
varying lowp float pixel_ratio_to;
#else
uniform lowp float u_pixel_ratio_to;
#endif


void main() {

#ifdef HAS_UNIFORM_u_base
Expand All @@ -235,6 +280,16 @@ void main() {
mediump vec4 pattern_to = u_pattern_to;
#endif


#ifdef HAS_UNIFORM_u_pixel_ratio_from
lowp float pixel_ratio_from = u_pixel_ratio_from;
#endif


#ifdef HAS_UNIFORM_u_pixel_ratio_to
lowp float pixel_ratio_to = u_pixel_ratio_to;
#endif


vec2 pattern_tl_a = pattern_from.xy;
vec2 pattern_br_a = pattern_from.zw;
Expand Down
47 changes: 38 additions & 9 deletions src/mbgl/programs/gl/fill_outline_pattern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ struct ShaderSource;
template <>
struct ShaderSource<FillOutlinePatternProgram> {
static constexpr const char* name = "fill_outline_pattern";
static constexpr const uint8_t hash[8] = {0x56, 0x9c, 0x2f, 0x58, 0x6b, 0x31, 0xff, 0x84};
static constexpr const uint8_t hash[8] = {0x47, 0x2d, 0xe3, 0xf9, 0x56, 0xa7, 0xa8, 0x99};
static constexpr const auto vertexOffset = 15345;
static constexpr const auto fragmentOffset = 17205;
static constexpr const auto fragmentOffset = 17776;
};

constexpr const char* ShaderSource<FillOutlinePatternProgram>::name;
Expand All @@ -43,7 +43,7 @@ uniform mat4 u_matrix;
uniform vec2 u_world;
uniform vec2 u_pixel_coord_upper;
uniform vec2 u_pixel_coord_lower;
uniform vec4 u_scale;
uniform vec3 u_scale;

attribute vec2 a_pos;

Expand Down Expand Up @@ -79,6 +79,22 @@ uniform lowp vec4 u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
uniform lowp float u_pixel_ratio_from_t;
attribute lowp vec2 a_pixel_ratio_from;
#else
uniform lowp float u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
uniform lowp float u_pixel_ratio_to_t;
attribute lowp vec2 a_pixel_ratio_to;
#else
uniform lowp float u_pixel_ratio_to;
#endif


void main() {

#ifndef HAS_UNIFORM_u_opacity
Expand All @@ -101,21 +117,34 @@ void main() {
mediump vec4 pattern_to = u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
lowp float pixel_ratio_from = unpack_mix_vec2(a_pixel_ratio_from, u_pixel_ratio_from_t);
#else
lowp float pixel_ratio_from = u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
lowp float pixel_ratio_to = unpack_mix_vec2(a_pixel_ratio_to, u_pixel_ratio_to_t);
#else
lowp float pixel_ratio_to = u_pixel_ratio_to;
#endif


vec2 pattern_tl_a = pattern_from.xy;
vec2 pattern_br_a = pattern_from.zw;
vec2 pattern_tl_b = pattern_to.xy;
vec2 pattern_br_b = pattern_to.zw;

float pixelRatio = u_scale.x;
float tileRatio = u_scale.y;
float fromScale = u_scale.z;
float toScale = u_scale.w;
float tileRatio = u_scale.x;
float fromScale = u_scale.y;
float toScale = u_scale.z;

gl_Position = u_matrix * vec4(a_pos, 0, 1);

vec2 display_size_a = vec2((pattern_br_a.x - pattern_tl_a.x) / pixelRatio, (pattern_br_a.y - pattern_tl_a.y) / pixelRatio);
vec2 display_size_b = vec2((pattern_br_b.x - pattern_tl_b.x) / pixelRatio, (pattern_br_b.y - pattern_tl_b.y) / pixelRatio);
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;

v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, fromScale * display_size_a, tileRatio, a_pos);
v_pos_b = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, toScale * display_size_b, tileRatio, a_pos);
Expand Down
49 changes: 39 additions & 10 deletions src/mbgl/programs/gl/fill_pattern.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ struct ShaderSource;
template <>
struct ShaderSource<FillPatternProgram> {
static constexpr const char* name = "fill_pattern";
static constexpr const uint8_t hash[8] = {0x74, 0xa9, 0x97, 0x01, 0x96, 0xbd, 0x87, 0x36};
static constexpr const auto vertexOffset = 18512;
static constexpr const auto fragmentOffset = 20291;
static constexpr const uint8_t hash[8] = {0xcc, 0xc7, 0x99, 0x6a, 0x62, 0x84, 0xa5, 0x74};
static constexpr const auto vertexOffset = 19083;
static constexpr const auto fragmentOffset = 21433;
};

constexpr const char* ShaderSource<FillPatternProgram>::name;
Expand All @@ -42,7 +42,7 @@ Backend::Create<gfx::Backend::Type::OpenGL>(const ProgramParameters& programPara
uniform mat4 u_matrix;
uniform vec2 u_pixel_coord_upper;
uniform vec2 u_pixel_coord_lower;
uniform vec4 u_scale;
uniform vec3 u_scale;

attribute vec2 a_pos;

Expand Down Expand Up @@ -77,6 +77,22 @@ uniform lowp vec4 u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
uniform lowp float u_pixel_ratio_from_t;
attribute lowp vec2 a_pixel_ratio_from;
#else
uniform lowp float u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
uniform lowp float u_pixel_ratio_to_t;
attribute lowp vec2 a_pixel_ratio_to;
#else
uniform lowp float u_pixel_ratio_to;
#endif


void main() {

#ifndef HAS_UNIFORM_u_opacity
Expand All @@ -99,19 +115,32 @@ void main() {
mediump vec4 pattern_to = u_pattern_to;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_from
lowp float pixel_ratio_from = unpack_mix_vec2(a_pixel_ratio_from, u_pixel_ratio_from_t);
#else
lowp float pixel_ratio_from = u_pixel_ratio_from;
#endif


#ifndef HAS_UNIFORM_u_pixel_ratio_to
lowp float pixel_ratio_to = unpack_mix_vec2(a_pixel_ratio_to, u_pixel_ratio_to_t);
#else
lowp float pixel_ratio_to = u_pixel_ratio_to;
#endif


vec2 pattern_tl_a = pattern_from.xy;
vec2 pattern_br_a = pattern_from.zw;
vec2 pattern_tl_b = pattern_to.xy;
vec2 pattern_br_b = pattern_to.zw;

float pixelRatio = u_scale.x;
float tileZoomRatio = u_scale.y;
float fromScale = u_scale.z;
float toScale = u_scale.w;
float tileZoomRatio = u_scale.x;
float fromScale = u_scale.y;
float toScale = u_scale.z;

vec2 display_size_a = vec2((pattern_br_a.x - pattern_tl_a.x) / pixelRatio, (pattern_br_a.y - pattern_tl_a.y) / pixelRatio);
vec2 display_size_b = vec2((pattern_br_b.x - pattern_tl_b.x) / pixelRatio, (pattern_br_b.y - pattern_tl_b.y) / pixelRatio);
vec2 display_size_a = (pattern_br_a - pattern_tl_a) / pixel_ratio_from;
vec2 display_size_b = (pattern_br_b - pattern_tl_b) / pixel_ratio_to;
gl_Position = u_matrix * vec4(a_pos, 0, 1);

v_pos_a = get_pattern_pos(u_pixel_coord_upper, u_pixel_coord_lower, fromScale * display_size_a, tileZoomRatio, a_pos);
Expand Down
4 changes: 2 additions & 2 deletions src/mbgl/programs/gl/hillshade.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ template <>
struct ShaderSource<HillshadeProgram> {
static constexpr const char* name = "hillshade";
static constexpr const uint8_t hash[8] = {0x8a, 0x11, 0x29, 0x18, 0x52, 0x7f, 0x3b, 0xbb};
static constexpr const auto vertexOffset = 29333;
static constexpr const auto fragmentOffset = 29504;
static constexpr const auto vertexOffset = 31524;
static constexpr const auto fragmentOffset = 31695;
};

constexpr const char* ShaderSource<HillshadeProgram>::name;
Expand Down
4 changes: 2 additions & 2 deletions src/mbgl/programs/gl/hillshade_prepare.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ template <>
struct ShaderSource<HillshadePrepareProgram> {
static constexpr const char* name = "hillshade_prepare";
static constexpr const uint8_t hash[8] = {0xbd, 0xa0, 0x8a, 0x88, 0x91, 0xe3, 0x73, 0x66};
static constexpr const auto vertexOffset = 27906;
static constexpr const auto fragmentOffset = 28199;
static constexpr const auto vertexOffset = 30097;
static constexpr const auto fragmentOffset = 30390;
};

constexpr const char* ShaderSource<HillshadePrepareProgram>::name;
Expand Down
4 changes: 2 additions & 2 deletions src/mbgl/programs/gl/line.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ template <>
struct ShaderSource<LineProgram> {
static constexpr const char* name = "line";
static constexpr const uint8_t hash[8] = {0x7f, 0x8e, 0xaa, 0x53, 0x75, 0x78, 0xac, 0x2c};
static constexpr const auto vertexOffset = 30578;
static constexpr const auto fragmentOffset = 33575;
static constexpr const auto vertexOffset = 32769;
static constexpr const auto fragmentOffset = 35766;
};

constexpr const char* ShaderSource<LineProgram>::name;
Expand Down
4 changes: 2 additions & 2 deletions src/mbgl/programs/gl/line_gradient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ template <>
struct ShaderSource<LineGradientProgram> {
static constexpr const char* name = "line_gradient";
static constexpr const uint8_t hash[8] = {0x3f, 0xba, 0xc6, 0x33, 0xcd, 0x86, 0xa2, 0xe8};
static constexpr const auto vertexOffset = 34444;
static constexpr const auto fragmentOffset = 37236;
static constexpr const auto vertexOffset = 36635;
static constexpr const auto fragmentOffset = 39427;
};

constexpr const char* ShaderSource<LineGradientProgram>::name;
Expand Down
Loading