## class SG_EXPORT osg::VertexProgram

> VertexProgram - encapsulates the OpenGL ARB vertex program state

## Inheritance:

### Public Methods

VertexProgram()
VertexProgram(const VertexProgram& vp, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
  Copy constructor using CopyOp to manage deep vs shallow copy
META_StateAttribute(osg, VertexProgram, VERTEXPROGRAM)
virtual int compare(const osg::StateAttribute& sa) const
  return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs
virtual void getAssociatedModes(std::vector<GLMode>& modes) const
inline GLuint& getVertexProgramID(unsigned int contextID) const
  Get the handle to the vertex program id for the current context
inline void setVertexProgram( const std::string& program )
  Set the vertex program using C++ style string
inline void setVertexProgram( const char* program )
  Set the vertex program using a C style string
inline const std::string& getVertexProgram() const
  Get the vertex program
inline void setProgramLocalParameter(const GLuint index, const Vec4& p)
  Program Parameters
inline void setMatrix(const GLenum mode, const Matrix& matrix)
  Matrix
void dirtyVertexProgramObject()
  Force a recompile on next apply() of associated OpenGL vertex program objects
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
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
virtual void apply(State& state) const
virtual void compile(State& state) const
static Extensions* getExtensions(unsigned int contextID, bool createIfNotInitalized)
  Function to call to get the extension of a specified context.
static void setExtensions(unsigned int contextID, Extensions* extensions)
  setExtensions allows users to override the extensions across graphics contexts.

### Public Members

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

### Protected Fields

mutable VertexProgramIDList _vertexProgramIDList
std::string _vertexProgram
LocalParamList _programLocalParameters
MatrixList _matrixList

### Protected Methods

virtual ~VertexProgram()

### Protected Members

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

### Inherited from StateAttribute:

### Public Methods

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

### Public Members

typedef GLenum GLMode
typedef unsigned int GLModeValue
typedef unsigned int OverrideValue
enum Values
typedef unsigned int Type
enum Types

### Inherited from Object:

### Public Methods

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

### Public Members

enum DataVariance

### Protected Fields

DataVariance _dataVariance
ref_ptr<Referenced> _userData

### Inherited from Referenced:

### Public Methods

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

### Protected Fields

mutable int _refCount

## Documentation

> VertexProgram - encapsulates the OpenGL ARB vertex program state

`VertexProgram()`

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

`META_StateAttribute(osg, VertexProgram, VERTEXPROGRAM)`

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

`virtual void getAssociatedModes(std::vector<GLMode>& modes) const`

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

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

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

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

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

`inline void setMatrix(const GLenum mode, const Matrix& matrix)`
  Matrix

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

`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

`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

`virtual void apply(State& state) const`

`virtual void compile(State& state) const`

`static 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..

`static 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.

`virtual ~VertexProgram()`

`typedef buffered_value<GLuint> VertexProgramIDList`

`mutable VertexProgramIDList _vertexProgramIDList`

`std::string _vertexProgram`

`typedef std::map<GLuint,Vec4> LocalParamList`

`LocalParamList _programLocalParameters`

`typedef std::map<GLenum,Matrix> MatrixList`

`MatrixList _matrixList`

This class has no child classes.

Alphabetic index HTML hierarchy of classes or Java

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