diff options
Diffstat (limited to 'backends/graphics/opengl/context.cpp')
-rw-r--r-- | backends/graphics/opengl/context.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/backends/graphics/opengl/context.cpp b/backends/graphics/opengl/context.cpp index 7402e79ea5..d9c40859dc 100644 --- a/backends/graphics/opengl/context.cpp +++ b/backends/graphics/opengl/context.cpp @@ -24,6 +24,7 @@ #include "backends/graphics/opengl/opengl-graphics.h" #include "backends/graphics/opengl/shader.h" #include "backends/graphics/opengl/pipeline.h" +#include "backends/graphics/opengl/framebuffer.h" #include "common/tokenizer.h" #include "common/debug.h" @@ -42,9 +43,24 @@ void Context::reset() { #include "backends/graphics/opengl/opengl-func.h" #undef GL_FUNC_DEF + activeFramebuffer = nullptr; activePipeline = nullptr; } +Framebuffer *Context::setFramebuffer(Framebuffer *framebuffer) { + Framebuffer *oldFramebuffer = activeFramebuffer; + if (oldFramebuffer) { + oldFramebuffer->deactivate(); + } + + activeFramebuffer = framebuffer; + if (activeFramebuffer) { + activeFramebuffer->activate(); + } + + return oldFramebuffer; +} + Pipeline *Context::setPipeline(Pipeline *pipeline) { Pipeline *oldPipeline = activePipeline; |