diff --git a/src/osg/GraphicsContext.cpp b/src/osg/GraphicsContext.cpp index cd3dc1e32..c31643783 100644 --- a/src/osg/GraphicsContext.cpp +++ b/src/osg/GraphicsContext.cpp @@ -431,6 +431,10 @@ bool GraphicsContext::makeCurrent() if (result) { _threadOfLastMakeCurrent = OpenThreads::Thread::CurrentThread(); + + // initialize extension proces, not only initializes on first + // call, will be a non-op on subsequent calls. + getState()->initializeExtensionProcs(); } return result; @@ -443,6 +447,10 @@ bool GraphicsContext::makeContextCurrent(GraphicsContext* readContext) if (result) { _threadOfLastMakeCurrent = OpenThreads::Thread::CurrentThread(); + + // initialize extension proces, not only initializes on first + // call, will be a non-op on subsequent calls. + getState()->initializeExtensionProcs(); } return result; diff --git a/src/osg/GraphicsThread.cpp b/src/osg/GraphicsThread.cpp index 581f340b7..825b1e248 100644 --- a/src/osg/GraphicsThread.cpp +++ b/src/osg/GraphicsThread.cpp @@ -30,6 +30,8 @@ void GraphicsThread::run() if (graphicsContext) { graphicsContext->makeCurrent(); + + graphicsContext->getState()->initializeExtensionProcs(); } OperationThread::run();