diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-07 17:50:02 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-03-12 11:03:54 +0100 |
commit | e27f33062994a1b0155b44b9d471e48e93b09f8e (patch) | |
tree | eff2ba71134b9721c16fd53378b9256b94396712 /src/mbgl/renderer/layers/render_symbol_layer.cpp | |
parent | cb64c380fbbd209cb68af60e76b7a770805353a8 (diff) | |
download | qtlocation-mapboxgl-e27f33062994a1b0155b44b9d471e48e93b09f8e.tar.gz |
[core] add texture bindings to draw call instead of Context member fn
Diffstat (limited to 'src/mbgl/renderer/layers/render_symbol_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_symbol_layer.cpp | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp index a5ac6ceeea..e523a869b2 100644 --- a/src/mbgl/renderer/layers/render_symbol_layer.cpp +++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp @@ -158,9 +158,12 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { const bool iconScaled = layout.get<IconSize>().constantOr(1.0) != 1.0 || bucket.iconsNeedLinear; const bool iconTransformed = values.rotationAlignment == AlignmentType::Map || parameters.state.getPitch() != 0; - parameters.context.bindTexture(*geometryTile.iconAtlasTexture, 0, - bucket.sdfIcons || parameters.state.isChanging() || iconScaled || iconTransformed - ? gfx::TextureFilterType::Linear : gfx::TextureFilterType::Nearest); + const gfx::TextureBinding textureBinding{ *geometryTile.iconAtlasTexture->resource, + bucket.sdfIcons || + parameters.state.isChanging() || + iconScaled || iconTransformed + ? gfx::TextureFilterType::Linear + : gfx::TextureFilterType::Nearest }; const Size texsize = geometryTile.iconAtlasTexture->size; @@ -173,7 +176,9 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { values, bucketPaintProperties.iconBinders, paintPropertyValues, - SymbolSDFIconProgram::TextureBindings{}); + SymbolSDFIconProgram::TextureBindings{ + textureBinding, + }); } if (values.hasFill) { @@ -184,7 +189,9 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { values, bucketPaintProperties.iconBinders, paintPropertyValues, - SymbolSDFIconProgram::TextureBindings{}); + SymbolSDFIconProgram::TextureBindings{ + textureBinding, + }); } } else { draw(parameters.programs.getSymbolLayerPrograms().symbolIcon, @@ -194,12 +201,15 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { values, bucketPaintProperties.iconBinders, paintPropertyValues, - SymbolIconProgram::TextureBindings{}); + SymbolIconProgram::TextureBindings{ + textureBinding, + }); } } if (bucket.hasTextData()) { - parameters.context.bindTexture(*geometryTile.glyphAtlasTexture, 0, gfx::TextureFilterType::Linear); + const gfx::TextureBinding textureBinding{ *geometryTile.glyphAtlasTexture->resource, + gfx::TextureFilterType::Linear }; auto values = textPropertyValues(evaluated_, layout); const auto& paintPropertyValues = textPaintProperties(evaluated_); @@ -229,7 +239,9 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { values, bucketPaintProperties.textBinders, paintPropertyValues, - SymbolSDFTextProgram::TextureBindings{}); + SymbolSDFTextProgram::TextureBindings{ + textureBinding, + }); } if (values.hasFill) { @@ -240,7 +252,9 @@ void RenderSymbolLayer::render(PaintParameters& parameters, RenderSource*) { values, bucketPaintProperties.textBinders, paintPropertyValues, - SymbolSDFTextProgram::TextureBindings{}); + SymbolSDFTextProgram::TextureBindings{ + textureBinding, + }); } } |