diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-07-07 19:13:16 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-07-08 13:11:25 +0200 |
commit | 4f26c8122a57cd5fe35a10dc2e125500179a75a5 (patch) | |
tree | 02381c3db2adedcc6afa721137a6fb318ec915dd /src/mbgl/renderer/painter_symbol.cpp | |
parent | aaa30c8a19bd608baf4c190f794258919365c36d (diff) | |
download | qtlocation-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.cpp | 14 |
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 |