diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/openglgdiimpl.hxx | 2 | ||||
-rw-r--r-- | vcl/opengl/gdiimpl.cxx | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/vcl/inc/openglgdiimpl.hxx b/vcl/inc/openglgdiimpl.hxx index ea79b6cb82e8..f3d603c0f1be 100644 --- a/vcl/inc/openglgdiimpl.hxx +++ b/vcl/inc/openglgdiimpl.hxx @@ -83,6 +83,8 @@ protected: bool mbXORMode; + bool mbAcquiringOpenGLContext; + /** * All rendering happens to this off-screen texture. For * non-virtual devices, ie. windows - we will blit it and diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx index 904392644ac9..c483fb094f4d 100644 --- a/vcl/opengl/gdiimpl.cxx +++ b/vcl/opengl/gdiimpl.cxx @@ -75,6 +75,7 @@ OpenGLSalGraphicsImpl::OpenGLSalGraphicsImpl(SalGraphics& rParent, SalGeometryPr , mbUseScissor(false) , mbUseStencil(false) , mbXORMode(false) + , mbAcquiringOpenGLContext(false) , mnLineColor(SALCOLOR_NONE) , mnFillColor(SALCOLOR_NONE) #ifdef DBG_UTIL @@ -100,7 +101,12 @@ OpenGLSalGraphicsImpl::~OpenGLSalGraphicsImpl() rtl::Reference<OpenGLContext> OpenGLSalGraphicsImpl::GetOpenGLContext() { - if( !AcquireContext(true) ) + if (mbAcquiringOpenGLContext) + return nullptr; + mbAcquiringOpenGLContext = true; + bool bSuccess = AcquireContext(true); + mbAcquiringOpenGLContext = false; + if (!bSuccess) return nullptr; return mpContext; } |