Inheritance diagram for osg::Program:
Public Types | |
typedef std::map< std::string, GLuint > | AttribBindingList |
typedef std::map< std::string, ActiveVarInfo > | ActiveVarInfoMap |
Public Member Functions | |
Program () | |
Program (const Program &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_StateAttribute (osg, Program, PROGRAM) | |
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 | dirtyProgram () |
bool | addShader (Shader *shader) |
unsigned int | getNumShaders () const |
Shader * | getShader (unsigned int i) |
const Shader * | getShader (unsigned int i) const |
bool | removeShader (Shader *shader) |
void | addBindAttribLocation (const std::string &name, GLuint index) |
void | removeBindAttribLocation (const std::string &name) |
const AttribBindingList & | getAttribBindingList () const |
bool | isFixedFunction () const |
bool | getGlProgramInfoLog (unsigned int contextID, std::string &log) const |
const ActiveVarInfoMap & | getActiveUniforms (unsigned int contextID) const |
const ActiveVarInfoMap & | getActiveAttribs (unsigned int contextID) const |
PerContextProgram * | getPCP (unsigned int contextID) const |
Static Public Member Functions | |
static void | deleteGlProgram (unsigned int contextID, GLuint program) |
static void | flushDeletedGlPrograms (unsigned int contextID, double currentTime, double &availableTime) |
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 |
Friends | |
class | PerContextProgram |
Classes | |
struct | ActiveVarInfo |
class | PerContextProgram |
typedef std::map< std::string, ActiveVarInfo > osg::Program::ActiveVarInfoMap |
typedef std::map<std::string,GLuint> osg::Program::AttribBindingList |
typedef std::vector< ref_ptr<Shader> > osg::Program::ShaderList [protected] |
osg::Program::Program | ( | ) |
osg::Program::Program | ( | const Program & | rhs, | |
const osg::CopyOp & | copyop = osg::CopyOp::SHALLOW_COPY | |||
) |
Copy constructor using CopyOp to manage deep vs shallow copy.
virtual osg::Program::~Program | ( | ) | [protected, virtual] |
void osg::Program::addBindAttribLocation | ( | const std::string & | name, | |
GLuint | index | |||
) |
Add an attribute location binding.
bool osg::Program::addShader | ( | Shader * | shader | ) |
Attach an osg::Shader to this osg::Program. Mark Program as needing relink. Return true for success
virtual void osg::Program::apply | ( | osg::State & | state | ) | const [virtual] |
If enabled, activate our program in the GL pipeline, performing any rebuild operations that might be pending.
Implements osg::StateAttribute.
virtual int osg::Program::compare | ( | const osg::StateAttribute & | sa | ) | const [virtual] |
return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs.
Implements osg::StateAttribute.
virtual void osg::Program::compileGLObjects | ( | osg::State & | state | ) | const [virtual] |
default to nothing to compile - all state is applied immediately.
Reimplemented from osg::StateAttribute.
static void osg::Program::deleteGlProgram | ( | unsigned int | contextID, | |
GLuint | program | |||
) | [static] |
Mark internal glProgram for deletion. Deletion requests are queued until they can be executed in the proper GL context.
void osg::Program::dirtyProgram | ( | ) |
Mark our PCSOs as needing relink
static void osg::Program::flushDeletedGlPrograms | ( | unsigned int | contextID, | |
double | currentTime, | |||
double & | availableTime | |||
) | [static] |
flush all the cached glPrograms which need to be deleted in the OpenGL context related to contextID.
const ActiveVarInfoMap& osg::Program::getActiveAttribs | ( | unsigned int | contextID | ) | const |
const ActiveVarInfoMap& osg::Program::getActiveUniforms | ( | unsigned int | contextID | ) | const |
const AttribBindingList& osg::Program::getAttribBindingList | ( | ) | const [inline] |
bool osg::Program::getGlProgramInfoLog | ( | unsigned int | contextID, | |
std::string & | log | |||
) | const |
Query InfoLog from a glProgram
unsigned int osg::Program::getNumShaders | ( | ) | const [inline] |
PerContextProgram* osg::Program::getPCP | ( | unsigned int | contextID | ) | const |
Get the PCP for a particular GL context
const Shader* osg::Program::getShader | ( | unsigned int | i | ) | const [inline] |
Shader* osg::Program::getShader | ( | unsigned int | i | ) | [inline] |
bool osg::Program::isFixedFunction | ( | ) | const |
Return true if this Program represents "fixed-functionality" rendering
osg::Program::META_StateAttribute | ( | osg | , | |
Program | , | |||
PROGRAM | ||||
) |
virtual void osg::Program::releaseGLObjects | ( | osg::State * | state = 0 |
) | const [virtual] |
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.
Reimplemented from osg::StateAttribute.
void osg::Program::removeBindAttribLocation | ( | const std::string & | name | ) |
Add an attribute location binding.
bool osg::Program::removeShader | ( | Shader * | shader | ) |
Remove osg::Shader from this osg::Program. Mark Program as needing relink. Return true for success
friend class PerContextProgram [friend] |
AttribBindingList osg::Program::_attribBindingList [protected] |
osg::buffered_value< osg::ref_ptr<PerContextProgram> > osg::Program::_pcpList [mutable, protected] |
ShaderList osg::Program::_shaderList [protected] |