|  | 
|  | Shader (Type type=UNDEFINED) | 
|  | 
|  | Shader (Type type, const std::string &source) | 
|  | 
|  | Shader (Type type, ShaderBinary *shaderBinary) | 
|  | 
|  | Shader (const Shader &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | 
|  | Copy constructor using CopyOp to manage deep vs shallow copy.  More... 
 | 
|  | 
|  | META_Object (osg, Shader) | 
|  | 
| int | compare (const Shader &rhs) const | 
|  | 
| bool | setType (Type t) | 
|  | Set the Shader type as an enum.  More... 
 | 
|  | 
| Type | getType () const | 
|  | Get the Shader type as an enum.  More... 
 | 
|  | 
| const char * | getTypename () const | 
|  | Get the Shader type as a descriptive string.  More... 
 | 
|  | 
| void | setFileName (const std::string &fileName) | 
|  | Set file name for the shader source code.  More... 
 | 
|  | 
| const std::string & | getFileName () const | 
|  | Get filename to which the shader source code belongs.  More... 
 | 
|  | 
| void | setShaderSource (const std::string &sourceText) | 
|  | Set the Shader's source code text from a string.  More... 
 | 
|  | 
| const std::string & | getShaderSource () const | 
|  | Query the shader's source code text. 
 | 
|  | 
| void | setShaderDefinesMode (ShaderDefinesMode sdm) | 
|  | 
| ShaderDefinesMode | getShaderDefinesMode () const | 
|  | 
| void | setShaderDefines (const ShaderDefines &shaderDefs) | 
|  | 
| ShaderDefines & | getShaderDefines () | 
|  | 
| const ShaderDefines & | getShaderDefines () const | 
|  | 
| void | setShaderRequirements (const ShaderDefines &shaderDefs) | 
|  | 
| ShaderDefines & | getShaderRequirements () | 
|  | 
| const ShaderDefines & | getShaderRequirements () const | 
|  | 
| void | setShaderBinary (ShaderBinary *shaderBinary) | 
|  | Set the Shader using a ShaderBinary.  More... 
 | 
|  | 
| ShaderBinary * | getShaderBinary () | 
|  | Get the Shader's ShaderBinary, return NULL if none is assigned.  More... 
 | 
|  | 
| const ShaderBinary * | getShaderBinary () const | 
|  | Get the const Shader's ShaderBinary, return NULL if none is assigned.  More... 
 | 
|  | 
| bool | loadShaderSourceFromFile (const std::string &fileName) | 
|  | Load the Shader's source code text from a file.  More... 
 | 
|  | 
| void | addCodeInjection (float position, const std::string &code) | 
|  | Add code injection that will be placed in the main shader to enable support for this shader.  More... 
 | 
|  | 
| CodeInjectionMap & | getCodeInjectionMap () | 
|  | Get the code injection map.  More... 
 | 
|  | 
| const CodeInjectionMap & | getCodeInjectionMap () const | 
|  | Get the const code injection map.  More... 
 | 
|  | 
| virtual void | resizeGLObjectBuffers (unsigned int maxSize) | 
|  | Resize any per context GLObject buffers to specified size.  More... 
 | 
|  | 
| 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.  More... 
 | 
|  | 
| void | dirtyShader () | 
|  | Mark our PCSs as needing recompilation.  More... 
 | 
|  | 
| void | compileShader (osg::State &state) const | 
|  | If needed, compile the PCS's glShader. 
 | 
|  | 
| PerContextShader * | getPCS (osg::State &state) const | 
|  | 
|  | Object () | 
|  | Construct an object.  More... 
 | 
|  | 
|  | Object (bool threadSafeRefUnref) | 
|  | 
|  | Object (const Object &, const CopyOp ©op=CopyOp::SHALLOW_COPY) | 
|  | Copy constructor, optional CopyOp object can be used to control shallow vs deep copying of dynamic data.  More... 
 | 
|  | 
| virtual Object * | cloneType () const =0 | 
|  | Clone the type of an object, with Object* return type.  More... 
 | 
|  | 
| virtual Object * | clone (const CopyOp &) const =0 | 
|  | Clone an object, with Object* return type.  More... 
 | 
|  | 
| virtual bool | isSameKindAs (const Object *) const | 
|  | 
| virtual const char * | libraryName () const =0 | 
|  | return the name of the object's library.  More... 
 | 
|  | 
| virtual const char * | className () const =0 | 
|  | return the name of the object's class type.  More... 
 | 
|  | 
| std::string | getCompoundClassName () const | 
|  | return the compound class name that combines the library name and class name.  More... 
 | 
|  | 
| virtual Node * | asNode () | 
|  | Convert 'this' into a Node pointer if Object is a Node, otherwise return 0.  More... 
 | 
|  | 
| virtual const Node * | asNode () const | 
|  | convert 'const this' into a const Node pointer if Object is a Node, otherwise return 0.  More... 
 | 
|  | 
| virtual NodeVisitor * | asNodeVisitor () | 
|  | Convert 'this' into a NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0.  More... 
 | 
|  | 
| virtual const NodeVisitor * | asNodeVisitor () const | 
|  | convert 'const this' into a const NodeVisitor pointer if Object is a NodeVisitor, otherwise return 0.  More... 
 | 
|  | 
| virtual StateAttribute * | asStateAttribute () | 
|  | Convert 'this' into a StateAttribute pointer if Object is a StateAttribute, otherwise return 0.  More... 
 | 
|  | 
| virtual const StateAttribute * | asStateAttribute () const | 
|  | convert 'const this' into a const StateAttribute pointer if Object is a StateAttribute, otherwise return 0.  More... 
 | 
|  | 
| virtual Uniform * | asUniform () | 
|  | Convert 'this' into a Uniform pointer if Object is a Uniform, otherwise return 0.  More... 
 | 
|  | 
| virtual const Uniform * | asUniform () const | 
|  | convert 'const this' into a const Uniform pointer if Object is a Uniform, otherwise return 0.  More... 
 | 
|  | 
| virtual void | setThreadSafeRefUnref (bool threadSafe) | 
|  | Set whether to use a mutex to ensure ref() and unref() are thread safe.  More... 
 | 
|  | 
| virtual void | setName (const std::string &name) | 
|  | Set the name of object using C++ style string.  More... 
 | 
|  | 
| void | setName (const char *name) | 
|  | Set the name of object using a C style string.  More... 
 | 
|  | 
| const std::string & | getName () const | 
|  | Get the name of object.  More... 
 | 
|  | 
| void | setDataVariance (DataVariance dv) | 
|  | Set the data variance of this object.  More... 
 | 
|  | 
| DataVariance | getDataVariance () const | 
|  | Get the data variance of this object.  More... 
 | 
|  | 
| virtual void | computeDataVariance () | 
|  | Compute the DataVariance based on an assessment of callback etc.  More... 
 | 
|  | 
| void | setUserDataContainer (osg::UserDataContainer *udc) | 
|  | set the UserDataContainer object.  More... 
 | 
|  | 
| template<class T > | 
| void | setUserDataContainer (const ref_ptr< T > &udc) | 
|  | 
| osg::UserDataContainer * | getUserDataContainer () | 
|  | get the UserDataContainer attached to this object.  More... 
 | 
|  | 
| const osg::UserDataContainer * | getUserDataContainer () const | 
|  | get the const UserDataContainer attached to this object.  More... 
 | 
|  | 
| osg::UserDataContainer * | getOrCreateUserDataContainer () | 
|  | Convenience method that returns the UserDataContainer, and if one doesn't already exist creates and assigns a DefaultUserDataContainer to the Object and then return this new UserDataContainer.  More... 
 | 
|  | 
| virtual void | setUserData (Referenced *obj) | 
|  | Set user data, data must be subclassed from Referenced to allow automatic memory handling.  More... 
 | 
|  | 
| template<class T > | 
| void | setUserData (const ref_ptr< T > &ud) | 
|  | 
| virtual Referenced * | getUserData () | 
|  | Get user data.  More... 
 | 
|  | 
| virtual const Referenced * | getUserData () const | 
|  | Get const user data.  More... 
 | 
|  | 
| template<typename T > | 
| bool | getUserValue (const std::string &name, T &value) const | 
|  | Convenience method that casts the named UserObject to osg::TemplateValueObject<T> and gets the value.  More... 
 | 
|  | 
| template<typename T > | 
| void | setUserValue (const std::string &name, const T &value) | 
|  | Convenience method that creates the osg::TemplateValueObject<T> to store the specified value and adds it as a named UserObject.  More... 
 | 
|  | 
| template<typename T > | 
| BoolValueObject UCharValueObject UShortValueObject UIntValueObject DoubleValueObject Vec3fValueObject Vec2dValueObject Vec4dValueObject PlaneValueObject MatrixdValueObject BoundingBoxdValueObject BoundingSpheredValueObject bool | getUserValue (const std::string &name, T &value) const | 
|  | provide implementation of osg::Object::getUserValue(..) template 
 | 
|  | 
|  | Referenced (bool threadSafeRefUnref) | 
|  | 
|  | Referenced (const Referenced &) | 
|  | 
| Referenced & | operator= (const Referenced &) | 
|  | 
| bool | getThreadSafeRefUnref () const | 
|  | Get whether a mutex is used to ensure ref() and unref() are thread safe.  More... 
 | 
|  | 
| bool | getThreadSafeRefUnref () const | 
|  | 
| OpenThreads::Mutex * | getRefMutex () const | 
|  | Get the mutex used to ensure thread safety of ref()/unref().  More... 
 | 
|  | 
| OpenThreads::Mutex * | getRefMutex () const | 
|  | 
| int | ref () const | 
|  | Increment the reference count by one, indicating that this object has another pointer which is referencing it.  More... 
 | 
|  | 
| int | unref () const | 
|  | Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it.  More... 
 | 
|  | 
| int | unref_nodelete () const | 
|  | Decrement the reference count by one, indicating that a pointer to this object is no longer referencing it.  More... 
 | 
|  | 
| int | referenceCount () const | 
|  | Return the number of pointers currently referencing this object.  More... 
 | 
|  | 
| ObserverSet * | getObserverSet () const | 
|  | Get the ObserverSet if one is attached, otherwise return NULL.  More... 
 | 
|  | 
| ObserverSet * | getOrCreateObserverSet () const | 
|  | Get the ObserverSet if one is attached, otherwise create an ObserverSet, attach it, then return this newly created ObserverSet.  More... 
 | 
|  | 
| void | addObserver (Observer *observer) const | 
|  | Add a Observer that is observing this object, notify the Observer when this object gets deleted.  More... 
 | 
|  | 
| void | removeObserver (Observer *observer) const | 
|  | Remove Observer that is observing this object.  More... 
 | 
|  | 
osg::Shader is an application-level abstraction of an OpenGL glShader. 
It is a container to load the shader source code text and manage its compilation. An osg::Shader may be attached to more than one osg::Program. Shader will automatically manage per-context instancing of the internal objects, if that is necessary for a particular display configuration.