Inheritance diagram for osgGL2::ProgramObject:
Public Member Functions | |
ProgramObject () | |
ProgramObject (const ProgramObject &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_StateAttribute (osgGL2, ProgramObject, PROGRAMOBJECT) | |
virtual int | compare (const osg::StateAttribute &sa) const |
virtual void | apply (osg::State &state) const |
virtual void | compileGLObjects (osg::State &state) const |
virtual void | releaseGLObjects (osg::State *state=0) const |
void | dirtyProgramObject () |
void | dirtyShaderObjects () |
void | enable (bool enabled) |
void | addShader (ShaderObject *shadObj) |
void | setUniform (const char *uniformName, int value) |
void | setUniform (const char *uniformName, float value) |
void | setUniform (const char *uniformName, osg::Vec2 value) |
void | setUniform (const char *uniformName, osg::Vec3 value) |
void | setUniform (const char *uniformName, osg::Vec4 value) |
void | setSampler (const char *uniformName, int value) |
Static Public Member Functions | |
static void | deleteObject (unsigned int contextID, GLhandleARB handle) |
static void | flushDeletedGL2Objects (unsigned int contextID, double currentTime, double &availableTime) |
Protected Types | |
typedef std::vector< ShaderObjectPtr > | ShaderObjectList |
Protected Member Functions | |
virtual | ~ProgramObject () |
PerContextProgObj * | getPCPO (unsigned int contextID) const |
void | updateUniforms (int frameNumber) const |
Protected Attributes | |
bool | _enabled |
ShaderObjectList | _shaderObjectList |
osg::buffered_value< osg::ref_ptr< PerContextProgObj > > | _pcpoList |
int | _frameNumberOfLastPCPOUpdate |
UniformValueList | _univalList |
Classes | |
class | PerContextProgObj |
|
|
|
|
|
Copy constructor using CopyOp to manage deep vs shallow copy. |
|
|
|
Attach a ShaderObject to this ProgramObject |
|
If enabled, install our shader program in the GL pipeline, performing any shader program rebuild operations that might be pending. Implements osg::StateAttribute. |
|
return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs. Implements osg::StateAttribute. |
|
default to nothing to compile - all state is applied immediately. Reimplemented from osg::StateAttribute. |
|
Mark internal GL objects for deletion. Deletion requests are queued until they can be executed in the proper GL context. |
|
Mark us as "dirty" and in need of relinking. |
|
Mark our attached ShaderObjects as "dirty" and in need of recompilation. |
|
An override to control whether the shader program will actually be installed when OSG attempts to apply() |
|
flush all the cached glProgramObjects which need to be deleted in the OpenGL context related to contextID. |
|
Get the PCPO for a particular GL context |
|
|
|
release an OpenGL objects in specified graphics context if State object is passed, otherwise release OpenGL objexts for all graphics context if State object pointer NULL. Reimplemented from osg::StateAttribute. |
|
|
|
|
|
|
|
|
|
|
|
Assign a value to a ProgramObject's uniform variable |
|
Per frame, copy the list of pending UniformValue updates to each of the PCPOs. |
|
|
|
|
|
|
|
|
|
|