diff options
-rw-r--r-- | include/vcl/opengl/OpenGLContext.hxx | 1 | ||||
-rw-r--r-- | vcl/source/opengl/OpenGLContext.cxx | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index 28db7f9ed814..fb09bd586b85 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -167,6 +167,7 @@ public: // retrieve a program from the cache or compile/link it OpenGLProgram* GetProgram( const OUString& rVertexShader, const OUString& rFragmentShader, const OString& preamble = "" ); OpenGLProgram* UseProgram( const OUString& rVertexShader, const OUString& rFragmentShader, const OString& preamble = "" ); + void UseNoProgram(); /// Is this GL context the current context ? bool isCurrent(); diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index d7d431372697..1f5af6f00a82 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -1732,4 +1732,14 @@ OpenGLProgram* OpenGLContext::UseProgram( const OUString& rVertexShader, const O return mpCurrentProgram; } +void OpenGLContext::UseNoProgram() +{ + if( mpCurrentProgram == NULL ) + return; + + mpCurrentProgram = NULL; + glUseProgram( 0 ); + CHECK_GL_ERROR(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |