summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-12-13 20:29:14 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-11 16:43:52 +0200
commitd37918c169b2f688c96fb766fc671066c88fc1a2 (patch)
tree20cdfe0a824bf128053aab7c8ad4f69676f66f49 /src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
parent2bdab82dedf545b4272c534b067c68614d0355b7 (diff)
downloadqtlocation-mapboxgl-d37918c169b2f688c96fb766fc671066c88fc1a2.tar.gz
[core] Split layer type specific code in mbgl::Programs
Progams code for a certain layer type is encapsulted within a dedicated `<layer type>Programs` class, inherited from the generic base `LayerTypePrograms` class. `mbgl::Programs::get<layer type>Programs()` lazily initializes the layer type-specific programs code using pointer to the base class, which allows LTO to remove this code from binaries (if the corresponding `get<layer type>Programs()` method can never be invoked).
Diffstat (limited to 'src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
index aaf3756cfb..488adefa9b 100644
--- a/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
+++ b/src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp
@@ -126,7 +126,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource*
FillExtrusionBucket& bucket = *bucket_;
draw(
- parameters.programs.fillExtrusion.get(evaluated),
+ parameters.programs.getFillExtrusionLayerPrograms().fillExtrusion.get(evaluated),
bucket,
FillExtrusionUniforms::values(
tile.translatedClipMatrix(evaluated.get<FillExtrusionTranslate>(),
@@ -153,7 +153,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource*
FillExtrusionBucket& bucket = *bucket_;
draw(
- parameters.programs.fillExtrusionPattern.get(evaluated),
+ parameters.programs.getFillExtrusionLayerPrograms().fillExtrusionPattern.get(evaluated),
bucket,
FillExtrusionPatternUniforms::values(
tile.translatedClipMatrix(evaluated.get<FillExtrusionTranslate>(),
@@ -184,7 +184,7 @@ void RenderFillExtrusionLayer::render(PaintParameters& parameters, RenderSource*
const Properties<>::PossiblyEvaluated properties;
const ExtrusionTextureProgram::PaintPropertyBinders paintAttributeData{ properties, 0 };
- auto& programInstance = parameters.programs.extrusionTexture;
+ auto& programInstance = parameters.programs.getFillExtrusionLayerPrograms().extrusionTexture;
const auto allUniformValues = programInstance.computeAllUniformValues(
ExtrusionTextureProgram::UniformValues{