summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/painter_symbol.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-07-07 19:13:16 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-07-08 13:11:25 +0200
commit4f26c8122a57cd5fe35a10dc2e125500179a75a5 (patch)
tree02381c3db2adedcc6afa721137a6fb318ec915dd /src/mbgl/renderer/painter_symbol.cpp
parentaaa30c8a19bd608baf4c190f794258919365c36d (diff)
downloadqtlocation-mapboxgl-4f26c8122a57cd5fe35a10dc2e125500179a75a5.tar.gz
[core] track texture state to avoid redundand binds
Diffstat (limited to 'src/mbgl/renderer/painter_symbol.cpp')
-rw-r--r--src/mbgl/renderer/painter_symbol.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/src/mbgl/renderer/painter_symbol.cpp b/src/mbgl/renderer/painter_symbol.cpp
index 8b4138819c..df29d16b9d 100644
--- a/src/mbgl/renderer/painter_symbol.cpp
+++ b/src/mbgl/renderer/painter_symbol.cpp
@@ -77,8 +77,7 @@ void Painter::renderSDF(SymbolBucket &bucket,
sdfShader.u_zoom = (state.getZoom() - zoomAdjust) * 10; // current zoom level
- config.activeTexture = GL_TEXTURE1;
- frameHistory.bind(store);
+ frameHistory.bind(store, config, 1);
sdfShader.u_fadetexture = 1;
// The default gamma value has to be adjust for the current pixelratio so that we're not
@@ -164,8 +163,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
SpriteAtlas* activeSpriteAtlas = layer.impl->spriteAtlas;
const bool iconScaled = fontScale != 1 || frame.pixelRatio != activeSpriteAtlas->getPixelRatio() || bucket.iconsNeedLinear;
const bool iconTransformed = layout.iconRotationAlignment == AlignmentType::Map || angleOffset != 0 || state.getPitch() != 0;
- config.activeTexture = GL_TEXTURE0;
- activeSpriteAtlas->bind(sdf || state.isChanging() || iconScaled || iconTransformed, store);
+ activeSpriteAtlas->bind(sdf || state.isChanging() || iconScaled || iconTransformed, store, config, 0);
if (sdf) {
renderSDF(bucket,
@@ -219,8 +217,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
iconShader.u_zoom = (state.getZoom() - zoomAdjust) * 10; // current zoom level
iconShader.u_opacity = paint.iconOpacity;
- config.activeTexture = GL_TEXTURE1;
- frameHistory.bind(store);
+ frameHistory.bind(store, config, 1);
iconShader.u_fadetexture = 1;
setDepthSublayer(0);
@@ -236,8 +233,7 @@ void Painter::renderSymbol(SymbolBucket& bucket,
config.depthTest = GL_FALSE;
}
- config.activeTexture = GL_TEXTURE0;
- glyphAtlas->bind(store);
+ glyphAtlas->bind(store, config, 0);
renderSDF(bucket,
tileID,
@@ -276,8 +272,6 @@ void Painter::renderSymbol(SymbolBucket& bucket,
bucket.drawCollisionBoxes(collisionBoxShader, store);
}
-
- config.activeTexture = GL_TEXTURE0;
}
} // namespace mbgl