diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2018-12-13 20:29:14 +0200 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-01-11 16:43:52 +0200 |
commit | d37918c169b2f688c96fb766fc671066c88fc1a2 (patch) | |
tree | 20cdfe0a824bf128053aab7c8ad4f69676f66f49 /src/mbgl/renderer/layers/render_symbol_layer.cpp | |
parent | 2bdab82dedf545b4272c534b067c68614d0355b7 (diff) | |
download | qtlocation-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_symbol_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index 716b06c24d..61dcf8fa47 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -182,7 +182,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { if (bucket.sdfIcons) { if (values.hasHalo) { - draw(parameters.programs.symbolIconSDF, + draw(parameters.programs.getSymbolLayerPrograms().symbolIconSDF, SymbolSDFIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), bucket.icon, bucket.iconSizeBinder, @@ -192,7 +192,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { } if (values.hasFill) { - draw(parameters.programs.symbolIconSDF, + draw(parameters.programs.getSymbolLayerPrograms().symbolIconSDF, SymbolSDFIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), bucket.icon, bucket.iconSizeBinder, @@ -201,7 +201,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { paintPropertyValues); } } else { - draw(parameters.programs.symbolIcon, + draw(parameters.programs.getSymbolLayerPrograms().symbolIcon, SymbolIconProgram::uniformValues(false, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange), bucket.icon, bucket.iconSizeBinder, @@ -235,7 +235,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { const Size texsize = geometryTile.glyphAtlasTexture->size; if (values.hasHalo) { - draw(parameters.programs.symbolGlyph, + draw(parameters.programs.getSymbolLayerPrograms().symbolGlyph, SymbolSDFTextProgram::uniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Halo), bucket.text, bucket.textSizeBinder, @@ -245,7 +245,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { } if (values.hasFill) { - draw(parameters.programs.symbolGlyph, + draw(parameters.programs.getSymbolLayerPrograms().symbolGlyph, SymbolSDFTextProgram::uniformValues(true, values, texsize, parameters.pixelsToGLUnits, alongLine, tile, parameters.state, parameters.symbolFadeChange, SymbolSDFPart::Fill), bucket.text, bucket.textSizeBinder, @@ -267,7 +267,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { parameters.pixelsToGLUnits[1] / (pixelRatio * scale) }}; - parameters.programs.collisionBox.draw( + parameters.programs.getSymbolLayerPrograms().collisionBox.draw( parameters.context, gl::Lines { 1.0f }, gl::DepthMode::disabled(), @@ -302,7 +302,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { }}; - parameters.programs.collisionCircle.draw( + parameters.programs.getSymbolLayerPrograms().collisionCircle.draw( parameters.context, gl::Triangles(), gl::DepthMode::disabled(), |