From 4bb4add9b3668503fdae56d6b56f95c2b84d0b60 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 19 Jul 2006 12:58:45 +0000 Subject: [PATCH] Added scene handler init to custom realize callback --- .../osgshaderterrain/osgshaderterrain.cpp | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/examples/osgshaderterrain/osgshaderterrain.cpp b/examples/osgshaderterrain/osgshaderterrain.cpp index 69e1e207b..8cba27467 100644 --- a/examples/osgshaderterrain/osgshaderterrain.cpp +++ b/examples/osgshaderterrain/osgshaderterrain.cpp @@ -737,26 +737,30 @@ class TestSupportCallback : public osgProducer::OsgCameraGroup::RealizeCallback virtual void operator()( osgProducer::OsgCameraGroup&, osgProducer::OsgSceneHandler& sh, const Producer::RenderSurface& ) { - OpenThreads::ScopedLock lock(_mutex); - - unsigned int contextID = sh.getSceneView()->getState()->getContextID(); - osg::GL2Extensions* gl2ext = osg::GL2Extensions::Get(contextID,true); - if( gl2ext ) { - if( !gl2ext->isGlslSupported() ) - { - _supported = false; - _errorMessage = "ERROR: GLSL not supported by OpenGL driver."; - } + OpenThreads::ScopedLock lock(_mutex); - GLint numVertexTexUnits = 0; - glGetIntegerv( GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &numVertexTexUnits ); - if( numVertexTexUnits <= 0 ) + unsigned int contextID = sh.getSceneView()->getState()->getContextID(); + osg::GL2Extensions* gl2ext = osg::GL2Extensions::Get(contextID,true); + if( gl2ext ) { - _supported = false; - _errorMessage = "ERROR: vertex texturing not supported by OpenGL driver."; + if( !gl2ext->isGlslSupported() ) + { + _supported = false; + _errorMessage = "ERROR: GLSL not supported by OpenGL driver."; + } + + GLint numVertexTexUnits = 0; + glGetIntegerv( GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &numVertexTexUnits ); + if( numVertexTexUnits <= 0 ) + { + _supported = false; + _errorMessage = "ERROR: vertex texturing not supported by OpenGL driver."; + } } } + + sh.init(); } OpenThreads::Mutex _mutex;