1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

OpenGLFrameBuffer: Refactor to move stored OpenGLContext out of TransientState

This commit is contained in:
reuk 2025-06-25 15:49:17 +01:00
parent 29af89c72a
commit fc2caf0a4d
No known key found for this signature in database
2 changed files with 54 additions and 46 deletions

View file

@ -229,24 +229,24 @@ static void clearGLError() noexcept
struct OpenGLTargetSaver
{
OpenGLTargetSaver (const OpenGLContext& c) noexcept
: context (c), oldFramebuffer (OpenGLFrameBuffer::getCurrentFrameBufferTarget())
OpenGLTargetSaver() noexcept
: oldFramebuffer (OpenGLFrameBuffer::getCurrentFrameBufferTarget())
{
glGetIntegerv (GL_VIEWPORT, oldViewport);
}
~OpenGLTargetSaver() noexcept
{
context.extensions.glBindFramebuffer (GL_FRAMEBUFFER, oldFramebuffer);
gl::glBindFramebuffer (GL_FRAMEBUFFER, oldFramebuffer);
glViewport (oldViewport[0], oldViewport[1], oldViewport[2], oldViewport[3]);
}
JUCE_DECLARE_NON_COPYABLE (OpenGLTargetSaver)
JUCE_DECLARE_NON_MOVEABLE (OpenGLTargetSaver)
private:
const OpenGLContext& context;
GLuint oldFramebuffer;
GLint oldViewport[4];
OpenGLTargetSaver& operator= (const OpenGLTargetSaver&);
};
} // namespace juce