diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-07-05 11:09:59 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-09-27 10:42:10 +0200 |
commit | ffa8a7668bcff7fd95ae5cd4b971f8330efbb3f0 (patch) | |
tree | d4f3ded50238d76c4875a837f642fa7afb8e4470 /src/mbgl/renderer/painter.cpp | |
parent | 0f5b194617e0250280e0536794625a733a7d447e (diff) | |
download | qtlocation-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.cpp | 8 |
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()) { |