openscenegraph
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
osg::Shader::PerContextShader Class Reference

#include <Shader>

Inheritance diagram for osg::Shader::PerContextShader:
osg::Referenced

Public Member Functions

 PerContextShader (const Shader *shader, unsigned int contextID)
 
void setDefineString (const std::string &defStr)
 
const std::string & getDefineString () const
 
GLuint getHandle () const
 
void requestCompile ()
 
void compileShader (osg::State &state)
 
bool needsCompile () const
 
bool isCompiled () const
 
bool getInfoLog (std::string &infoLog) const
 
void attachShader (GLuint program) const
 
void detachShader (GLuint program) const
 
- Public Member Functions inherited from osg::Referenced
 Referenced ()
 
 Referenced (bool threadSafeRefUnref)
 
 Referenced (const Referenced &)
 
Referencedoperator= (const Referenced &)
 
virtual void setThreadSafeRefUnref (bool)
 
bool getThreadSafeRefUnref () const
 
OpenThreads::MutexgetRefMutex () const
 
int ref () const
 
int unref () const
 
int unref_nodelete () const
 
int referenceCount () const
 
ObserverSetgetObserverSet () const
 
ObserverSetgetOrCreateObserverSet () const
 
void addObserver (Observer *observer) const
 
void removeObserver (Observer *observer) const
 

Protected Member Functions

 ~PerContextShader ()
 
- Protected Member Functions inherited from osg::Referenced
virtual ~Referenced ()
 
void signalObserversAndDelete (bool signalDelete, bool doDelete) const
 
void deleteUsingDeleteHandler () const
 

Protected Attributes

const Shader_shader
 
osg::ref_ptr< osg::GLExtensions_extensions
 
GLuint _glShaderHandle
 
std::string _defineStr
 
bool _needsCompile
 
bool _isCompiled
 
const unsigned int _contextID
 
- Protected Attributes inherited from osg::Referenced
OpenThreads::AtomicPtr _observerSet
 
OpenThreads::Atomic _refCount
 

Additional Inherited Members

- Static Public Member Functions inherited from osg::Referenced
static OpenThreads::MutexgetGlobalReferencedMutex ()
 
static void setDeleteHandler (DeleteHandler *handler)
 
static DeleteHandlergetDeleteHandler ()
 

Detailed Description

PerContextShader (PCS) is an OSG-internal encapsulation of glShader per-GL context.

Constructor & Destructor Documentation

◆ PerContextShader()

osg::Shader::PerContextShader::PerContextShader ( const Shader shader,
unsigned int  contextID 
)

◆ ~PerContextShader()

osg::Shader::PerContextShader::~PerContextShader ( )
protected

Member Function Documentation

◆ attachShader()

void osg::Shader::PerContextShader::attachShader ( GLuint  program) const

Attach our glShader to a glProgram

◆ compileShader()

void osg::Shader::PerContextShader::compileShader ( osg::State state)

◆ detachShader()

void osg::Shader::PerContextShader::detachShader ( GLuint  program) const

Detach our glShader from a glProgram

◆ getDefineString()

const std::string & osg::Shader::PerContextShader::getDefineString ( ) const
inline

◆ getHandle()

GLuint osg::Shader::PerContextShader::getHandle ( ) const
inline

◆ getInfoLog()

bool osg::Shader::PerContextShader::getInfoLog ( std::string &  infoLog) const

◆ isCompiled()

bool osg::Shader::PerContextShader::isCompiled ( ) const
inline

◆ needsCompile()

bool osg::Shader::PerContextShader::needsCompile ( ) const
inline

◆ requestCompile()

void osg::Shader::PerContextShader::requestCompile ( )

◆ setDefineString()

void osg::Shader::PerContextShader::setDefineString ( const std::string &  defStr)
inline

Member Data Documentation

◆ _contextID

const unsigned int osg::Shader::PerContextShader::_contextID
protected

◆ _defineStr

std::string osg::Shader::PerContextShader::_defineStr
protected

Define string passed on to Shaders to help configure them.

◆ _extensions

osg::ref_ptr<osg::GLExtensions> osg::Shader::PerContextShader::_extensions
protected

Pointer to this context's extension functions.

◆ _glShaderHandle

GLuint osg::Shader::PerContextShader::_glShaderHandle
protected

Handle to the actual glShader.

◆ _isCompiled

bool osg::Shader::PerContextShader::_isCompiled
protected

Is our glShader successfully compiled?

◆ _needsCompile

bool osg::Shader::PerContextShader::_needsCompile
protected

Does our glShader need to be recompiled?

◆ _shader

const Shader* osg::Shader::PerContextShader::_shader
protected

Pointer to our parent osg::Shader


The documentation for this class was generated from the following file: