class SG_EXPORT osg::VertexProgram

VertexProgram - encapsulates the OpenGL ARB vertex program state

Inheritance:


Public Classes

class SG_EXPORT Extensions: public osg::Referenced
Extensions class which encapsulates the querring of extensions and associated function pointers, and provide convinience wrappers to check for the extensions or use the associated functions

Public Methods

[more] VertexProgram()
[more] VertexProgram(const VertexProgram& vp, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy
[more] META_StateAttribute(osg, VertexProgram, VERTEXPROGRAM)
[more]virtual int compare(const osg::StateAttribute& sa) const
return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs
[more]virtual bool getModeUsage(ModeUsage& usage) const
[more]inline GLuint& getVertexProgramID(unsigned int contextID) const
Get the handle to the vertex program id for the current context
[more]inline void setVertexProgram( const std::string& program )
Set the vertex program using C++ style string
[more]inline void setVertexProgram( const char* program )
Set the vertex program using a C style string
[more]inline const std::string& getVertexProgram() const
Get the vertex program
[more]inline void setProgramLocalParameter(const GLuint index, const Vec4& p)
Program Parameters
[more]inline void setMatrix(const GLenum mode, const Matrix& matrix)
Matrix
[more]void dirtyVertexProgramObject()
Force a recompile on next apply() of associated OpenGL vertex program objects
[more]static void deleteVertexProgramObject(unsigned int contextID, GLuint handle)
use deleteVertexProgramObject instead of glDeletePrograms to allow OpenGL Vertex Program objects to cached until they can be deleted by the OpenGL context in which they were created, specified by contextID
[more]static void flushDeletedVertexProgramObjects(unsigned int contextID, double currentTime, double& availableTime)
flush all the cached vertex programs which need to be deleted in the OpenGL context related to contextID
[more]virtual void apply(State& state) const
[more]virtual void compileGLObjects(State& state) const
[more]virtual void releaseGLObjects(State* state=0) const
release an OpenGL objects in specified graphics context if State object is passed, otherwise release OpenGL objexts for all graphics context if State object pointer NULL
[more]static Extensions* getExtensions(unsigned int contextID, bool createIfNotInitalized)
Function to call to get the extension of a specified context.
[more]static void setExtensions(unsigned int contextID, Extensions* extensions)
setExtensions allows users to override the extensions across graphics contexts.

Protected Fields

[more]mutable VertexProgramIDList _vertexProgramIDList
[more]std::string _vertexProgram
[more]LocalParamList _programLocalParameters
[more]MatrixList _matrixList

Protected Methods

[more]virtual ~VertexProgram()

Protected

[more]typedef buffered_value<GLuint> VertexProgramIDList
[more]typedef std::map<GLuint,Vec4> LocalParamList
[more]typedef std::map<GLenum,Matrix> MatrixList


Inherited from StateAttribute:

Public Classes

oenum Values
oenum Types
ostruct ModeUsage

Public Methods

ovirtual Object* cloneType() const
ovirtual Object* clone(const CopyOp&) const
ovirtual bool isSameKindAs(const Object* obj) const
ovirtual const char* libraryName() const
ovirtual const char* className() const
ovirtual Type getType() const
ovirtual bool isTextureAttribute() const
obool operator < (const StateAttribute& rhs) const
obool operator == (const StateAttribute& rhs) const
obool operator != (const StateAttribute& rhs) const

Public

otypedef GLenum GLMode
otypedef unsigned int GLModeValue
otypedef unsigned int OverrideValue
otypedef unsigned int Type


Inherited from Object:

Public Classes

oenum DataVariance

Public Methods

oinline void setDataVariance(DataVariance dv)
oinline DataVariance getDataVariance() const
oinline void setUserData(Referenced* obj)
oinline Referenced* getUserData()
oinline const Referenced* getUserData() const

Protected Fields

oDataVariance _dataVariance
oref_ptr<Referenced> _userData


Inherited from Referenced:

Public Methods

oinline Referenced& operator = (const Referenced&)
ostatic void setDeleteHandler(DeleteHandler* handler)
ostatic DeleteHandler* getDeleteHandler()
oinline void ref() const
oinline void unref_nodelete() const
oinline int referenceCount() const
oinline void unref() const

Protected Fields

omutable OpenThreads::Mutex _refMutex
omutable int _refCount


Documentation

VertexProgram - encapsulates the OpenGL ARB vertex program state
o VertexProgram()

o VertexProgram(const VertexProgram& vp, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy

o META_StateAttribute(osg, VertexProgram, VERTEXPROGRAM)

ovirtual int compare(const osg::StateAttribute& sa) const
return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs

ovirtual bool getModeUsage(ModeUsage& usage) const

oinline GLuint& getVertexProgramID(unsigned int contextID) const
Get the handle to the vertex program id for the current context

oinline void setVertexProgram( const std::string& program )
Set the vertex program using C++ style string

oinline void setVertexProgram( const char* program )
Set the vertex program using a C style string

oinline const std::string& getVertexProgram() const
Get the vertex program

oinline void setProgramLocalParameter(const GLuint index, const Vec4& p)
Program Parameters

oinline void setMatrix(const GLenum mode, const Matrix& matrix)
Matrix

ovoid dirtyVertexProgramObject()
Force a recompile on next apply() of associated OpenGL vertex program objects

ostatic void deleteVertexProgramObject(unsigned int contextID, GLuint handle)
use deleteVertexProgramObject instead of glDeletePrograms to allow OpenGL Vertex Program objects to cached until they can be deleted by the OpenGL context in which they were created, specified by contextID

ostatic void flushDeletedVertexProgramObjects(unsigned int contextID, double currentTime, double& availableTime)
flush all the cached vertex programs which need to be deleted in the OpenGL context related to contextID

ovirtual void apply(State& state) const

ovirtual void compileGLObjects(State& state) const

ovirtual void releaseGLObjects(State* state=0) const
release an OpenGL objects in specified graphics context if State object is passed, otherwise release OpenGL objexts for all graphics context if State object pointer NULL

ostatic Extensions* getExtensions(unsigned int contextID, bool createIfNotInitalized)
Function to call to get the extension of a specified context. If the Exentsion object for that context has not yet been created then and the 'createIfNotInitalized' flag been set to false then returns NULL. If 'createIfNotInitalized' is true then the Extensions object is automatically created. However, in this case the extension object only be created with the graphics context associated with ContextID..

ostatic void setExtensions(unsigned int contextID, Extensions* extensions)
setExtensions allows users to override the extensions across graphics contexts. typically used when you have different extensions supported across graphics pipes but need to ensure that they all use the same low common denominator extensions.

ovirtual ~VertexProgram()

otypedef buffered_value<GLuint> VertexProgramIDList

omutable VertexProgramIDList _vertexProgramIDList

ostd::string _vertexProgram

otypedef std::map<GLuint,Vec4> LocalParamList

oLocalParamList _programLocalParameters

otypedef std::map<GLenum,Matrix> MatrixList

oMatrixList _matrixList


This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.