class SG_EXPORT osg::FragmentProgram

FragmentProgram - encapsulates the OpenGL ARB fragment program state

Inheritance:


Public Methods

[more] FragmentProgram()
[more] FragmentProgram(const FragmentProgram& vp, const CopyOp& copyop=CopyOp::SHALLOW_COPY)
Copy constructor using CopyOp to manage deep vs shallow copy
[more] META_StateAttribute(osg, FragmentProgram, FRAGMENTPROGRAM)
[more]virtual int compare(const osg::StateAttribute& sa) const
return -1 if *this < *rhs, 0 if *this==*rhs, 1 if *this>*rhs
[more]virtual void getAssociatedModes(std::vector<GLMode>& modes) const
[more]inline GLuint& getFragmentProgramID(unsigned int contextID) const
Get the handle to the fragment program id for the current context
[more]inline void setFragmentProgram( const std::string& program )
Set the fragment program using C++ style string
[more]inline void setFragmentProgram( const char* program )
Set the fragment program using a C style string
[more]inline const std::string& getFragmentProgram() const
Get the fragment 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 dirtyFragmentProgramObject()
Force a recompile on next apply() of associated OpenGL vertex program objects
[more]static void deleteFragmentProgramObject(unsigned int contextID, GLuint handle)
use deleteFragmentProgramObject instead of glDeletePrograms to allow OpenGL Fragment Program objects to cached until they can be deleted by the OpenGL context in which they were created, specified by contextID
[more]static void flushDeletedFragmentProgramObjects(unsigned int contextID, double currentTime, double& availableTime)
flush all the cached fragment programs which need to be deleted in the OpenGL context related to contextID
[more]virtual void apply(State& state) const
[more]virtual void compile(State& state) const
[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.

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

[more]mutable FragmentProgramIDList _fragmentProgramIDList
[more]std::string _fragmentProgram
[more]LocalParamList _programLocalParameters
[more]MatrixList _matrixList

Protected Methods

[more]virtual ~FragmentProgram()

Protected Members

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


Inherited from StateAttribute:

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 Members

otypedef GLenum GLMode
otypedef unsigned int GLModeValue
otypedef unsigned int OverrideValue
oenum Values
otypedef unsigned int Type
oenum Types


Inherited from Object:

Public Methods

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

Public Members

oenum DataVariance

Protected Fields

oDataVariance _dataVariance
oref_ptr<Referenced> _userData


Inherited from Referenced:

Public Methods

oinline Referenced& operator = (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 int _refCount


Documentation

FragmentProgram - encapsulates the OpenGL ARB fragment program state
o FragmentProgram()

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

o META_StateAttribute(osg, FragmentProgram, FRAGMENTPROGRAM)

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

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

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

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

oinline void setFragmentProgram( const char* program )
Set the fragment program using a C style string

oinline const std::string& getFragmentProgram() const
Get the fragment program

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

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

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

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

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

ovirtual void apply(State& state) const

ovirtual void compile(State& state) const

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 ~FragmentProgram()

otypedef buffered_value<GLuint> FragmentProgramIDList

omutable FragmentProgramIDList _fragmentProgramIDList

ostd::string _fragmentProgram

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++.