From 209857f8acc73d7950a1c8ec58f4ec7622287e55 Mon Sep 17 00:00:00 2001 From: Gali Nelle Date: Wed, 8 Apr 2020 16:28:35 +0300 Subject: [PATCH] Fix LocationIndicator Layer This changes image size properties to be scales instead of pixel sizes. The commit also adds fixes for handling image updates with the same ID, adds tests for expressions in paint properties, as well as tests for using images with pixel ratio greater than 1. Finally it moves image-tilt-displacement and perspective-compensation properties from layout to paint properties, and includes other minor cleanups. --- .../style/layers/location_indicator_layer.hpp | 20 ++- metrics/cache-metrics.db | Bin 401408 -> 475136 bytes metrics/ignores/platform-ios.json | 5 +- metrics/ignores/platform-linux.json | 17 +- .../location_indicator/dateline/metrics.json | 4 +- .../location_indicator/default/metrics.json | 4 +- .../image_pixel_ratio/metrics.json | 47 ++++++ .../no_radius_border/metrics.json | 4 +- .../no_radius_fill/metrics.json | 4 +- .../no_textures/metrics.json | 4 +- .../one_texture/metrics.json | 4 +- .../location_indicator/rotated/metrics.json | 4 +- .../location_indicator/tilted/metrics.json | 4 +- .../tilted_texture_shift/metrics.json | 4 +- .../metrics.json | 4 +- .../metrics.json | 4 +- .../metrics.json | 4 +- .../metrics.json | 4 +- .../two_textures/metrics.json | 4 +- .../location_indicator/dateline/expected.png | Bin 9307 -> 10498 bytes .../location_indicator/dateline/style.json | 28 ++-- .../location_indicator/default/expected.png | Bin 13669 -> 12436 bytes .../location_indicator/default/style.json | 22 +-- .../image_pixel_ratio/expected.png | Bin 0 -> 12536 bytes .../image_pixel_ratio/style.json | 98 ++++++++++++ .../no_radius_border/expected.png | Bin 9301 -> 8866 bytes .../no_radius_border/style.json | 22 +-- .../no_radius_fill/expected.png | Bin 7625 -> 7349 bytes .../no_radius_fill/style.json | 23 +-- .../location_indicator/no_textures/style.json | 20 +-- .../one_texture/expected.png | Bin 3500 -> 3768 bytes .../location_indicator/one_texture/style.json | 22 +-- .../location_indicator/rotated/expected.png | Bin 9452 -> 8799 bytes .../location_indicator/rotated/style.json | 22 +-- .../location_indicator/tilted/expected.png | Bin 5958 -> 5603 bytes .../location_indicator/tilted/style.json | 22 +-- .../tilted_texture_shift/expected.png | Bin 6502 -> 6104 bytes .../tilted_texture_shift/style.json | 22 +-- .../expected.png | Bin 6396 -> 6323 bytes .../style.json | 22 +-- .../expected.png | Bin 5996 -> 6052 bytes .../style.json | 22 +-- .../expected.png | Bin 3327 -> 3340 bytes .../tilted_texture_shift_top_left/style.json | 22 +-- .../expected.png | Bin 3238 -> 3225 bytes .../tilted_texture_shift_top_right/style.json | 22 +-- .../two_textures/expected.png | Bin 8945 -> 8226 bytes .../two_textures/style.json | 22 +-- platform/glfw/glfw_view.cpp | 8 +- scripts/style-spec.js | 30 ++-- src/mbgl/gl/defines.hpp | 2 +- .../render_location_indicator_layer.cpp | 74 +++++---- .../style/layers/location_indicator_layer.cpp | 150 +++++++++++------- .../location_indicator_layer_properties.hpp | 26 ++- 54 files changed, 490 insertions(+), 356 deletions(-) create mode 100644 metrics/linux-gcc8-release/location_indicator/image_pixel_ratio/metrics.json create mode 100644 metrics/tests/location_indicator/image_pixel_ratio/expected.png create mode 100644 metrics/tests/location_indicator/image_pixel_ratio/style.json diff --git a/include/mbgl/style/layers/location_indicator_layer.hpp b/include/mbgl/style/layers/location_indicator_layer.hpp index f112664da..49720a240 100644 --- a/include/mbgl/style/layers/location_indicator_layer.hpp +++ b/include/mbgl/style/layers/location_indicator_layer.hpp @@ -26,14 +26,6 @@ public: const PropertyValue& getBearingImage() const; void setBearingImage(const PropertyValue&); - static PropertyValue getDefaultImageTiltDisplacement(); - const PropertyValue& getImageTiltDisplacement() const; - void setImageTiltDisplacement(const PropertyValue&); - - static PropertyValue getDefaultPerspectiveCompensation(); - const PropertyValue& getPerspectiveCompensation() const; - void setPerspectiveCompensation(const PropertyValue&); - static PropertyValue getDefaultShadowImage(); const PropertyValue& getShadowImage() const; void setShadowImage(const PropertyValue&); @@ -74,12 +66,24 @@ public: void setBearingImageSizeTransition(const TransitionOptions&); TransitionOptions getBearingImageSizeTransition() const; + static PropertyValue getDefaultImageTiltDisplacement(); + const PropertyValue& getImageTiltDisplacement() const; + void setImageTiltDisplacement(const PropertyValue&); + void setImageTiltDisplacementTransition(const TransitionOptions&); + TransitionOptions getImageTiltDisplacementTransition() const; + static PropertyValue> getDefaultLocation(); const PropertyValue>& getLocation() const; void setLocation(const PropertyValue>&); void setLocationTransition(const TransitionOptions&); TransitionOptions getLocationTransition() const; + static PropertyValue getDefaultPerspectiveCompensation(); + const PropertyValue& getPerspectiveCompensation() const; + void setPerspectiveCompensation(const PropertyValue&); + void setPerspectiveCompensationTransition(const TransitionOptions&); + TransitionOptions getPerspectiveCompensationTransition() const; + static PropertyValue getDefaultShadowImageSize(); const PropertyValue& getShadowImageSize() const; void setShadowImageSize(const PropertyValue&); diff --git a/metrics/cache-metrics.db b/metrics/cache-metrics.db index 53ddff9bf6af2ad2735592803c16a49aec086bc3..317bc0d22a704f1d42f48091b91c7ae9a6d9b096 100644 GIT binary patch delta 70860 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 delta 170 zcmZo@kZm|1F+rNOkAZ<9X`+HXW8cPv2Eol%LdSR~E{K|>z#_)Ze-|jnki`F+{~P~D z{x|&3`5*D$-8eCud2_3>9}kxryYzim`&a7eeUtC%tFv+PNiy);Zss!p8Q{sH$sEo& z-C-81)Mj(L6M~GKn*vx0#5nmkF!2B2f6xDn|1SR({?q)2_;>Pe*evKUjlX%r`SuOx T8G)Dyh?#+yW&4KntN{T46H`4> diff --git a/metrics/ignores/platform-ios.json b/metrics/ignores/platform-ios.json index 1dce0e9f7..45179e02c 100644 --- a/metrics/ignores/platform-ios.json +++ b/metrics/ignores/platform-ios.json @@ -8,5 +8,6 @@ "render-tests/regressions/mapbox-gl-js#2305": "Needs to be investigated and fixed.", "render-tests/regressions/mapbox-gl-js#5911a": "Needs to be investigated and fixed.", "render-tests/text-field/formatted-images": "Needs to be investigated and fixed.", - "render-tests/symbol-visibility/visible": "Needs to be investigated and fixed." -} \ No newline at end of file + "render-tests/symbol-visibility/visible": "Needs to be investigated and fixed.", + "location_indicator/image_pixel_ratio": "Renders a black square when loading from spritesheet. Needs to be investigated and fixed." +} diff --git a/metrics/ignores/platform-linux.json b/metrics/ignores/platform-linux.json index 0988aff5a..29d06bfc3 100644 --- a/metrics/ignores/platform-linux.json +++ b/metrics/ignores/platform-linux.json @@ -6,5 +6,20 @@ "render-tests/line-pattern/opacity": "Flaky on Linux: https://github.com/mapbox/mapbox-gl-native/issues/15320", "render-tests/line-translate/literal": "Flaky on Linux: https://github.com/mapbox/mapbox-gl-native/issues/14859", "render-tests/regressions/mapbox-gl-js#5642": "Failing with mbgl-render-test", - "render-tests/regressions/mapbox-gl-js#7066": "Failing with mbgl-render-test" + "render-tests/regressions/mapbox-gl-js#7066": "Failing with mbgl-render-test", + "location_indicator/dateline": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/default": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/no_radius_border": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/no_radius_fill": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/no_textures": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/one_texture": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/rotated": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted_texture_shift": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted_texture_shift_bottom_left": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted_texture_shift_bottom_right": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted_texture_shift_top_left": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/tilted_texture_shift_top_right": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/two_textures": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering", + "location_indicator/image_pixel_ratio": "Would need a different baseline when ran on llvmpipe not supporting anisotropic filtering" } diff --git a/metrics/linux-gcc8-release/location_indicator/dateline/metrics.json b/metrics/linux-gcc8-release/location_indicator/dateline/metrics.json index 4a2be5e04..2f6c9155e 100644 --- a/metrics/linux-gcc8-release/location_indicator/dateline/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/dateline/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2672223, - 83215 + 2027402, + 3196 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/default/metrics.json b/metrics/linux-gcc8-release/location_indicator/default/metrics.json index 4e7c613e5..ac69157f1 100644 --- a/metrics/linux-gcc8-release/location_indicator/default/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/default/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2796203, - 107023 + 2234412, + 3784 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/image_pixel_ratio/metrics.json b/metrics/linux-gcc8-release/location_indicator/image_pixel_ratio/metrics.json new file mode 100644 index 000000000..4e2534707 --- /dev/null +++ b/metrics/linux-gcc8-release/location_indicator/image_pixel_ratio/metrics.json @@ -0,0 +1,47 @@ +{ + "memory": [ + [ + "probeMemory - default - end", + 3103973, + 6137 + ], + [ + "probeMemory - default - start", + 0, + 0 + ] + ], + "network": [ + [ + "probeNetwork - default - end", + 5, + 117617 + ], + [ + "probeNetwork - default - start", + 0, + 0 + ] + ], + "gfx": [ + [ + "probeGFX - default - end", + 4, + 9, + 13, + 1, + [ + 131072, + 131072 + ], + [ + 70, + 70 + ], + [ + 128, + 128 + ] + ] + ] +} \ No newline at end of file diff --git a/metrics/linux-gcc8-release/location_indicator/no_radius_border/metrics.json b/metrics/linux-gcc8-release/location_indicator/no_radius_border/metrics.json index f5a86bed6..089757dbd 100644 --- a/metrics/linux-gcc8-release/location_indicator/no_radius_border/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/no_radius_border/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2656163, - 83134 + 2005701, + 3122 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/no_radius_fill/metrics.json b/metrics/linux-gcc8-release/location_indicator/no_radius_fill/metrics.json index 59f8c6906..98e4fcf8c 100644 --- a/metrics/linux-gcc8-release/location_indicator/no_radius_fill/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/no_radius_fill/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2673019, - 83236 + 2022418, + 3216 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/no_textures/metrics.json b/metrics/linux-gcc8-release/location_indicator/no_textures/metrics.json index 65004f1ea..88ff6a5ce 100644 --- a/metrics/linux-gcc8-release/location_indicator/no_textures/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/no_textures/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2377735, - 21656 + 2034636, + 2864 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/one_texture/metrics.json b/metrics/linux-gcc8-release/location_indicator/one_texture/metrics.json index a17b453ed..67060da88 100644 --- a/metrics/linux-gcc8-release/location_indicator/one_texture/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/one_texture/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2665727, - 83226 + 2020507, + 3166 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/rotated/metrics.json b/metrics/linux-gcc8-release/location_indicator/rotated/metrics.json index 63f9083f5..75a417e01 100644 --- a/metrics/linux-gcc8-release/location_indicator/rotated/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/rotated/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2660636, - 83197 + 2023574, + 3274 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted/metrics.json index f8f7bbfeb..0e0a349c6 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2703062, - 83350 + 2057114, + 3257 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift/metrics.json index e09448751..5cb3be895 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2677760, - 83330 + 2046282, + 3307 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_left/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_left/metrics.json index 83ba4134d..56203676a 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_left/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_left/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2735091, - 83429 + 2041058, + 3281 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_right/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_right/metrics.json index 72b8c8e81..73727dc0b 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_right/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_bottom_right/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2714461, - 83383 + 2059723, + 3308 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_left/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_left/metrics.json index e315cad55..4d8c02fdf 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_left/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_left/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2717377, - 83399 + 2064963, + 3344 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_right/metrics.json b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_right/metrics.json index c6cdf715c..1f8d87e77 100644 --- a/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_right/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/tilted_texture_shift_top_right/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2692872, - 83405 + 2055996, + 3285 ], [ "probeMemory - default - start", diff --git a/metrics/linux-gcc8-release/location_indicator/two_textures/metrics.json b/metrics/linux-gcc8-release/location_indicator/two_textures/metrics.json index 30d331e1c..3399194e5 100644 --- a/metrics/linux-gcc8-release/location_indicator/two_textures/metrics.json +++ b/metrics/linux-gcc8-release/location_indicator/two_textures/metrics.json @@ -2,8 +2,8 @@ "memory": [ [ "probeMemory - default - end", - 2680943, - 83221 + 2019370, + 3117 ], [ "probeMemory - default - start", diff --git a/metrics/tests/location_indicator/dateline/expected.png b/metrics/tests/location_indicator/dateline/expected.png index 8e1e2e95e95df92b14745e74c985704c98230d91..a188b219f44b74857de1e044d023e1077f7a643c 100644 GIT binary patch literal 10498 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 TD&AoY^LRS$aCIo!<{$Szju7PR literal 9307 zcmdUV`6HCu|M+>H8T&p`+L#zAuI1e(Ni#}i$x_!=!rT@~LLp_FhqP#;B+53GTOvz0 zg~UvYB!!lV5;J7qhOy7~e2@G7em>v7;p>OTabD-V&N;7rk>u*UQ$=x!A^Ix`lQeAwx`_Ney8l*<+vb>$-Q(> z_fp)dpRJFUf4lfw*6A1d_?>mD@2q=r&@gIGRbGDiAF223E-$dJHrNv~H{Hm|8Vc)c ztgdQkY5YAyP(5XD>ban&Tilzqc5Uuzcr4j!%i0lLH~^|T#QDFsslzX(Y%@Q#hKRuL zd-eZM0hrtA+9b36+}H}f0;tCTc)P>%hOX)i^+h)T_Xv>i%PoHB+TP-|19lv(YbOz)atLU3v=d(hGzuAjXe3Ej16))l0(yDMtOkO~ zLt39wER+sh24GklPVcc3cM>@OTYeURT?zIZzB)%G`oVcUi2VeeqZ{X{0y5;`#Dd4d z---nYI2aGWDJ$R-8EeKp<9s5`pA1seD2xMcaH|HKN9uF6E#P`05q!DO?Xqi$ z9XJG~{^&M=;VF``%vM>r-gK8(vkKxT$syRf6?2-=8g_u93>R%3$Zaj8>j07rf=$AM zqnAT~JOtQ4Kr&McC?o*drWA3KL>cZTAXqqal6%SJl*U)-kF(1AkQ8-!kZ03dh`W6I z9amR|7yqdS*C7ZtTfcEm*Y@>J`7DSe3BFc*$V-@e>PwR^F(0L&WT0+wyGZ&lyITWU z>V}XJb#O6L*#ob#f7cYb_#(~4RR()+1IWH47ipEl?AcevskpEGt1?Ei9l&&npo=p8 z1%GSLNJzvV#}r*Vn-YH%-!fwoAVYf#Q5z-|OJ`n`@mGpA32UBjvwZI{e`p?r=t4+j z)z1)v2#Mtx-*;aHzjt@WCjTdo+;9oFgNu;nUHY#$xU(k1c(vy$WnE0-2;40l&3 zQ?Ag8AEsbNz?O)D6DjOL#+Nueznfe6I=$QP9l>5OSo!w(#FM3ZO2u{+9K_F^+!i>G z9twLG`6QCDYP_(UTRzxQ&+=_|>`G5GYiekHZtr)X;obAOJAFf2&YbSoxN54Qy?$xR zVvEh@-7fMEXCt7QJ$^r6Kv5b_FLsDu?Ed z>O|OK#qtz0L>}0pDCpE2A7oj~skM2FesxpryGk@`oO<04c-l*^E$wO9^~?Rl&YHUO z3sIjH0rlA0b*+|5d8wG-cQ*yw0BoUh`~~+jvT_*Q58UNrsgGh8^S&C#?tM~KFMY0A zz9Uf-bw>BP!Xr|}8lI|((4P>~Cr2?xpqQfSKt9t>hW@y_gvj<3%uLP2T1%ph21GX` zPFfb%bQv0g{S2p^^jwQh2OAT@^8)5}dNfaWL6AFoej9Fzh%#=@(~J!zJ4nw2cUd#S z^%n4rrwae6HtTf!hZU?TnOd`

Jv3HTUF|#cfRuEyWFe%PlJgt|Qh~JP$&+H}fgU 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 diff --git a/metrics/tests/location_indicator/dateline/style.json b/metrics/tests/location_indicator/dateline/style.json index 410fc5c53..ff9bd5ea1 100644 --- a/metrics/tests/location_indicator/dateline/style.json +++ b/metrics/tests/location_indicator/dateline/style.json @@ -39,29 +39,23 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : ["interpolate", ["linear"], ["zoom"], 8, 0, 24, 90], + "perspective-compensation" : ["interpolate", ["linear"], ["zoom"], 8, 0, 16, 1], + "image-tilt-displacement" : ["interpolate", ["linear"], ["zoom"], 8, 0, 16, 6.5], "location" : [ 35.693055, 139.766707, 0], - "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "accuracy-radius": ["interpolate", ["linear"], ["zoom"], 8, 0, 24, 180], + "bearing-image-size" : ["interpolate", ["linear"], ["zoom"], 8, 0, 24, 0.52], + "top-image-size" : ["interpolate", ["linear"], ["zoom"], 8, 0, 24, 0.36], + "shadow-image-size" : ["interpolate", ["linear"], ["zoom"], 8, 0, 24, 0.4], - "accuracy-radius-color": "rgba(255,0,0,0.2)", - "accuracy-radius-border-color": "rgba(255,0,255,0.6)" + "accuracy-radius-color": ["interpolate", ["linear"], ["zoom"], 8, "rgba(255,0,0,0.2)", 24, "rgba(255,255,0,0.4)"], + "accuracy-radius-border-color": ["interpolate", ["linear"], ["zoom"], 8, "rgba(255,0,255,0.2)", 24, "rgba(255,0,255,1)"] } } ] diff --git a/metrics/tests/location_indicator/default/expected.png b/metrics/tests/location_indicator/default/expected.png index 5823cce89e4e3c9610ab59073367d73e5a9ab698..f27cb64d987fbb688a0f13a2eefc3fcb6ec23a16 100644 GIT binary patch literal 12436 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 literal 13669 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�H&`V97OdV@@eA2W>=UWDwAYcQS}sLTK_nf&U6g^* zxei{|lf+#I^A%fN5U-lwNeL�GGt}zZU9!4#c!yvH|s{PoTB`gzo#S9ea1Ahv+b_ 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 diff --git a/metrics/tests/location_indicator/default/style.json b/metrics/tests/location_indicator/default/style.json index b0f58b405..409b980c5 100644 --- a/metrics/tests/location_indicator/default/style.json +++ b/metrics/tests/location_indicator/default/style.json @@ -71,26 +71,20 @@ { "id": "puck124", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/image_pixel_ratio/expected.png b/metrics/tests/location_indicator/image_pixel_ratio/expected.png new file mode 100644 index 0000000000000000000000000000000000000000..b48b9e1340f0235ca15ce141dbd9b887c9affcc0 GIT binary patch literal 12536 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 literal 0 HcmV?d00001 diff --git a/metrics/tests/location_indicator/image_pixel_ratio/style.json b/metrics/tests/location_indicator/image_pixel_ratio/style.json new file mode 100644 index 000000000..4c52ef1ee --- /dev/null +++ b/metrics/tests/location_indicator/image_pixel_ratio/style.json @@ -0,0 +1,98 @@ +{ + "version": 8, + "metadata": { + "test": { + "width": 512, + "height": 256, + "operations": [ + [ + "addImage", + "puck_hat@2x", + "puck_hat.png", + {"pixelRatio": 2.0} + ], + [ + "addImage", + "puck@2x", + "puck.png", + {"pixelRatio": 2.0} + + ], + [ + "addImage", + "puck_shadow@2x", + "puck_shadow.png", + {"pixelRatio": 2.0} + ] + ] + } + }, + "sources": { + "geojson": { + "type": "geojson", + "data": { + "type": "FeatureCollection", + "features": [ + { + "type": "Feature", + "properties": { + }, + "geometry": { + "type": "Point", + "coordinates": [ + 139.766707, + 35.693055 + + ] + } + } + ] + } + } + }, + "center": [ 139.766707, 35.693055 ], + "zoom": 16, + "pitch" : 0, + "bearing" : 42, + "sprite" : "local://sprites/emerald@2x", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "lightseagreen" + } + }, + { + "id": "puck123", + "type": "circle", + "source": "geojson", + "paint": { + "circle-radius": 40, + "circle-color" : "rgba(255,0,0,0.1)" + } + }, + { + "id": "puck124", + "type": "location-indicator", + "layout" : { + "bearing-image" : "puck@2x", + "top-image" : "marker_icon", + "shadow-image" : "puck_shadow@2x" + }, + "paint" : { + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, + "location" : [ 35.693055, 139.766707, 0], + "accuracy-radius": 90.0, + "bearing-image-size" : 0.52, + "top-image-size" : 1, + "shadow-image-size" : 0.4, + + "accuracy-radius-color": "rgba(255,0,0,0.2)", + "accuracy-radius-border-color": "rgba(255,0,255,0.6)" + } + } + ] +} diff --git a/metrics/tests/location_indicator/no_radius_border/expected.png b/metrics/tests/location_indicator/no_radius_border/expected.png index 436a27ed08d927c41984d60fee0df110efeadacd..c457e027dc40e789763ebad26425c6019e31ef19 100644 GIT binary patch literal 8866 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 diff --git a/metrics/tests/location_indicator/no_radius_border/style.json b/metrics/tests/location_indicator/no_radius_border/style.json index 922cd0c0f..0037b35ac 100644 --- a/metrics/tests/location_indicator/no_radius_border/style.json +++ b/metrics/tests/location_indicator/no_radius_border/style.json @@ -40,26 +40,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)" } diff --git a/metrics/tests/location_indicator/no_radius_fill/expected.png b/metrics/tests/location_indicator/no_radius_fill/expected.png index 447546c880e6c9d184795908e21773965c97fe8e..5563f33f25b7288aee342303509bdbb34ca5072e 100644 GIT binary patch literal 7349 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 literal 7625 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 diff --git a/metrics/tests/location_indicator/no_radius_fill/style.json b/metrics/tests/location_indicator/no_radius_fill/style.json index a01ee0c57..1848b2869 100644 --- a/metrics/tests/location_indicator/no_radius_fill/style.json +++ b/metrics/tests/location_indicator/no_radius_fill/style.json @@ -39,27 +39,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-border-color": "rgba(255,0,255,0.6)" } diff --git a/metrics/tests/location_indicator/no_textures/style.json b/metrics/tests/location_indicator/no_textures/style.json index 1cae891f7..3864f748a 100644 --- a/metrics/tests/location_indicator/no_textures/style.json +++ b/metrics/tests/location_indicator/no_textures/style.json @@ -39,23 +39,17 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "layout" : { }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/one_texture/expected.png b/metrics/tests/location_indicator/one_texture/expected.png index c0fb9ce58093894bb43897fa893bba7bcdf290b3..b955f639936ec83e473ac96a883628082815362e 100644 GIT binary patch literal 3768 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 T8hV6Yq_A#{&+432K_~wWfE66l literal 3500 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 diff --git a/metrics/tests/location_indicator/one_texture/style.json b/metrics/tests/location_indicator/one_texture/style.json index f44b698c0..f6a976f0f 100644 --- a/metrics/tests/location_indicator/one_texture/style.json +++ b/metrics/tests/location_indicator/one_texture/style.json @@ -39,24 +39,18 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, - "bearing-image" : "puck", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "layout" : { + "bearing-image" : "puck" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/rotated/expected.png b/metrics/tests/location_indicator/rotated/expected.png index 4b481b12d581aaffff4b3041b1d2dc139bbaac1d..b3fcfc8201c1281dd189faec71ac5311fde820c5 100644 GIT binary patch literal 8799 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 R)IN7EyKN5E*;_ng{s$OKU{3%5 literal 9452 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 Bd^7+6 diff --git a/metrics/tests/location_indicator/rotated/style.json b/metrics/tests/location_indicator/rotated/style.json index 5a75f56e2..e7e9d90cd 100644 --- a/metrics/tests/location_indicator/rotated/style.json +++ b/metrics/tests/location_indicator/rotated/style.json @@ -39,26 +39,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 0, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 0, + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/tilted/expected.png b/metrics/tests/location_indicator/tilted/expected.png index 624be49df3caac4255d4fd58279cb501c667433b..4408e2a4b4cb7fd554e83417463535562d426cb7 100644 GIT binary patch literal 5603 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 literal 5958 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 MpWEKzJpot#3lhehO8@`> diff --git a/metrics/tests/location_indicator/tilted/style.json b/metrics/tests/location_indicator/tilted/style.json index 9dfe1033f..fb6b31be4 100644 --- a/metrics/tests/location_indicator/tilted/style.json +++ b/metrics/tests/location_indicator/tilted/style.json @@ -39,26 +39,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 0 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "bearing" : 45, + "perspective-compensation" : 1, + "image-tilt-displacement" : 0, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/tilted_texture_shift/expected.png b/metrics/tests/location_indicator/tilted_texture_shift/expected.png index 0a4baa1b584813195809c8b546927dc5e6480708..8b533f7da756241fde405bc9f545001382fe041f 100644 GIT binary patch literal 6104 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 RU-?D>4(xT_Q)*9-|1WpIusi?& diff --git a/metrics/tests/location_indicator/tilted_texture_shift/style.json b/metrics/tests/location_indicator/tilted_texture_shift/style.json index 6b6372ae1..1ee6e3ab2 100644 --- a/metrics/tests/location_indicator/tilted_texture_shift/style.json +++ b/metrics/tests/location_indicator/tilted_texture_shift/style.json @@ -39,26 +39,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, + "bearing" : 45, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/expected.png b/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/expected.png index a651914b0901f1d68a5c64bcfcf67c5213ab1654..e1de70ede8fc4f8b36a3ae020272af97d68c55ae 100644 GIT binary patch literal 6323 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 W$xA{?EsenZ?E5NsPt7jM#s38;cpMY} literal 6396 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 diff --git a/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/style.json b/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/style.json index 1d5bb8ae6..dd7667bf2 100644 --- a/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/style.json +++ b/metrics/tests/location_indicator/tilted_texture_shift_bottom_left/style.json @@ -40,26 +40,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, + "bearing" : 45, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/expected.png b/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/expected.png index d0839ea66f4a90ef663f7e1e49111900145fa4c8..d6b3c330a637b76966ae17277f23771ced21e2e3 100644 GIT binary patch literal 6052 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 literal 5996 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 diff --git a/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/style.json b/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/style.json index 611bea2a9..53b80572b 100644 --- a/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/style.json +++ b/metrics/tests/location_indicator/tilted_texture_shift_bottom_right/style.json @@ -39,26 +39,20 @@ { "id": "puck123", "type": "location-indicator", - "layout" : { "bearing" : 45, + "layout" : { "bearing-image" : "puck", "top-image" : "puck_hat", - "shadow-image" : "puck_shadow", - "perspective-compensation" : 1, - "image-tilt-displacement" : 5 + "shadow-image" : "puck_shadow" }, "paint" : { - "accuracy-radius-transition": { "duration": 0, "delay": 0 }, - "bearing-image-size-transition": { "duration": 0, "delay": 0 }, - "top-image-size-transition": { "duration": 0, "delay": 0 }, - "shadow-image-size-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-color-transition": { "duration": 0, "delay": 0 }, - "accuracy-radius-border-color-transition": { "duration": 0, "delay": 0 }, - + "perspective-compensation" : 1, + "image-tilt-displacement" : 6.5, + "bearing" : 45, "location" : [ 35.693055, 139.766707, 0], "accuracy-radius": 90.0, - "bearing-image-size" : 48, - "top-image-size" : 16, - "shadow-image-size" : 112, + "bearing-image-size" : 0.26, + "top-image-size" : 0.18, + "shadow-image-size" : 0.2, "accuracy-radius-color": "rgba(255,0,0,0.2)", "accuracy-radius-border-color": "rgba(255,0,255,0.6)" diff --git a/metrics/tests/location_indicator/tilted_texture_shift_top_left/expected.png b/metrics/tests/location_indicator/tilted_texture_shift_top_left/expected.png index 48747eb194289437d86a9c789b2bc3f402b7680e..9d31ed9a48599f14661acc4c6ccb5c5663c23bc1 100644 GIT binary patch delta 2317 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 SF`JlE$bGAq%bhKpsetBearingTransition(mbgl::style::TransitionOptions(mbgl::Duration::zero(), mbgl::Duration::zero())); puckLayer->setBearing(mbgl::style::Rotation(0.0)); puckLayer->setAccuracyRadiusBorderColor(premultiply(mbgl::Color{0.0, 1.0, 0.2, 0.4})); - puckLayer->setTopImageSize(24); - puckLayer->setBearingImageSize(72); - puckLayer->setShadowImageSize(96); - puckLayer->setImageTiltDisplacement(8.0f); // set to 0 for a "flat" puck + puckLayer->setTopImageSize(0.18); + puckLayer->setBearingImageSize(0.26); + puckLayer->setShadowImageSize(0.2); + puckLayer->setImageTiltDisplacement(7.0f); // set to 0 for a "flat" puck puckLayer->setPerspectiveCompensation(0.9); map->getStyle().addImage(std::make_unique( diff --git a/scripts/style-spec.js b/scripts/style-spec.js index 15a4c7e0d..fc16849de 100644 --- a/scripts/style-spec.js +++ b/scripts/style-spec.js @@ -34,7 +34,10 @@ referenceSpec["layout_location-indicator"] = { ] }, "doc": "Name of image in sprite to use as the background of the location indicator." - }, + } +}; + +referenceSpec["paint_location-indicator"] = { "perspective-compensation": { "type": "number", "default": "0.85", @@ -59,10 +62,7 @@ referenceSpec["layout_location-indicator"] = { ] }, "doc": "The displacement off the center of the top image and the shadow image when the pitch of the map is greater than 0. This helps producing a three-dimensional appearence." - } -}; - -referenceSpec["paint_location-indicator"] = { + }, "bearing": { "type": "number", "default": "0", @@ -74,7 +74,7 @@ referenceSpec["paint_location-indicator"] = { "interpolated": false, "parameters": [ ] }, - "transition": false, + "transition": true, "doc": "The bearing of the location indicator." }, "location": { @@ -110,9 +110,9 @@ referenceSpec["paint_location-indicator"] = { }, "top-image-size": { "type": "number", - "units": "pixels", + "units": "factor of the original icon size", "property-type": "data-constant", - "default": 0, + "default": 1, "expression": { "interpolated": true, "parameters": [ @@ -120,13 +120,13 @@ referenceSpec["paint_location-indicator"] = { ] }, "transition": true, - "doc": "The size of the top image, in pixels." + "doc": "The size of the top image, as a scale factor applied to the size of the specified image." }, "bearing-image-size": { "type": "number", - "units": "pixels", + "units": "factor of the original icon size", "property-type": "data-constant", - "default": 0, + "default": 1, "expression": { "interpolated": true, "parameters": [ @@ -134,13 +134,13 @@ referenceSpec["paint_location-indicator"] = { ] }, "transition": true, - "doc": "The size of the bearing image, in pixels." + "doc": "The size of the bearing image, as a scale factor applied to the size of the specified image." }, "shadow-image-size": { "type": "number", - "units": "pixels", + "units": "factor of the original icon size", "property-type": "data-constant", - "default": 0, + "default": 1, "expression": { "interpolated": true, "parameters": [ @@ -148,7 +148,7 @@ referenceSpec["paint_location-indicator"] = { ] }, "transition": true, - "doc": "The size of the shadow image, in pixels." + "doc": "The size of the shadow image, as a scale factor applied to the size of the specified image." }, "accuracy-radius-color": { "type": "color", diff --git a/src/mbgl/gl/defines.hpp b/src/mbgl/gl/defines.hpp index 1d9177d06..52dc92d23 100644 --- a/src/mbgl/gl/defines.hpp +++ b/src/mbgl/gl/defines.hpp @@ -149,6 +149,7 @@ #define GL_TEXTURE_2D 0x0DE1 #define GL_TEXTURE_BINDING_2D 0x8069 #define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #define GL_TEXTURE_MIN_FILTER 0x2801 #define GL_TEXTURE_WRAP_S 0x2802 #define GL_TEXTURE_WRAP_T 0x2803 @@ -163,7 +164,6 @@ #define GL_VERTEX_SHADER 0x8B31 #define GL_VIEWPORT 0x0BA2 #define GL_ZERO 0 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE #ifdef MBGL_USE_GLES2 #define GL_HALF_FLOAT 0x8D61 #else diff --git a/src/mbgl/renderer/layers/render_location_indicator_layer.cpp b/src/mbgl/renderer/layers/render_location_indicator_layer.cpp index 94ac46e21..f3d72f02d 100644 --- a/src/mbgl/renderer/layers/render_location_indicator_layer.cpp +++ b/src/mbgl/renderer/layers/render_location_indicator_layer.cpp @@ -48,9 +48,9 @@ struct LocationIndicatorRenderParameters { double errorRadiusMeters; mbgl::Color errorRadiusColor{0, 0, 0, 0}; mbgl::Color errorRadiusBorderColor{0, 0, 0, 0}; - int puckSizePx = 0; - int puckHatSizePx = 0; - int puckShadowSizePx = 0; + float puckScale = 0; + float puckHatScale = 0; + float puckShadowScale = 0; float puckLayersDisplacement = 0; float perspectiveCompensation = 0; std::string puckImagePath; @@ -266,7 +266,6 @@ public: ~Texture() { release(); } void release() { MBGL_CHECK_ERROR(glDeleteTextures(1, &texId)); - texId = 0; image = nullptr; } /* @@ -276,10 +275,16 @@ public: if ((img && &img->get()->image == image) || (!img && !image)) return; imageDirty = true; image = (img) ? &img->get()->image : nullptr; - if (img) + width = height = 0; + pixelRatio = 1.0f; + if (img) { sharedImage = *img; // keep reference until uploaded - else + width = image->size.width; + height = image->size.height; + pixelRatio = img->get()->pixelRatio; + } else { sharedImage = nullopt; + } } void upload() { @@ -329,13 +334,21 @@ public: const mbgl::PremultipliedImage* image = nullptr; optional> sharedImage; bool imageDirty = false; + size_t width = 0; + size_t height = 0; + float pixelRatio = 1.0f; }; RenderLocationIndicatorImpl() : ruler(0, mapbox::cheap_ruler::CheapRuler::Meters) {} - static bool hasExtension(const std::string& ext) { - if (const auto* extensions = reinterpret_cast(MBGL_CHECK_ERROR(glGetString(GL_EXTENSIONS)))) { - if (strstr(extensions, ext.c_str()) != nullptr) return true; + static bool hasAnisotropicFiltering() { + const auto* extensions = reinterpret_cast(glGetString(GL_EXTENSIONS)); + GLenum error = glGetError(); + if (error != GL_NO_ERROR) { // glGetString(GL_EXTENSIONS) is deprecated in OpenGL Desktop 3.0+. But OpenGL 3.0+ + // has anisotropic filtering. + return true; + } else { + if (strstr(extensions, "GL_EXT_texture_filter_anisotropic") != nullptr) return true; } return false; } @@ -343,7 +356,7 @@ public: // Check if anisotropic filtering is available if (initialized) return; initialized = true; - if (hasExtension("GL_EXT_texture_filter_anisotropic")) anisotropicFilteringAvailable = true; + if (hasAnisotropicFiltering()) anisotropicFilteringAvailable = true; simpleShader.initialize(); texturedShader.initialize(); texCoords = {{{0.0f, 1.0f}, @@ -363,7 +376,7 @@ public: void release() { if (!simpleShader.program) return; - textures.clear(); + for (const auto& t : textures) t.second->release(); buffer.release(); circleBuffer.release(); puckBuffer.release(); @@ -382,16 +395,13 @@ public: } else if (params.puckBearing != oldParams.puckBearing || params.puckLayersDisplacement != oldParams.puckLayersDisplacement || params.perspectiveCompensation != oldParams.perspectiveCompensation || - params.puckSizePx != oldParams.puckSizePx || params.puckHatSizePx != oldParams.puckHatSizePx || - params.puckShadowSizePx != oldParams.puckShadowSizePx) + params.puckScale != oldParams.puckScale || params.puckHatScale != oldParams.puckHatScale || + params.puckShadowScale != oldParams.puckShadowScale) bearingChanged = true; // changes puck geometry but not necessarily the location if (params.errorRadiusMeters != oldParams.errorRadiusMeters) radiusChanged = true; - if (params.puckImagePath != oldParams.puckImagePath) - setTextureFromImageID(params.puckImagePath, texPuck, params); - if (params.puckShadowImagePath != oldParams.puckShadowImagePath) - setTextureFromImageID(params.puckShadowImagePath, texShadow, params); - if (params.puckHatImagePath != oldParams.puckHatImagePath) - setTextureFromImageID(params.puckHatImagePath, texPuckHat, params); + setTextureFromImageID(params.puckImagePath, texPuck, params); + setTextureFromImageID(params.puckShadowImagePath, texShadow, params); + setTextureFromImageID(params.puckHatImagePath, texPuckHat, params); projectionCircle = params.projectionMatrix; const Point positionMercator = project(params.puckPosition, *params.state); @@ -539,10 +549,12 @@ protected: params.perspectiveCompensation; // Compensation factor for the perspective deformation // ^ clamping this to 0.8 to avoid growing the puck too much close to the camera. const double shadowRadius = - params.puckShadowSizePx * M_SQRT2 * 0.5 * + ((texShadow) ? texShadow->width / texShadow->pixelRatio : 0.0) * params.puckShadowScale * M_SQRT2 * 0.5 * horizontalScaleFactor; // Technically it's not the radius, but the half diagonal of the quad. - const double puckRadius = params.puckSizePx * M_SQRT2 * 0.5 * horizontalScaleFactor; - const double hatRadius = params.puckHatSizePx * M_SQRT2 * 0.5 * horizontalScaleFactor; + const double puckRadius = ((texPuck) ? texPuck->width / texPuck->pixelRatio : 0.0) * params.puckScale * + M_SQRT2 * 0.5 * horizontalScaleFactor; + const double hatRadius = ((texPuckHat) ? texPuckHat->width / texPuckHat->pixelRatio : 0.0) * + params.puckHatScale * M_SQRT2 * 0.5 * horizontalScaleFactor; for (unsigned long i = 0; i < 4; ++i) { const auto b = util::wrap(params.puckBearing + bearings[i], 0.0f, 360.0f); @@ -634,6 +646,11 @@ protected: else tx->assign(nullptr); textures[imagePath] = tx; + } else { + const Immutable* ima = params.imageManager->getSharedImage(imagePath); + const mbgl::PremultipliedImage* img = (ima) ? &ima->get()->image : nullptr; + if (textures.at(imagePath)->image != img) // image for the ID might have changed. + textures.at(imagePath)->assign(ima); } tex = textures.at(imagePath); } @@ -690,7 +707,6 @@ RenderLocationIndicatorLayer::RenderLocationIndicatorLayer(Immutablerelease()); } @@ -711,10 +727,12 @@ void RenderLocationIndicatorLayer::evaluate(const PropertyEvaluationParameters& renderImpl->parameters.errorRadiusColor = evaluated.get(); renderImpl->parameters.errorRadiusBorderColor = evaluated.get(); renderImpl->parameters.errorRadiusMeters = evaluated.get(); - renderImpl->parameters.puckSizePx = evaluated.get(); - renderImpl->parameters.puckHatSizePx = evaluated.get(); - renderImpl->parameters.puckShadowSizePx = evaluated.get(); + renderImpl->parameters.puckScale = evaluated.get(); + renderImpl->parameters.puckHatScale = evaluated.get(); + renderImpl->parameters.puckShadowScale = evaluated.get(); renderImpl->parameters.puckBearing = evaluated.get().getAngle(); + renderImpl->parameters.puckLayersDisplacement = evaluated.get(); + renderImpl->parameters.perspectiveCompensation = evaluated.get(); const std::array pos = evaluated.get(); renderImpl->parameters.puckPosition = LatLng{pos[0], pos[1]}; @@ -726,10 +744,6 @@ void RenderLocationIndicatorLayer::evaluate(const PropertyEvaluationParameters& renderImpl->parameters.puckShadowImagePath = layout.get().asConstant().id(); if (!layout.get().isUndefined()) renderImpl->parameters.puckHatImagePath = layout.get().asConstant().id(); - if (!layout.get().isUndefined()) - renderImpl->parameters.puckLayersDisplacement = layout.get().asConstant(); - if (!layout.get().isUndefined()) - renderImpl->parameters.perspectiveCompensation = layout.get().asConstant(); evaluatedProperties = std::move(properties); } diff --git a/src/mbgl/style/layers/location_indicator_layer.cpp b/src/mbgl/style/layers/location_indicator_layer.cpp index 178fd104a..b3590d78e 100644 --- a/src/mbgl/style/layers/location_indicator_layer.cpp +++ b/src/mbgl/style/layers/location_indicator_layer.cpp @@ -78,36 +78,6 @@ void LocationIndicatorLayer::setBearingImage(const PropertyValueonLayerChanged(*this); } -PropertyValue LocationIndicatorLayer::getDefaultImageTiltDisplacement() { - return ImageTiltDisplacement::defaultValue(); -} - -const PropertyValue& LocationIndicatorLayer::getImageTiltDisplacement() const { - return impl().layout.get(); -} - -void LocationIndicatorLayer::setImageTiltDisplacement(const PropertyValue& value) { - if (value == getImageTiltDisplacement()) return; - auto impl_ = mutableImpl(); - impl_->layout.get() = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} -PropertyValue LocationIndicatorLayer::getDefaultPerspectiveCompensation() { - return PerspectiveCompensation::defaultValue(); -} - -const PropertyValue& LocationIndicatorLayer::getPerspectiveCompensation() const { - return impl().layout.get(); -} - -void LocationIndicatorLayer::setPerspectiveCompensation(const PropertyValue& value) { - if (value == getPerspectiveCompensation()) return; - auto impl_ = mutableImpl(); - impl_->layout.get() = value; - baseImpl = std::move(impl_); - observer->onLayerChanged(*this); -} PropertyValue LocationIndicatorLayer::getDefaultShadowImage() { return ShadowImage::defaultValue(); } @@ -250,7 +220,7 @@ TransitionOptions LocationIndicatorLayer::getBearingTransition() const { } PropertyValue LocationIndicatorLayer::getDefaultBearingImageSize() { - return {0}; + return {1}; } const PropertyValue& LocationIndicatorLayer::getBearingImageSize() const { @@ -276,6 +246,33 @@ TransitionOptions LocationIndicatorLayer::getBearingImageSizeTransition() const return impl().paint.template get().options; } +PropertyValue LocationIndicatorLayer::getDefaultImageTiltDisplacement() { + return {0}; +} + +const PropertyValue& LocationIndicatorLayer::getImageTiltDisplacement() const { + return impl().paint.template get().value; +} + +void LocationIndicatorLayer::setImageTiltDisplacement(const PropertyValue& value) { + if (value == getImageTiltDisplacement()) + return; + auto impl_ = mutableImpl(); + impl_->paint.template get().value = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void LocationIndicatorLayer::setImageTiltDisplacementTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->paint.template get().options = options; + baseImpl = std::move(impl_); +} + +TransitionOptions LocationIndicatorLayer::getImageTiltDisplacementTransition() const { + return impl().paint.template get().options; +} + PropertyValue> LocationIndicatorLayer::getDefaultLocation() { return {{{0, 0, 0}}}; } @@ -303,8 +300,35 @@ TransitionOptions LocationIndicatorLayer::getLocationTransition() const { return impl().paint.template get().options; } +PropertyValue LocationIndicatorLayer::getDefaultPerspectiveCompensation() { + return {0.85}; +} + +const PropertyValue& LocationIndicatorLayer::getPerspectiveCompensation() const { + return impl().paint.template get().value; +} + +void LocationIndicatorLayer::setPerspectiveCompensation(const PropertyValue& value) { + if (value == getPerspectiveCompensation()) + return; + auto impl_ = mutableImpl(); + impl_->paint.template get().value = value; + baseImpl = std::move(impl_); + observer->onLayerChanged(*this); +} + +void LocationIndicatorLayer::setPerspectiveCompensationTransition(const TransitionOptions& options) { + auto impl_ = mutableImpl(); + impl_->paint.template get().options = options; + baseImpl = std::move(impl_); +} + +TransitionOptions LocationIndicatorLayer::getPerspectiveCompensationTransition() const { + return impl().paint.template get().options; +} + PropertyValue LocationIndicatorLayer::getDefaultShadowImageSize() { - return {0}; + return {1}; } const PropertyValue& LocationIndicatorLayer::getShadowImageSize() const { @@ -331,7 +355,7 @@ TransitionOptions LocationIndicatorLayer::getShadowImageSizeTransition() const { } PropertyValue LocationIndicatorLayer::getDefaultTopImageSize() { - return {0}; + return {1}; } const PropertyValue& LocationIndicatorLayer::getTopImageSize() const { @@ -361,7 +385,7 @@ using namespace conversion; namespace { -constexpr uint8_t kPaintPropertyCount = 16u; +constexpr uint8_t kPaintPropertyCount = 20u; enum class Property : uint8_t { AccuracyRadius, @@ -369,7 +393,9 @@ enum class Property : uint8_t { AccuracyRadiusColor, Bearing, BearingImageSize, + ImageTiltDisplacement, Location, + PerspectiveCompensation, ShadowImageSize, TopImageSize, AccuracyRadiusTransition, @@ -377,12 +403,12 @@ enum class Property : uint8_t { AccuracyRadiusColorTransition, BearingTransition, BearingImageSizeTransition, + ImageTiltDisplacementTransition, LocationTransition, + PerspectiveCompensationTransition, ShadowImageSizeTransition, TopImageSizeTransition, BearingImage = kPaintPropertyCount, - ImageTiltDisplacement, - PerspectiveCompensation, ShadowImage, TopImage, }; @@ -398,7 +424,9 @@ MAPBOX_ETERNAL_CONSTEXPR const auto layerProperties = mapbox::eternal::hash_map< {"accuracy-radius-color", toUint8(Property::AccuracyRadiusColor)}, {"bearing", toUint8(Property::Bearing)}, {"bearing-image-size", toUint8(Property::BearingImageSize)}, + {"image-tilt-displacement", toUint8(Property::ImageTiltDisplacement)}, {"location", toUint8(Property::Location)}, + {"perspective-compensation", toUint8(Property::PerspectiveCompensation)}, {"shadow-image-size", toUint8(Property::ShadowImageSize)}, {"top-image-size", toUint8(Property::TopImageSize)}, {"accuracy-radius-transition", toUint8(Property::AccuracyRadiusTransition)}, @@ -406,12 +434,12 @@ MAPBOX_ETERNAL_CONSTEXPR const auto layerProperties = mapbox::eternal::hash_map< {"accuracy-radius-color-transition", toUint8(Property::AccuracyRadiusColorTransition)}, {"bearing-transition", toUint8(Property::BearingTransition)}, {"bearing-image-size-transition", toUint8(Property::BearingImageSizeTransition)}, + {"image-tilt-displacement-transition", toUint8(Property::ImageTiltDisplacementTransition)}, {"location-transition", toUint8(Property::LocationTransition)}, + {"perspective-compensation-transition", toUint8(Property::PerspectiveCompensationTransition)}, {"shadow-image-size-transition", toUint8(Property::ShadowImageSizeTransition)}, {"top-image-size-transition", toUint8(Property::TopImageSizeTransition)}, {"bearing-image", toUint8(Property::BearingImage)}, - {"image-tilt-displacement", toUint8(Property::ImageTiltDisplacement)}, - {"perspective-compensation", toUint8(Property::PerspectiveCompensation)}, {"shadow-image", toUint8(Property::ShadowImage)}, {"top-image", toUint8(Property::TopImage)}}); @@ -427,8 +455,12 @@ StyleProperty getLayerProperty(const LocationIndicatorLayer& layer, Property pro return makeStyleProperty(layer.getBearing()); case Property::BearingImageSize: return makeStyleProperty(layer.getBearingImageSize()); + case Property::ImageTiltDisplacement: + return makeStyleProperty(layer.getImageTiltDisplacement()); case Property::Location: return makeStyleProperty(layer.getLocation()); + case Property::PerspectiveCompensation: + return makeStyleProperty(layer.getPerspectiveCompensation()); case Property::ShadowImageSize: return makeStyleProperty(layer.getShadowImageSize()); case Property::TopImageSize: @@ -443,18 +475,18 @@ StyleProperty getLayerProperty(const LocationIndicatorLayer& layer, Property pro return makeStyleProperty(layer.getBearingTransition()); case Property::BearingImageSizeTransition: return makeStyleProperty(layer.getBearingImageSizeTransition()); + case Property::ImageTiltDisplacementTransition: + return makeStyleProperty(layer.getImageTiltDisplacementTransition()); case Property::LocationTransition: return makeStyleProperty(layer.getLocationTransition()); + case Property::PerspectiveCompensationTransition: + return makeStyleProperty(layer.getPerspectiveCompensationTransition()); case Property::ShadowImageSizeTransition: return makeStyleProperty(layer.getShadowImageSizeTransition()); case Property::TopImageSizeTransition: return makeStyleProperty(layer.getTopImageSizeTransition()); case Property::BearingImage: return makeStyleProperty(layer.getBearingImage()); - case Property::ImageTiltDisplacement: - return makeStyleProperty(layer.getImageTiltDisplacement()); - case Property::PerspectiveCompensation: - return makeStyleProperty(layer.getPerspectiveCompensation()); case Property::ShadowImage: return makeStyleProperty(layer.getShadowImage()); case Property::TopImage: @@ -491,8 +523,8 @@ optional LocationIndicatorLayer::setPropertyInternal(const std::string& n auto property = static_cast(it->second); if (property == Property::AccuracyRadius || property == Property::BearingImageSize || - property == Property::ShadowImageSize || property == Property::TopImageSize || - property == Property::ImageTiltDisplacement || property == Property::PerspectiveCompensation) { + property == Property::ImageTiltDisplacement || property == Property::PerspectiveCompensation || + property == Property::ShadowImageSize || property == Property::TopImageSize) { Error error; const auto& typedValue = convert>(value, error, false, false); if (!typedValue) { @@ -509,16 +541,6 @@ optional LocationIndicatorLayer::setPropertyInternal(const std::string& n return nullopt; } - if (property == Property::ShadowImageSize) { - setShadowImageSize(*typedValue); - return nullopt; - } - - if (property == Property::TopImageSize) { - setTopImageSize(*typedValue); - return nullopt; - } - if (property == Property::ImageTiltDisplacement) { setImageTiltDisplacement(*typedValue); return nullopt; @@ -528,6 +550,16 @@ optional LocationIndicatorLayer::setPropertyInternal(const std::string& n setPerspectiveCompensation(*typedValue); return nullopt; } + + if (property == Property::ShadowImageSize) { + setShadowImageSize(*typedValue); + return nullopt; + } + + if (property == Property::TopImageSize) { + setTopImageSize(*typedValue); + return nullopt; + } } if (property == Property::AccuracyRadiusBorderColor || property == Property::AccuracyRadiusColor) { Error error; @@ -620,11 +652,21 @@ optional LocationIndicatorLayer::setPropertyInternal(const std::string& n return nullopt; } + if (property == Property::ImageTiltDisplacementTransition) { + setImageTiltDisplacementTransition(*transition); + return nullopt; + } + if (property == Property::LocationTransition) { setLocationTransition(*transition); return nullopt; } + if (property == Property::PerspectiveCompensationTransition) { + setPerspectiveCompensationTransition(*transition); + return nullopt; + } + if (property == Property::ShadowImageSizeTransition) { setShadowImageSizeTransition(*transition); return nullopt; diff --git a/src/mbgl/style/layers/location_indicator_layer_properties.hpp b/src/mbgl/style/layers/location_indicator_layer_properties.hpp index d73ce33eb..065cbe064 100644 --- a/src/mbgl/style/layers/location_indicator_layer_properties.hpp +++ b/src/mbgl/style/layers/location_indicator_layer_properties.hpp @@ -21,16 +21,6 @@ struct BearingImage : LayoutProperty { static expression::Image defaultValue() { return {}; } }; -struct ImageTiltDisplacement : LayoutProperty { - static constexpr const char *name() { return "image-tilt-displacement"; } - static float defaultValue() { return 0; } -}; - -struct PerspectiveCompensation : LayoutProperty { - static constexpr const char *name() { return "perspective-compensation"; } - static float defaultValue() { return 0.85; } -}; - struct ShadowImage : LayoutProperty { static constexpr const char *name() { return "shadow-image"; } static expression::Image defaultValue() { return {}; } @@ -58,6 +48,10 @@ struct Bearing : PaintProperty { }; struct BearingImageSize : PaintProperty { + static float defaultValue() { return 1; } +}; + +struct ImageTiltDisplacement : PaintProperty { static float defaultValue() { return 0; } }; @@ -65,18 +59,20 @@ struct Location : PaintProperty> { static std::array defaultValue() { return {{0, 0, 0}}; } }; +struct PerspectiveCompensation : PaintProperty { + static float defaultValue() { return 0.85; } +}; + struct ShadowImageSize : PaintProperty { - static float defaultValue() { return 0; } + static float defaultValue() { return 1; } }; struct TopImageSize : PaintProperty { - static float defaultValue() { return 0; } + static float defaultValue() { return 1; } }; class LocationIndicatorLayoutProperties : public Properties< BearingImage, - ImageTiltDisplacement, - PerspectiveCompensation, ShadowImage, TopImage > {}; @@ -87,7 +83,9 @@ class LocationIndicatorPaintProperties : public Properties< AccuracyRadiusColor, Bearing, BearingImageSize, + ImageTiltDisplacement, Location, + PerspectiveCompensation, ShadowImageSize, TopImageSize > {};