|
Public Types |
typedef std::map< std::string,
GLuint > | AttribBindingList |
typedef std::map< std::string,
std::pair< GLint, GLenum > > | NameInfoMap |
Public Member Functions |
| Program () |
| Program (const Program &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) |
| Copy constructor using CopyOp to manage deep vs shallow copy.
|
| META_StateAttribute (osg, Program, PROGRAM) |
virtual int | compare (const osg::StateAttribute &sa) const |
| return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
|
virtual void | apply (osg::State &state) const |
| If enabled, activate our program in the GL pipeline, performing any rebuild operations that might be pending.
|
virtual void | compileGLObjects (osg::State &state) const |
| default to nothing to compile - all state is applied immediately.
|
virtual void | releaseGLObjects (osg::State *state=0) const |
| release OpenGL objects in specified graphics context if State object is passed, otherwise release OpenGL objects for all graphics context if State object pointer NULL.
|
void | dirtyProgram () |
| Mark our PCSOs as needing relink.
|
bool | addShader (Shader *shader) |
| Attach an osg::Shader to this osg::Program.
|
unsigned int | getNumShaders () const |
Shader * | getShader (unsigned int i) |
const Shader * | getShader (unsigned int i) const |
bool | removeShader (Shader *shader) |
| Remove osg::Shader from this osg::Program.
|
void | addBindAttribLocation (const std::string &name, GLuint index) |
| Add an attribute location binding.
|
void | removeBindAttribLocation (const std::string &name) |
| Add an attribute location binding.
|
const AttribBindingList & | getAttribBindingList () const |
bool | isFixedFunction () const |
| Return true if this Program represents "fixed-functionality" rendering.
|
bool | getGlProgramInfoLog (unsigned int contextID, std::string &log) const |
| Query InfoLog from a glProgram.
|
const NameInfoMap & | getActiveUniforms (unsigned int contextID) const |
const NameInfoMap & | getActiveAttribs (unsigned int contextID) const |
PerContextProgram * | getPCP (unsigned int contextID) const |
| Get the PCP for a particular GL context.
|
Static Public Member Functions |
void | deleteGlProgram (unsigned int contextID, GLuint program) |
| Mark internal glProgram for deletion.
|
void | flushDeletedGlPrograms (unsigned int contextID, double currentTime, double &availableTime) |
| flush all the cached glPrograms which need to be deleted in the OpenGL context related to contextID.
|
Protected Types |
typedef std::vector< ref_ptr<
Shader > > | ShaderList |
Protected Member Functions |
virtual | ~Program () |
Protected Attributes |
osg::buffered_value< osg::ref_ptr<
PerContextProgram > > | _pcpList |
AttribBindingList | _attribBindingList |
ShaderList | _shaderList |