# osgGL2::ProgramObject::PerContextProgObj Class Reference

PCPO is an OSG-internal encapsulation of glProgramObjects per-GL context. More...

Inheritance diagram for osgGL2::ProgramObject::PerContextProgObj:

[legend]
List of all members.

## Public Member Functions

| PerContextProgObj (const ProgramObject *progObj, unsigned int contextID)
| PerContextProgObj (const PerContextProgObj &rhs)
GLhandleARB & | getHandle ()
bool | isDirty () const
void | markAsDirty ()
void | build ()
void | use () const
void | updateUniforms (const UniformValueList &univalList)
| Add a list of UniformValues to our per-context queue.
void | applyUniformValues ()
| Apply our queue of pending UniformValue updates to the glProgramObjects.

## Protected Member Functions

| PerContextProgObj ()
| ~PerContextProgObj ()

## Protected Attributes

const ProgramObject * | _progObj
| Pointer to our parent ProgramObject.
osg::ref_ptr< Extensions > | _extensions
| Pointer to this context's extension functions.
GLhandleARB | _glProgObjHandle
| Handle to the actual glProgramObject.
bool | _dirty
| Do we need to be linked?
UniformValueList | _univalList
| Queue of UniformValues awaiting assignment.
const unsigned int | _contextID

## Detailed Description

PCPO is an OSG-internal encapsulation of glProgramObjects per-GL context.

## Constructor & Destructor Documentation

ProgramObject::PerContextProgObj::PerContextProgObj | ( | const ProgramObject * | progObj,
|  | unsigned int | contextID
| ) |

ProgramObject::PerContextProgObj::PerContextProgObj | ( | const PerContextProgObj & | rhs | ) |

osgGL2::ProgramObject::PerContextProgObj::PerContextProgObj | ( |  | ) | `[protected]`

ProgramObject::PerContextProgObj::~PerContextProgObj | ( |  | ) | `[protected]`

## Member Function Documentation

void ProgramObject::PerContextProgObj::applyUniformValues | ( |  | ) |

| Apply our queue of pending UniformValue updates to the glProgramObjects.

void ProgramObject::PerContextProgObj::build | ( |  | ) |

GLhandleARB& osgGL2::ProgramObject::PerContextProgObj::getHandle | ( |  | ) | `[inline]`

bool osgGL2::ProgramObject::PerContextProgObj::isDirty | ( |  | ) | const`[inline]`

void osgGL2::ProgramObject::PerContextProgObj::markAsDirty | ( |  | ) | `[inline]`

void ProgramObject::PerContextProgObj::updateUniforms | ( | const UniformValueList & | univalList | ) |

| Add a list of UniformValues to our per-context queue.

void ProgramObject::PerContextProgObj::use | ( |  | ) | const

## Member Data Documentation

const unsigned int osgGL2::ProgramObject::PerContextProgObj::_contextID `[protected]`

bool osgGL2::ProgramObject::PerContextProgObj::_dirty `[protected]`

| Do we need to be linked?

osg::ref_ptr<Extensions> osgGL2::ProgramObject::PerContextProgObj::_extensions `[protected]`

| Pointer to this context's extension functions.

GLhandleARB osgGL2::ProgramObject::PerContextProgObj::_glProgObjHandle `[protected]`

| Handle to the actual glProgramObject.

const ProgramObject* osgGL2::ProgramObject::PerContextProgObj::_progObj `[protected]`

| Pointer to our parent ProgramObject.

UniformValueList osgGL2::ProgramObject::PerContextProgObj::_univalList `[protected]`

| Queue of UniformValues awaiting assignment.

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

- ProgramObject
- ProgramObject.cpp