From 7453711267aa050946e71adfe0459a46dfd3dd34 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 20 Jun 2005 10:36:06 +0000 Subject: [PATCH] From Mike Weiblen, " - adjustments to improve namespacing on VS - clarify compilation status message" --- include/osg/Shader | 16 ++++++++-------- src/osg/Shader.cpp | 46 ++++++++++++++++++++++++---------------------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/include/osg/Shader b/include/osg/Shader index 486e98707..ea066b8d9 100644 --- a/include/osg/Shader +++ b/include/osg/Shader @@ -11,8 +11,8 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ -/* file: include/osg/Shader - * author: Mike Weiblen 2005-05-12 +/* file: include/osg/Shader + * author: Mike Weiblen 2005-06-15 */ #ifndef OSG_SHADER @@ -27,6 +27,8 @@ namespace osg { +class Program; + /////////////////////////////////////////////////////////////////////////// /** osg::Shader is an application-level abstraction of an OpenGL glShader. * It is a container to load the shader source code text and manage its @@ -37,8 +39,6 @@ namespace osg { * configuration. */ -class Program; - class OSG_EXPORT Shader : public osg::Object { public: @@ -153,15 +153,15 @@ class OSG_EXPORT Shader : public osg::Object PerContextShader* getPCS(unsigned int contextID) const; - friend class Program; - bool addProgramRef( Program* program ); - bool removeProgramRef( Program* program ); + friend class osg::Program; + bool addProgramRef( osg::Program* program ); + bool removeProgramRef( osg::Program* program ); protected: /*data*/ Type _type; std::string _shaderSource; /** osg::Programs that this osg::Shader is attached to */ - typedef std::set< Program* > ProgramSet; + typedef std::set< osg::Program* > ProgramSet; ProgramSet _programSet; mutable osg::buffered_value< osg::ref_ptr > _pcsList; diff --git a/src/osg/Shader.cpp b/src/osg/Shader.cpp index 075095532..99cf21296 100644 --- a/src/osg/Shader.cpp +++ b/src/osg/Shader.cpp @@ -12,8 +12,8 @@ * */ -/* file: src/osg/Shader.cpp - * author: Mike Weiblen 2005-04-29 +/* file: src/osg/Shader.cpp + * author: Mike Weiblen 2005-06-15 */ #include @@ -118,8 +118,8 @@ bool Shader::setType( Type t ) { if( _type != UNDEFINED ) { - osg::notify(osg::WARN) << "cannot change type of Shader" << std::endl; - return false; + osg::notify(osg::WARN) << "cannot change type of Shader" << std::endl; + return false; } _type = t; @@ -162,8 +162,8 @@ bool Shader::loadShaderSourceFromFile( const std::string& fileName ) sourceFile.open(fileName.c_str(), std::ios::binary); if(!sourceFile) { - osg::notify(osg::WARN)<<"Error: can't open file \""<dirtyProgram(); + (*itr)->dirtyProgram(); } } @@ -286,8 +286,8 @@ void Shader::dirtyShader() /////////////////////////////////////////////////////////////////////////// Shader::PerContextShader::PerContextShader(const Shader* shader, unsigned int contextID) : - osg::Referenced(), - _contextID( contextID ) + osg::Referenced(), + _contextID( contextID ) { _shader = shader; _extensions = GL2Extensions::Get( _contextID, true ); @@ -314,7 +314,9 @@ void Shader::PerContextShader::compileShader() if( ! _needsCompile ) return; _needsCompile = false; - osg::notify(osg::INFO)<<"Compiling source "<<_shader->getShaderSource()<getTypename() + << " source:\n" << _shader->getShaderSource() << std::endl; GLint compiled = GL_FALSE; const char* sourceText = _shader->getShaderSource().c_str(); @@ -326,13 +328,13 @@ void Shader::PerContextShader::compileShader() if( ! _isCompiled ) { osg::notify(osg::WARN) << _shader->getTypename() << " glCompileShader \"" - << _shader->getName() << "\" FAILED" << std::endl; + << _shader->getName() << "\" FAILED" << std::endl; std::string infoLog; if( getInfoLog(infoLog) ) { osg::notify(osg::WARN) << _shader->getTypename() << " Shader \"" - << _shader->getName() << "\" infolog:\n" << infoLog << std::endl; + << _shader->getName() << "\" infolog:\n" << infoLog << std::endl; } } else @@ -341,7 +343,7 @@ void Shader::PerContextShader::compileShader() if( getInfoLog(infoLog) ) { osg::notify(osg::INFO) << _shader->getTypename() << " Shader \"" - << _shader->getName() << "\" infolog:\n" << infoLog << std::endl; + << _shader->getName() << "\" infolog:\n" << infoLog << std::endl; } }