summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/painter.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-07-05 11:09:59 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-09-27 10:42:10 +0200
commitffa8a7668bcff7fd95ae5cd4b971f8330efbb3f0 (patch)
treed4f3ded50238d76c4875a837f642fa7afb8e4470 /src/mbgl/renderer/painter.cpp
parent0f5b194617e0250280e0536794625a733a7d447e (diff)
downloadqtlocation-mapboxgl-ffa8a7668bcff7fd95ae5cd4b971f8330efbb3f0.tar.gz
[core] store viewport and FBO binding
Diffstat (limited to 'src/mbgl/renderer/painter.cpp')
-rw-r--r--src/mbgl/renderer/painter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp
index 5178af004e..438e4b5e47 100644
--- a/src/mbgl/renderer/painter.cpp
+++ b/src/mbgl/renderer/painter.cpp
@@ -65,6 +65,10 @@ void Painter::setClipping(const ClipID& clip) {
}
void Painter::render(const Style& style, const FrameData& frame_, SpriteAtlas& annotationSpriteAtlas) {
+ if (frame.framebufferSize != frame_.framebufferSize) {
+ config.viewport.setDefaultValue(
+ { { 0, 0, frame_.framebufferSize[0], frame_.framebufferSize[1] } });
+ }
frame = frame_;
PaintParameters parameters {
@@ -121,6 +125,8 @@ void Painter::render(const Style& style, const FrameData& frame_, SpriteAtlas& a
// tiles whatsoever.
{
MBGL_DEBUG_GROUP("clear");
+ config.bindFramebuffer.reset();
+ config.viewport.reset();
config.stencilFunc.reset();
config.stencilTest = GL_TRUE;
config.stencilMask = 0xFF;
@@ -271,6 +277,8 @@ void Painter::renderPass(PaintParameters& parameters,
setDepthSublayer(0);
layer.as<CustomLayer>()->impl->render(state);
config.setDirty();
+ config.bindFramebuffer.reset();
+ config.viewport.reset();
} else {
MBGL_DEBUG_GROUP(layer.baseImpl->id + " - " + util::toString(item.tile->id));
if (item.bucket->needsClipping()) {