summaryrefslogtreecommitdiff
path: root/src/mbgl/util/offscreen_texture.cpp
diff options
context:
space:
mode:
authorLauren Budorick <lauren@mapbox.com>2017-04-27 15:56:55 -0700
committerGitHub <noreply@github.com>2017-04-27 15:56:55 -0700
commitf6e79d70735361438655f279c8699a786d25458c (patch)
treecc01ae7aba097bae4aa84beb12ac6b8f34f4d51a /src/mbgl/util/offscreen_texture.cpp
parent839ad87f37a4880804fb4c79157d998ac59954b5 (diff)
downloadqtlocation-mapboxgl-f6e79d70735361438655f279c8699a786d25458c.tar.gz
[core] Render fill-extrusion layers (#8431)
Diffstat (limited to 'src/mbgl/util/offscreen_texture.cpp')
-rw-r--r--src/mbgl/util/offscreen_texture.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/mbgl/util/offscreen_texture.cpp b/src/mbgl/util/offscreen_texture.cpp
index 56ef60b15c..e719ac566e 100644
--- a/src/mbgl/util/offscreen_texture.cpp
+++ b/src/mbgl/util/offscreen_texture.cpp
@@ -14,12 +14,13 @@ public:
void bind() {
if (!framebuffer) {
- texture = context.createTexture(size);
+ texture = context.createTexture(size, gl::TextureFormat::RGBA);
framebuffer = context.createFramebuffer(*texture);
} else {
context.bindFramebuffer = framebuffer->framebuffer;
}
+ context.activeTexture = 0;
context.viewport = { 0, 0, size };
}
@@ -36,6 +37,20 @@ public:
return size;
}
+ void bindRenderbuffers(gl::TextureUnit unit) {
+ if (!framebuffer) {
+ texture = context.createTexture(size, gl::TextureFormat::RGBA, unit);
+ gl::Renderbuffer<gl::RenderbufferType::DepthComponent> depthTarget = context.createRenderbuffer<gl::RenderbufferType::DepthComponent>(size);
+ framebuffer = context.createFramebuffer(*texture, depthTarget);
+
+ } else {
+ context.bindFramebuffer = framebuffer->framebuffer;
+ }
+
+ context.activeTexture = unit;
+ context.viewport = { 0, 0, size };
+ }
+
private:
gl::Context& context;
const Size size;
@@ -66,4 +81,8 @@ const Size& OffscreenTexture::getSize() const {
return impl->getSize();
}
+void OffscreenTexture::bindRenderbuffers(gl::TextureUnit unit) {
+ impl->bindRenderbuffers(unit);
+}
+
} // namespace mbgl