class SG_EXPORT osg::FragmentProgram

FragmentProgram - encapsulates the OpenGL ARB fragment 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] 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 bool getModeUsage(ModeUsage& usage) 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)
Set Program Parameters
[more]inline LocalParamList& getLocalParamList()
Get list of Program Parameters
[more]inline const LocalParamList& getLocalParamList() const
Get const list of 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 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.

Public

[more]typedef std::map<GLuint,Vec4> LocalParamList

Protected Fields

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

Protected Methods

[more]virtual ~FragmentProgram()

Protected

[more]typedef buffered_value<GLuint> FragmentProgramIDList
[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

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 bool getModeUsage(ModeUsage& usage) 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)
Set Program Parameters

otypedef std::map<GLuint,Vec4> LocalParamList

oinline LocalParamList& getLocalParamList()
Get list of Program Parameters

oinline const LocalParamList& getLocalParamList() const
Get const list of 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 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 ~FragmentProgram()

otypedef buffered_value<GLuint> FragmentProgramIDList

omutable FragmentProgramIDList _fragmentProgramIDList

ostd::string _fragmentProgram

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