summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/painter_symbol.cpp
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2016-07-08 14:49:38 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-07-11 18:39:50 -0700
commit6e77149c13899a7b1fc6925687ad495a569f444a (patch)
tree827c7f420f5be4db20fa82c4f448ecb842c2a1d6 /src/mbgl/renderer/painter_symbol.cpp
parent822ec091da5f1810bcba8afbb7cde35476b2f119 (diff)
downloadqtlocation-mapboxgl-6e77149c13899a7b1fc6925687ad495a569f444a.tar.gz
[core] Introduce PaintParameters
Use it to DRY selection of regular vs. overdraw shaders and VAOs.
Diffstat (limited to 'src/mbgl/renderer/painter_symbol.cpp')
-rw-r--r--src/mbgl/renderer/painter_symbol.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp
index d541479b10..6f2d9581eb 100644
--- a/src/mbgl/renderer/painter_symbol.cpp
+++ b/src/mbgl/renderer/painter_symbol.cpp
@@ -1,4 +1,5 @@
#include <mbgl/renderer/painter.hpp>
+#include <mbgl/renderer/paint_parameters.hpp>
#include <mbgl/renderer/symbol_bucket.hpp>
#include <mbgl/style/layers/symbol_layer.hpp>
#include <mbgl/style/layers/symbol_layer_impl.hpp>
@@ -110,7 +111,8 @@ void Painter::renderSDF(SymbolBucket &bucket,
}
}
-void Painter::renderSymbol(SymbolBucket& bucket,
+void Painter::renderSymbol(PaintParameters& parameters,
+ SymbolBucket& bucket,
const SymbolLayer& layer,
const UnwrappedTileID& tileID,
const mat4& matrix) {
@@ -169,7 +171,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
matrix,
1.0f,
{{ float(activeSpriteAtlas->getWidth()) / 4.0f, float(activeSpriteAtlas->getHeight()) / 4.0f }},
- isOverdraw() ? overdrawShaders->sdfIcon : shaders->sdfIcon,
+ parameters.shaders.sdfIcon,
&SymbolBucket::drawIcons,
layout.iconRotationAlignment,
// icon-pitch-alignment is not yet implemented
@@ -200,8 +202,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
}};
}
- const bool overdraw = isOverdraw();
- auto& iconShader = overdraw ? overdrawShaders->icon : shaders->icon;
+ auto& iconShader = parameters.shaders.icon;
config.program = iconShader.getID();
iconShader.u_matrix = vtxMatrix;
@@ -219,7 +220,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
iconShader.u_fadetexture = 1;
setDepthSublayer(0);
- bucket.drawIcons(iconShader, store, overdraw);
+ bucket.drawIcons(iconShader, store, isOverdraw());
}
}
@@ -238,7 +239,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
matrix,
24.0f,
{{ float(glyphAtlas->width) / 4, float(glyphAtlas->height) / 4 }},
- isOverdraw() ? overdrawShaders->sdfGlyph : shaders->sdfGlyph,
+ parameters.shaders.sdfGlyph,
&SymbolBucket::drawGlyphs,
layout.textRotationAlignment,
layout.textPitchAlignment,