Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
24b019d
update style-spec to 24.3.1
acalcutt Nov 19, 2025
995ef09
update generated code
acalcutt Nov 19, 2025
44ab327
Try to update hillshade shaders/ubo/renderer
acalcutt Nov 19, 2025
5f46785
add types, hillshade_layer_tweaker, render_hillshade_layer
acalcutt Nov 19, 2025
219a32a
revert color-relief / line-layer changes
acalcutt Nov 19, 2025
73d7c71
revert LineDasharray
acalcutt Nov 19, 2025
f690843
use style::HillshadeMethod
acalcutt Nov 20, 2025
279b11f
try to fix build errors
acalcutt Nov 20, 2025
ba66879
Update render_hillshade_layer.cpp
acalcutt Nov 20, 2025
c45c96e
Remove unused function
acalcutt Nov 20, 2025
df6469f
try to fix linker errors
acalcutt Nov 20, 2025
579c336
fix path
acalcutt Nov 20, 2025
fe10bfd
add hillshade_conversions.cpp to core.bzl
acalcutt Nov 20, 2025
07ddf87
Update hillshade_conversions.cpp
acalcutt Nov 20, 2025
ffd1940
Update property_value.cpp
acalcutt Nov 20, 2025
ba30eb9
Update property_value.cpp
acalcutt Nov 20, 2025
c1085a0
Update property_value.cpp
acalcutt Nov 20, 2025
2f87308
Update property_value.cpp
acalcutt Nov 20, 2025
58ee1c4
handle the Convertible directly in the Converter<std::vector<Color>>
acalcutt Nov 22, 2025
7ada5f3
add the missing template specializations in
acalcutt Nov 22, 2025
4d0750c
try to fix pre-commit errors
acalcutt Nov 22, 2025
5c61993
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
ddeb5c6
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
718bcb1
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
30e8aa9
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
0b84f7d
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
65e49b9
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
5c464ee
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
6af9398
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
459aab3
try to get HillshadeMethodType working
acalcutt Nov 22, 2025
9d67586
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
31695da
Update function.cpp
acalcutt Nov 22, 2025
3dc434e
Update hillshade_conversions.cpp
acalcutt Nov 22, 2025
82deb6f
move Converter<std::vector<Color>>
acalcutt Nov 22, 2025
92f9c98
Update constant.hpp
acalcutt Nov 22, 2025
5972017
remove duplicates
acalcutt Nov 22, 2025
009567f
remove duplicate
acalcutt Nov 22, 2025
cd3424c
Update generate-style-code.mjs
acalcutt Nov 22, 2025
c9aea77
Revert "revert color-relief / line-layer changes"
acalcutt Nov 22, 2025
72c4ee5
start adding color-relief
acalcutt Nov 22, 2025
3524ffd
more adding color-relief
acalcutt Nov 22, 2025
7549651
update shaders
acalcutt Nov 22, 2025
1677c4f
layer manager and cmake
acalcutt Nov 22, 2025
8774174
remove non-existant color_relief_conversions.cpp
acalcutt Nov 22, 2025
806f254
remove nonexistant ref
acalcutt Nov 22, 2025
2c2275d
Update shader_source.cpp
acalcutt Nov 22, 2025
0955a7a
Update render_color_relief_layer.hpp
acalcutt Nov 23, 2025
995fda5
Revert "Update render_color_relief_layer.hpp"
acalcutt Nov 23, 2025
62ef000
Update render_color_relief_layer.cpp
acalcutt Nov 23, 2025
b38d824
Update render_color_relief_layer.hpp
acalcutt Nov 23, 2025
f51f925
add color_ramp_property_value.hpp to generated file
acalcutt Nov 23, 2025
887f0f3
Update render_color_relief_layer.cpp
acalcutt Nov 23, 2025
a00c93b
Update color_relief_layer_impl.cpp
acalcutt Nov 23, 2025
fd4c135
Update color_relief_layer_impl.hpp
acalcutt Nov 23, 2025
53d52bd
Update render_color_relief_layer.cpp
acalcutt Nov 23, 2025
ba96b49
Update render_color_relief_layer.cpp
acalcutt Nov 23, 2025
5825a8c
Update color_relief_layer_impl.hpp
acalcutt Nov 23, 2025
7b8bfe1
dont include color_relief_layer_impl.hpp indefinitely
acalcutt Nov 23, 2025
cad8c61
Update color_relief_layer_impl.hpp
acalcutt Nov 23, 2025
6f6e5f3
Update color_relief_layer_impl.cpp
acalcutt Nov 23, 2025
e466f39
try to make functional
acalcutt Nov 23, 2025
81cc7bc
Update render_color_relief_layer.hpp
acalcutt Nov 23, 2025
5dbeb09
more build fixes
acalcutt Nov 23, 2025
12505a3
more build fixes
acalcutt Nov 23, 2025
d6734aa
Apply formatting fixes and commit
acalcutt Nov 23, 2025
560d728
try to fix end of files
acalcutt Nov 23, 2025
46def00
update line endings
acalcutt Nov 23, 2025
b97470c
trim trailing spaces
acalcutt Nov 23, 2025
2b99b93
update tests from maplibre-gj-js
acalcutt Nov 23, 2025
e3e1674
Update layer_manager.cpp
acalcutt Nov 23, 2025
29d0b27
Update CMakeLists.txt
acalcutt Nov 23, 2025
8f67016
Update color_relief_layer_tweaker.cpp
acalcutt Nov 23, 2025
8c05701
Update color_relief_layer_tweaker.cpp
acalcutt Nov 23, 2025
1ed5837
Update color_relief_layer_impl.cpp
acalcutt Nov 23, 2025
41b35d0
expected changes
acalcutt Nov 23, 2025
f91a9c8
run generate-style-code and generate_shader_code
acalcutt Nov 23, 2025
0ba21f0
regen files on linux
acalcutt Nov 23, 2025
3909dcd
put back line_layer_properties.hpp
acalcutt Nov 23, 2025
959dc12
try to add elevation expression
acalcutt Nov 24, 2025
74269ea
try to fix elevation expression
acalcutt Nov 24, 2025
2075c3c
try to fix elevation
acalcutt Nov 24, 2025
188cef6
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
b9445e4
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
be7e84f
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
38522ac
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
19702b6
try to support 4 digit hex user in tests
acalcutt Nov 24, 2025
5d0f9ce
Update color.cpp
acalcutt Nov 24, 2025
96101f7
put back Color::serialize
acalcutt Nov 24, 2025
1d6eceb
Update color.cpp
acalcutt Nov 24, 2025
d33f527
test version of updateColorRamp
acalcutt Nov 24, 2025
5d98d2a
test 2 version of updateColorRamp
acalcutt Nov 24, 2025
43a50d0
test render_color_relief_layer.cpp
acalcutt Nov 24, 2025
dfd75b6
test 2 test render_color_relief_layer.cpp
acalcutt Nov 24, 2025
4bd1e22
test 3
acalcutt Nov 24, 2025
8cd03e3
register shader
acalcutt Nov 24, 2025
4550780
add color relief to shader_info
acalcutt Nov 24, 2025
3fef26e
fix shader duplicate name
acalcutt Nov 24, 2025
18cded7
update pad_tile0 var
acalcutt Nov 24, 2025
e957332
fix pad0 in ColorReliefTilePropsUBO
acalcutt Nov 24, 2025
56cde4b
revert hardcode gradient with logging
acalcutt Nov 24, 2025
fe7b9e5
use interpolate for color ramp
acalcutt Nov 24, 2025
6f11a8d
debug logging + unwrap
acalcutt Nov 24, 2025
6aa636a
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
1ee28a4
test 1
acalcutt Nov 24, 2025
db1c0c6
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
8879054
Update render_color_relief_layer.cpp
acalcutt Nov 24, 2025
063541a
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
cbdd033
Update compound_expression.cpp
acalcutt Nov 25, 2025
c2fb2ff
Update compound_expression.cpp
acalcutt Nov 25, 2025
91239e1
Update compound_expression.cpp
acalcutt Nov 25, 2025
b0a9931
Update parsing_context.cpp
acalcutt Nov 25, 2025
dd19bbd
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
5b64692
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
1d3fdc5
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
960a184
use elevationStopsData
acalcutt Nov 25, 2025
726dcd2
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
48d75da
Use alpha
acalcutt Nov 25, 2025
31a3741
try green
acalcutt Nov 25, 2025
3e4982a
debug test
acalcutt Nov 25, 2025
0979b52
test 2
acalcutt Nov 25, 2025
53962b0
remove fragColor
acalcutt Nov 25, 2025
04c5a13
debug alpha
acalcutt Nov 25, 2025
37f0b82
remove temp code
acalcutt Nov 25, 2025
bb63732
try to support float and alpha in Texture2d
acalcutt Nov 25, 2025
3d52917
add debugging
acalcutt Nov 25, 2025
a3de559
Use RGBA32F instead of R32F
acalcutt Nov 25, 2025
5049ffe
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
9c5a6dd
maplibre-gj-js expect
acalcutt Nov 25, 2025
4c548df
maplibre-native expect
acalcutt Nov 25, 2025
a94b0ce
revert unnded change
acalcutt Nov 25, 2025
fece33f
update mtl shader to match gl shader
acalcutt Nov 25, 2025
ef9d6e8
try to get ranges from expression
acalcutt Nov 25, 2025
a3d5b35
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
7ebd007
Revert "Update render_color_relief_layer.cpp"
acalcutt Nov 25, 2025
d21e293
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
13ade40
use mbgl::style::expression::Kind
acalcutt Nov 25, 2025
01ee2ff
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
e8e5d38
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
4ff52e1
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
a4175be
Update render_color_relief_layer.cpp
acalcutt Nov 25, 2025
22ed5e1
Revert "maplibre-native expect"
acalcutt Nov 25, 2025
293cae4
try to improve alpha
acalcutt Nov 25, 2025
7b23b9a
update maplibre native expected
acalcutt Nov 25, 2025
de05e07
try to get hillshade single values working
acalcutt Nov 25, 2025
9476bdc
Update hillshade_conversions.cpp
acalcutt Nov 25, 2025
5284279
try to fix multidirectional and igor
acalcutt Nov 25, 2025
8d34b58
remove if (i >= u_num_lights) break;
acalcutt Nov 25, 2025
82f5c23
add debug logging
acalcutt Nov 25, 2025
b14a04f
#include <iostream>
acalcutt Nov 25, 2025
1e1119b
more debug
acalcutt Nov 25, 2025
3324a1a
propertiesUpdated
acalcutt Nov 25, 2025
67cf1d0
debug shader
acalcutt Nov 25, 2025
0612f19
Revert "debug shader"
acalcutt Nov 25, 2025
a14d4a2
update shader
acalcutt Nov 25, 2025
50d9e2d
Revert "propertiesUpdated"
acalcutt Nov 25, 2025
7b4b2ae
Revert "update maplibre native expected"
acalcutt Nov 25, 2025
9635d7a
maplibre-native expect results
acalcutt Nov 25, 2025
3107fe3
remove duplicte expression
acalcutt Nov 25, 2025
23dfbce
match gl-js formula
acalcutt Nov 25, 2025
20f6cf4
user u_num_lights
acalcutt Nov 26, 2025
49007e2
add debug
acalcutt Nov 26, 2025
6e17f66
pad deebug
acalcutt Nov 26, 2025
1716a36
debug test
acalcutt Nov 26, 2025
4f6aa4f
more debug
acalcutt Nov 26, 2025
6fe9a68
debug num_lights
acalcutt Nov 26, 2025
842c832
Revert "more debug"
acalcutt Nov 26, 2025
b916998
Revert "debug test"
acalcutt Nov 26, 2025
6e14b2a
put back logging
acalcutt Nov 26, 2025
ed8cddc
debug
acalcutt Nov 26, 2025
a75d327
debug fragColor
acalcutt Nov 26, 2025
77e8011
debug method
acalcutt Nov 26, 2025
768bbe0
force multidirectional_hillshade
acalcutt Nov 26, 2025
b42fdb7
Update hillshade.hpp
acalcutt Nov 26, 2025
af579b1
put back multidirectional_hillshade
acalcutt Nov 26, 2025
f25566a
Update types.hpp
acalcutt Nov 26, 2025
302de14
restore generated hillshade.hpp
acalcutt Nov 26, 2025
042f4ea
fix commas
acalcutt Nov 26, 2025
74b6868
Revert "match gl-js formula"
acalcutt Nov 26, 2025
abd37f3
Revert "maplibre-native expect results"
acalcutt Nov 26, 2025
1251e75
maplibre-native generated expects
acalcutt Nov 26, 2025
f375910
debug highlights
acalcutt Nov 26, 2025
0142959
Handle single values for array properties
acalcutt Nov 26, 2025
a017942
debug zoom
acalcutt Nov 26, 2025
67a4969
debug RenderHillshadeLayer
acalcutt Nov 26, 2025
182135c
add #include <iostream>
acalcutt Nov 26, 2025
df06f20
debug
acalcutt Nov 26, 2025
273aaca
Update render_hillshade_layer.cpp
acalcutt Nov 26, 2025
d28347d
Check the evaluated color
acalcutt Nov 26, 2025
b75a9ee
Update value.cpp
acalcutt Nov 26, 2025
5fc10c3
Update function.cpp
acalcutt Nov 26, 2025
302e5f3
Update function.cpp
acalcutt Nov 26, 2025
fbe7f40
Update function.cpp
acalcutt Nov 26, 2025
b4f1259
Update function.cpp
acalcutt Nov 26, 2025
a181716
debug stops
acalcutt Nov 26, 2025
1b7addf
try to get debug to work
acalcutt Nov 26, 2025
a5874e9
Update function.cpp
acalcutt Nov 26, 2025
1bd8953
debug log 2
acalcutt Nov 26, 2025
42bc901
interpolatable array type
acalcutt Nov 26, 2025
0ec0e49
Revert "maplibre-native generated expects"
acalcutt Nov 26, 2025
3f0f69d
cleanup debug
acalcutt Nov 26, 2025
e93a102
remove debugging 2
acalcutt Nov 26, 2025
823b78d
maplibre-native - failed test expects
acalcutt Nov 26, 2025
2974e1e
try to update metal shaders
acalcutt Nov 26, 2025
9634361
remove comment
acalcutt Nov 26, 2025
68d41aa
update shaders
acalcutt Nov 26, 2025
b59543b
update metal color-releif
acalcutt Nov 26, 2025
76432b5
try to add other shaders
acalcutt Nov 26, 2025
8bee18e
update metal files
acalcutt Nov 26, 2025
e396d5f
move color_relief.cpp
acalcutt Nov 27, 2025
5a6f3cc
update vulkan shaders
acalcutt Nov 27, 2025
44f9b09
update webgpu shaders
acalcutt Nov 27, 2025
9b73b6e
Update CmakeLists.txt and core.bzl
acalcutt Nov 27, 2025
8525b49
change line ending back
acalcutt Nov 27, 2025
3308056
put back old formatting
acalcutt Nov 27, 2025
7f9099c
fix line endings
acalcutt Nov 27, 2025
0c85311
Update generate-style-code.mjs
acalcutt Nov 27, 2025
16479c5
Update shader_defines.hpp
acalcutt Nov 27, 2025
fd1f3f9
Revert "Update generate-style-code.mjs"
acalcutt Nov 27, 2025
f7f451e
Update generate-style-code.mjs
acalcutt Nov 27, 2025
41de5cc
Update platform\android\scripts\generate-style-code.mjs
acalcutt Nov 27, 2025
1042904
Update android style spec files
acalcutt Nov 27, 2025
e3aee60
Update platform\darwin\scripts\generate-style-code.mjs
acalcutt Nov 27, 2025
1911ccf
update node files
acalcutt Nov 28, 2025
af620b4
remove line-dash-array from style spec for now
acalcutt Nov 29, 2025
ac43fc6
Revert "Update android style spec files"
acalcutt Nov 29, 2025
dff2aea
Update android style spec files
acalcutt Nov 29, 2025
ea54b44
Revert "Update android style spec files"
acalcutt Nov 29, 2025
a9230d9
Update android style spec files #2
acalcutt Nov 29, 2025
acbddf2
Revert "Update android style spec files #2"
acalcutt Nov 29, 2025
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
23 changes: 22 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -247,6 +247,7 @@ list(APPEND INCLUDE_FILES
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/fill_layer_factory.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/heatmap_layer_factory.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/hillshade_layer_factory.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/color_relief_layer_factory.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/layer_factory.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/layer_manager.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/layermanager/line_layer_factory.hpp
Expand Down Expand Up @@ -358,6 +359,7 @@ list(APPEND INCLUDE_FILES
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/fill_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/heatmap_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/hillshade_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/color_relief_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/line_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/location_indicator_layer.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/style/layers/raster_layer.hpp
Expand Down Expand Up @@ -497,6 +499,7 @@ list(APPEND SRC_FILES
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/fill_layer_factory.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/heatmap_layer_factory.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/hillshade_layer_factory.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/color_relief_layer_factory.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/layer_factory.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/layer_manager.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/layermanager/line_layer_factory.cpp
Expand Down Expand Up @@ -578,6 +581,10 @@ list(APPEND SRC_FILES
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_heatmap_layer.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_hillshade_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_hillshade_layer.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_color_relief_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_color_relief_layer.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/color_relief_layer_tweaker.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/color_relief_layer_tweaker.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_line_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_line_layer.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/renderer/layers/render_raster_layer.cpp
Expand Down Expand Up @@ -676,6 +683,7 @@ list(APPEND SRC_FILES
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/light.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/position.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/property_value.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/hillshade_conversions.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/rotation.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/source.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/conversion/source_options.cpp
Expand Down Expand Up @@ -761,6 +769,11 @@ list(APPEND SRC_FILES
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_impl.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_properties.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/hillshade_layer_properties.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/color_relief_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/color_relief_layer_impl.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/color_relief_layer_impl.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/color_relief_layer_properties.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/color_relief_layer_properties.hpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_impl.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/style/layers/line_layer_impl.hpp
Expand Down Expand Up @@ -1012,6 +1025,7 @@ if(MLN_WITH_OPENGL)
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/heatmap_texture.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/hillshade_prepare.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/hillshade.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/color_relief.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/line.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/line_gradient.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/gl/line_pattern.hpp
Expand Down Expand Up @@ -1088,6 +1102,7 @@ if(MLN_WITH_OPENGL)
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/heatmap_layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/heatmap_texture_layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/hillshade_layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/color_relief_layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/hillshade_prepare_layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/layer_ubo.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/line_layer_ubo.hpp
Expand Down Expand Up @@ -1163,6 +1178,7 @@ if(MLN_WITH_METAL)
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/heatmap_texture.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/hillshade.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/hillshade_prepare.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/color_relief.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/line.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/location_indicator.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/mtl/raster.hpp
Expand Down Expand Up @@ -1204,6 +1220,7 @@ if(MLN_WITH_METAL)
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/heatmap_texture.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/hillshade.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/hillshade_prepare.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/color_relief.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/line.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/location_indicator.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/mtl/raster.cpp
Expand Down Expand Up @@ -1264,6 +1281,7 @@ if(MLN_WITH_VULKAN)
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/heatmap_texture.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/hillshade.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/hillshade_prepare.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/color_relief.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/line.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/location_indicator.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/vulkan/raster.hpp
Expand Down Expand Up @@ -1307,6 +1325,7 @@ if(MLN_WITH_VULKAN)
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/heatmap_texture.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/hillshade.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/hillshade_prepare.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/color_relief.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/line.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/location_indicator.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/vulkan/raster.cpp
Expand Down Expand Up @@ -1350,6 +1369,7 @@ if(MLN_WITH_WEBGPU)
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/heatmap_texture.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/hillshade.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/hillshade_prepare.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/color_relief.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/line.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/location_indicator.cpp
${PROJECT_SOURCE_DIR}/src/mbgl/shaders/webgpu/raster.cpp
Expand Down Expand Up @@ -1388,6 +1408,7 @@ if(MLN_WITH_WEBGPU)
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/heatmap_texture.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/hillshade.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/hillshade_prepare.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/color_relief.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/line.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/location_indicator.hpp
${PROJECT_SOURCE_DIR}/include/mbgl/shaders/webgpu/raster.hpp
Expand Down Expand Up @@ -1587,7 +1608,7 @@ target_link_libraries(
mbgl-vendor-unique_resource
mbgl-vendor-vector-tile
mbgl-vendor-wagyu
mlt-cpp
mlt-cpp
$<$<BOOL:${MLN_WITH_METAL}>:mbgl-vendor-metal-cpp>
$<IF:$<BOOL:${MLN_USE_RUST}>,mbgl-rustutils,mbgl-vendor-csscolorparser>
$<$<BOOL:${MLN_TEXT_SHAPING_HARFBUZZ}>:mbgl-freetype>
Expand Down
16 changes: 16 additions & 0 deletions bazel/core.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ MLN_PUBLIC_GENERATED_STYLE_HEADERS = [
"include/mbgl/style/layers/fill_extrusion_layer.hpp",
"include/mbgl/style/layers/raster_layer.hpp",
"include/mbgl/style/layers/hillshade_layer.hpp",
"include/mbgl/style/layers/color_relief_layer.hpp",
"include/mbgl/style/layers/background_layer.hpp",
"include/mbgl/style/layers/location_indicator_layer.hpp",
"include/mbgl/style/light.hpp",
Expand Down Expand Up @@ -58,6 +59,8 @@ MLN_GENERATED_STYLE_SOURCE = [
"src/mbgl/style/layers/raster_layer.cpp",
"src/mbgl/style/layers/hillshade_layer_properties.cpp",
"src/mbgl/style/layers/hillshade_layer.cpp",
"src/mbgl/style/layers/color_relief_layer_properties.cpp",
"src/mbgl/style/layers/color_relief_layer.cpp",
"src/mbgl/style/layers/background_layer_properties.cpp",
"src/mbgl/style/layers/background_layer.cpp",
"src/mbgl/style/layers/location_indicator_layer_properties.cpp",
Expand Down Expand Up @@ -95,6 +98,7 @@ MLN_GENERATED_OPENGL_SHADER_HEADERS = [
"include/mbgl/shaders/gl/heatmap_texture.hpp",
"include/mbgl/shaders/gl/hillshade_prepare.hpp",
"include/mbgl/shaders/gl/hillshade.hpp",
"include/mbgl/shaders/gl/color_relief.hpp",
"include/mbgl/shaders/gl/line_gradient.hpp",
"include/mbgl/shaders/gl/line_pattern.hpp",
"include/mbgl/shaders/gl/line_sdf.hpp",
Expand Down Expand Up @@ -161,6 +165,7 @@ MLN_CORE_SOURCE = [
"src/mbgl/layermanager/fill_layer_factory.cpp",
"src/mbgl/layermanager/heatmap_layer_factory.cpp",
"src/mbgl/layermanager/hillshade_layer_factory.cpp",
"src/mbgl/layermanager/color_relief_layer_factory.cpp",
"src/mbgl/layermanager/layer_factory.cpp",
"src/mbgl/layermanager/layer_manager.cpp",
"src/mbgl/layermanager/line_layer_factory.cpp",
Expand Down Expand Up @@ -237,6 +242,8 @@ MLN_CORE_SOURCE = [
"src/mbgl/renderer/layers/render_heatmap_layer.hpp",
"src/mbgl/renderer/layers/render_hillshade_layer.cpp",
"src/mbgl/renderer/layers/render_hillshade_layer.hpp",
"src/mbgl/renderer/layers/render_color_relief_layer.cpp",
"src/mbgl/renderer/layers/render_color_relief_layer.hpp",
"src/mbgl/renderer/layers/render_line_layer.cpp",
"src/mbgl/renderer/layers/render_line_layer.hpp",
"src/mbgl/renderer/layers/render_location_indicator_layer.cpp",
Expand Down Expand Up @@ -336,6 +343,7 @@ MLN_CORE_SOURCE = [
"src/mbgl/style/conversion/light.cpp",
"src/mbgl/style/conversion/position.cpp",
"src/mbgl/style/conversion/property_value.cpp",
"src/mbgl/style/conversion/hillshade_conversions.cpp",
"src/mbgl/style/conversion/rotation.cpp",
"src/mbgl/style/conversion/source.cpp",
"src/mbgl/style/conversion/source_options.cpp",
Expand Down Expand Up @@ -409,6 +417,8 @@ MLN_CORE_SOURCE = [
"src/mbgl/style/layers/heatmap_layer_impl.hpp",
"src/mbgl/style/layers/hillshade_layer_impl.cpp",
"src/mbgl/style/layers/hillshade_layer_impl.hpp",
"src/mbgl/style/layers/color_relief_layer_impl.cpp",
"src/mbgl/style/layers/color_relief_layer_impl.hpp",
"src/mbgl/style/layers/line_layer_impl.cpp",
"src/mbgl/style/layers/line_layer_impl.hpp",
"src/mbgl/style/layers/location_indicator_layer_impl.cpp",
Expand Down Expand Up @@ -649,6 +659,7 @@ MLN_CORE_HEADERS = [
"include/mbgl/layermanager/fill_layer_factory.hpp",
"include/mbgl/layermanager/heatmap_layer_factory.hpp",
"include/mbgl/layermanager/hillshade_layer_factory.hpp",
"include/mbgl/layermanager/color_relief_layer_factory.hpp",
"include/mbgl/layermanager/layer_factory.hpp",
"include/mbgl/layermanager/layer_manager.hpp",
"include/mbgl/layermanager/line_layer_factory.hpp",
Expand Down Expand Up @@ -984,6 +995,7 @@ MLN_DRAWABLES_HEADERS = [
"include/mbgl/shaders/heatmap_layer_ubo.hpp",
"include/mbgl/shaders/heatmap_texture_layer_ubo.hpp",
"include/mbgl/shaders/hillshade_layer_ubo.hpp",
"include/mbgl/shaders/color_relief_layer_ubo.hpp",
"include/mbgl/shaders/hillshade_prepare_layer_ubo.hpp",
"include/mbgl/shaders/layer_ubo.hpp",
"include/mbgl/shaders/line_layer_ubo.hpp",
Expand Down Expand Up @@ -1057,6 +1069,7 @@ MLN_DRAWABLES_MTL_SOURCE = [
"src/mbgl/shaders/mtl/heatmap_texture.cpp",
"src/mbgl/shaders/mtl/hillshade.cpp",
"src/mbgl/shaders/mtl/hillshade_prepare.cpp",
"src/mbgl/shaders/mtl/color_relief.cpp",
"src/mbgl/shaders/mtl/line.cpp",
"src/mbgl/shaders/mtl/location_indicator.cpp",
"src/mbgl/shaders/mtl/raster.cpp",
Expand Down Expand Up @@ -1098,6 +1111,7 @@ MLN_DRAWABLES_MTL_HEADERS = [
"include/mbgl/shaders/mtl/heatmap_texture.hpp",
"include/mbgl/shaders/mtl/hillshade.hpp",
"include/mbgl/shaders/mtl/hillshade_prepare.hpp",
"include/mbgl/shaders/mtl/color_relief.hpp",
"include/mbgl/shaders/mtl/line.hpp",
"include/mbgl/shaders/mtl/location_indicator.hpp",
"include/mbgl/shaders/mtl/raster.hpp",
Expand Down Expand Up @@ -1142,6 +1156,7 @@ MLN_DRAWABLES_WEBGPU_SOURCE = [
"src/mbgl/shaders/webgpu/heatmap_texture.cpp",
"src/mbgl/shaders/webgpu/hillshade.cpp",
"src/mbgl/shaders/webgpu/hillshade_prepare.cpp",
"src/mbgl/shaders/webgpu/color_relief.cpp",
"src/mbgl/shaders/webgpu/line.cpp",
"src/mbgl/shaders/webgpu/location_indicator.cpp",
"src/mbgl/shaders/webgpu/raster.cpp",
Expand Down Expand Up @@ -1183,6 +1198,7 @@ MLN_DRAWABLES_WEBGPU_HEADERS = [
"include/mbgl/shaders/webgpu/heatmap_texture.hpp",
"include/mbgl/shaders/webgpu/hillshade.hpp",
"include/mbgl/shaders/webgpu/hillshade_prepare.hpp",
"include/mbgl/shaders/webgpu/color_relief.hpp",
"include/mbgl/shaders/webgpu/line.hpp",
"include/mbgl/shaders/webgpu/location_indicator.hpp",
"include/mbgl/shaders/webgpu/raster.hpp",
Expand Down
15 changes: 15 additions & 0 deletions include/mbgl/layermanager/color_relief_layer_factory.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#pragma once

#include <mbgl/layermanager/layer_factory.hpp>

namespace mbgl {

class ColorReliefLayerFactory : public LayerFactory {
protected:
const style::LayerTypeInfo* getTypeInfo() const noexcept final;
std::unique_ptr<style::Layer> createLayer(const std::string& id,
const style::conversion::Convertible& value) noexcept final;
std::unique_ptr<RenderLayer> createRenderLayer(Immutable<style::Layer::Impl>) noexcept final;
};

} // namespace mbgl
32 changes: 32 additions & 0 deletions include/mbgl/shaders/color_relief_layer_ubo.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#pragma once
#include <mbgl/shaders/layer_ubo.hpp>

namespace mbgl {
namespace shaders {

struct alignas(16) ColorReliefDrawableUBO {
/* 0 */ std::array<float, 4 * 4> matrix;
/* 64 */
};
static_assert(sizeof(ColorReliefDrawableUBO) == 64);

struct alignas(16) ColorReliefTilePropsUBO {
/* 0 */ std::array<float, 4> unpack; // DEM unpack vector
/* 16 */ std::array<float, 2> dimension; // Texture dimensions
/* 24 */ int32_t color_ramp_size; // Number of color stops
/* 28 */ float pad_tile0; // Padding for alignment
/* 32 */
};
static_assert(sizeof(ColorReliefTilePropsUBO) == 32);

struct alignas(16) ColorReliefEvaluatedPropsUBO {
/* 0 */ float opacity;
/* 4 */ float pad_eval0;
/* 8 */ float pad_eval1;
/* 12 */ float pad_eval2;
/* 16 */
};
static_assert(sizeof(ColorReliefEvaluatedPropsUBO) == 16);

} // namespace shaders
} // namespace mbgl
115 changes: 115 additions & 0 deletions include/mbgl/shaders/gl/color_relief.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
// Generated code, do not modify this file!
#pragma once
#include <mbgl/shaders/shader_source.hpp>

namespace mbgl {
namespace shaders {

template <>
struct ShaderSource<BuiltIn::ColorReliefShader, gfx::Backend::Type::OpenGL> {
static constexpr const char* name = "ColorReliefShader";
static constexpr const char* vertex = R"(layout(std140) uniform ColorReliefDrawableUBO {
highp mat4 u_matrix;
};

layout(std140) uniform ColorReliefTilePropsUBO {
highp vec4 u_unpack;
highp vec2 u_dimension;
int u_color_ramp_size;
float pad_tile0;
};

in vec2 a_pos;
out vec2 v_pos;

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

highp vec2 epsilon = 1.0 / u_dimension;
float scale = (u_dimension.x - 2.0) / u_dimension.x;
v_pos = (a_pos / 8192.0) * scale + epsilon;

// Handle poles
if (a_pos.y < -32767.5) v_pos.y = 0.0;
if (a_pos.y > 32766.5) v_pos.y = 1.0;
}
)";
static constexpr const char* fragment = R"(layout(std140) uniform ColorReliefDrawableUBO {
highp mat4 u_matrix;
};

layout(std140) uniform ColorReliefTilePropsUBO {
highp vec4 u_unpack;
highp vec2 u_dimension;
int u_color_ramp_size;
float pad_tile0;
};

layout(std140) uniform ColorReliefEvaluatedPropsUBO {
float u_opacity;
float pad_eval0;
float pad_eval1;
float pad_eval2;
};

uniform sampler2D u_image;
uniform sampler2D u_elevation_stops;
uniform sampler2D u_color_stops;

in vec2 v_pos;

float getElevation(vec2 coord) {
// Convert encoded elevation value to meters
vec4 data = texture(u_image, coord) * 255.0;
data.a = -1.0;
return dot(data, u_unpack);
}

float getElevationStop(int stop) {
// Elevation stops are plain float values, not terrain-RGB encoded
float x = (float(stop) + 0.5) / float(u_color_ramp_size);
return texture(u_elevation_stops, vec2(x, 0.0)).r;
}

vec4 getColorStop(int stop) {
float x = (float(stop) + 0.5) / float(u_color_ramp_size);
return texture(u_color_stops, vec2(x, 0.0));
}

void main() {
float el = getElevation(v_pos);

// Binary search for color stops
int r = (u_color_ramp_size - 1);
int l = 0;

while (r - l > 1) {
int m = (r + l) / 2;
float el_m = getElevationStop(m);
if (el < el_m) {
r = m;
} else {
l = m;
}
}

// Get elevation values for interpolation
float el_l = getElevationStop(l);
float el_r = getElevationStop(r);

// Get colors for interpolation
vec4 color_l = getColorStop(l);
vec4 color_r = getColorStop(r);

// Interpolate between the two colors
float t = clamp((el - el_l) / (el_r - el_l), 0.0, 1.0);
fragColor = u_opacity * mix(color_l, color_r, t);

#ifdef OVERDRAW_INSPECTOR
fragColor = vec4(1.0);
#endif
})";
};

} // namespace shaders
} // namespace mbgl
Loading
Loading