Inheritance diagram for osg::Shader:

Public Types | |
| enum | Type { VERTEX = GL_VERTEX_SHADER, FRAGMENT = GL_FRAGMENT_SHADER, UNDEFINED = -1 } |
Public Member Functions | |
| Shader (Type type=UNDEFINED) | |
| Shader (Type type, const std::string &source) | |
| Shader (const Shader &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
| META_Object (osg, Shader) | |
| int | compare (const Shader &rhs) const |
| bool | setType (Type t) |
| void | setShaderSource (const std::string &sourceText) |
| bool | loadShaderSourceFromFile (const std::string &fileName) |
| const std::string & | getShaderSource () const |
| Type | getType () const |
| const char * | getTypename () const |
| void | releaseGLObjects (osg::State *state=0) const |
| void | dirtyShader () |
| void | compileShader (unsigned int contextID) const |
| void | attachShader (unsigned int contextID, GLuint program) const |
| bool | getGlShaderInfoLog (unsigned int contextID, std::string &log) const |
Static Public Member Functions | |
| static Shader * | readShaderFile (Type type, const std::string &fileName) |
| static void | deleteGlShader (unsigned int contextID, GLuint shader) |
| static void | flushDeletedGlShaders (unsigned int contextID, double currentTime, double &availableTime) |
| static Shader::Type | getTypeId (const std::string &tname) |
Protected Types | |
| typedef std::set< osg::Program * > | ProgramSet |
Protected Member Functions | |
| virtual | ~Shader () |
| PerContextShader * | getPCS (unsigned int contextID) const |
| bool | addProgramRef (osg::Program *program) |
| bool | removeProgramRef (osg::Program *program) |
Protected Attributes | |
| Type | _type |
| std::string | _shaderSource |
| ProgramSet | _programSet |
| osg::buffered_value< osg::ref_ptr< PerContextShader > > | _pcsList |
Friends | |
| class | osg::Program |
Classes | |
| class | PerContextShader |
|
|
osg::Programs that this osg::Shader is attached to |
|
|
|
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
Copy constructor using CopyOp to manage deep vs shallow copy. |
|
|
|
|
|
|
|
||||||||||||
|
For a given GL context, attach a glShader to a glProgram |
|
|
|
|
|
If needed, compile the PCS's glShader |
|
||||||||||||
|
Mark internal glShader for deletion. Deletion requests are queued tuntil they can be executed in the proper GL context. |
|
|
Mark our PCSs as needing recompilation. Also mark Programs that depend on us as needing relink |
|
||||||||||||||||
|
flush all the cached glShaders which need to be deleted in the OpenGL context related to contextID. |
|
||||||||||||
|
Query InfoLog from a glShader |
|
|
|
|
|
Query the shader's source code text |
|
|
Get the Shader type as an enum. |
|
|
|
|
|
Get the Shader type as a descriptive string. |
|
|
Load the Shader's source code text from a file. |
|
||||||||||||
|
|
|
||||||||||||
|
Read shader source from file and then constructor shader of specified type. Return the resulting Shader or 0 if no valid shader source code be read. |
|
|
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::Object. |
|
|
|
|
|
Load the Shader's source code text from a string. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.6