## class OSGGL2_EXPORT osgGL2::ProgramObject

> Encapsulates the OpenGL Shading Language ProgramObject

## Inheritance:

### Public Methods

ProgramObject()
ProgramObject(const ProgramObject& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY)
  Copy constructor using CopyOp to manage deep vs shallow copy
META_StateAttribute(osgGL2, ProgramObject, PROGRAMOBJECT)
virtual int compare(const osg::StateAttribute& sa) const
  return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs
virtual void getAssociatedModes(std::vector<GLMode>& ) const
virtual void apply(osg::State& state) const
virtual void compile(osg::State& state) const
void dirtyProgramObject()
  Force a relink on next apply() of associated glProgramObject.
void addShader( ShaderObject* shader )
static void deleteObject(unsigned int contextID, GLhandleARB handle)
  use deleteObject instead of glDeleteObject to allow GL2 Objects to cached until they can be deleted by the OpenGL context in which they were created, specified by contextID
static void flushDeletedGL2Objects(unsigned int contextID, double currentTime, double& availableTime)
  flush all the cached glProgramObjects which need to be deleted in the OpenGL context related to contextID

### Protected Fields

ShaderObjectList _shaderObjectList
mutable PCPOList _pcpoList

### Protected Methods

virtual ~ProgramObject()
PerContextProgObj* getPCPO(unsigned int contextID) const

### Protected Members

typedef std::vector< osg::ref_ptr<ShaderObject> > ShaderObjectList
class OSGGL2_EXPORT PerContextProgObj: public osg::Referenced
typedef osg::buffered_value< osg::ref_ptr<PerContextProgObj> > PCPOList

## Documentation

> Encapsulates the OpenGL Shading Language ProgramObject

`ProgramObject()`

`ProgramObject(const ProgramObject& rhs, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY)`
  Copy constructor using CopyOp to manage deep vs shallow copy

`META_StateAttribute(osgGL2, ProgramObject, PROGRAMOBJECT)`

`virtual int compare(const osg::StateAttribute& sa) const`
  return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs

`virtual void getAssociatedModes(std::vector<GLMode>& ) const`

`virtual void apply(osg::State& state) const`

`virtual void compile(osg::State& state) const`

`void dirtyProgramObject()`
  Force a relink on next apply() of associated glProgramObject.

`void addShader( ShaderObject* shader )`

`static void deleteObject(unsigned int contextID, GLhandleARB handle)`
  use deleteObject instead of glDeleteObject to allow GL2 Objects to cached until they can be deleted by the OpenGL context in which they were created, specified by contextID

`static void flushDeletedGL2Objects(unsigned int contextID, double currentTime, double& availableTime)`
  flush all the cached glProgramObjects which need to be deleted in the OpenGL context related to contextID

`virtual ~ProgramObject()`

`typedef std::vector< osg::ref_ptr<ShaderObject> > ShaderObjectList`

`ShaderObjectList _shaderObjectList`

`typedef osg::buffered_value< osg::ref_ptr<PerContextProgObj> > PCPOList`

`mutable PCPOList _pcpoList`

`PerContextProgObj* getPCPO(unsigned int contextID) const`

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

This page was generated with the help of DOC++.