Fake OpenGL program for tracking FFP state in the way consistent to programmable pipeline.
More...
|
Public Types inherited from Standard_Transient |
typedef void | base_type |
| Returns a type descriptor about this object. More...
|
|
| OpenGl_ShaderProgram (const Handle< Graphic3d_ShaderProgram > &theProxy=NULL) |
| Creates uninitialized shader program. More...
|
|
virtual | ~OpenGl_ShaderProgram () |
| Releases resources of shader program. More...
|
|
Standard_Boolean | Create (const Handle< OpenGl_Context > &theCtx) |
| Creates new empty shader program of specified type. More...
|
|
virtual void | Release (OpenGl_Context *theCtx) override |
| Destroys shader program. More...
|
|
virtual Standard_Size | EstimatedDataSize () const override |
| Returns estimated GPU memory usage - cannot be easily estimated. More...
|
|
Standard_Boolean | AttachShader (const Handle< OpenGl_Context > &theCtx, const Handle< OpenGl_ShaderObject > &theShader) |
| Attaches shader object to the program object. More...
|
|
Standard_Boolean | DetachShader (const Handle< OpenGl_Context > &theCtx, const Handle< OpenGl_ShaderObject > &theShader) |
| Detaches shader object to the program object. More...
|
|
Standard_Boolean | Initialize (const Handle< OpenGl_Context > &theCtx, const Graphic3d_ShaderObjectList &theShaders) |
| Initializes program object with the list of shader objects. More...
|
|
Standard_Boolean | Link (const Handle< OpenGl_Context > &theCtx) |
| Links the program object. More...
|
|
Standard_Boolean | FetchInfoLog (const Handle< OpenGl_Context > &theCtx, TCollection_AsciiString &theLog) |
| Fetches information log of the last link operation. More...
|
|
Standard_Boolean | ApplyVariables (const Handle< OpenGl_Context > &theCtx) |
| Fetches uniform variables from proxy shader program. More...
|
|
bool | IsValid () const |
|
GLuint | ProgramId () const |
|
Standard_Boolean | HasTessellationStage () const |
| Return TRUE if program defines tessellation stage. More...
|
|
Standard_Integer | NbLightsMax () const |
| Return the length of array of light sources (THE_MAX_LIGHTS), to be used for initialization occLightSources (OpenGl_OCC_LIGHT_SOURCE_PARAMS). More...
|
|
Standard_Integer | NbClipPlanesMax () const |
| Return the length of array of clipping planes (THE_MAX_CLIP_PLANES), to be used for initialization occClipPlaneEquations (OpenGl_OCC_CLIP_PLANE_EQUATIONS). More...
|
|
Standard_Integer | NbFragmentOutputs () const |
| Return the length of array of Fragment Shader outputs (THE_NB_FRAG_OUTPUTS), to be used for initialization occFragColorArray/occFragColorN. More...
|
|
Standard_Boolean | HasAlphaTest () const |
| Return true if Fragment Shader should perform alpha test; FALSE by default. More...
|
|
Standard_Boolean | HasWeightOitOutput () const |
| Return true if Fragment Shader color should output the weighted OIT coverage; FALSE by default. More...
|
|
GLint | GetUniformLocation (const Handle< OpenGl_Context > &theCtx, const GLchar *theName) const |
| Returns location of the specific uniform variable. More...
|
|
GLint | GetAttributeLocation (const Handle< OpenGl_Context > &theCtx, const GLchar *theName) const |
| Returns index of the generic vertex attribute by variable name. More...
|
|
GLint | GetStateLocation (const GLuint theVariable) const |
| Returns location of the OCCT state uniform variable. More...
|
|
Standard_Boolean | GetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, OpenGl_Vec4i &theValue) const |
| Returns the value of the integer uniform variable. More...
|
|
Standard_Boolean | GetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, OpenGl_Vec4i &theValue) const |
|
Standard_Boolean | GetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, OpenGl_Vec4 &theValue) const |
| Returns the value of the float uniform variable. More...
|
|
Standard_Boolean | GetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, OpenGl_Vec4 &theValue) const |
| Returns the value of the float uniform variable. More...
|
|
Standard_Boolean | GetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, OpenGl_Vec4i &theValue) const |
| Returns the integer vertex attribute. More...
|
|
Standard_Boolean | GetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, OpenGl_Vec4i &theValue) const |
| Returns the integer vertex attribute. More...
|
|
Standard_Boolean | GetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, OpenGl_Vec4 &theValue) const |
| Returns the float vertex attribute. More...
|
|
Standard_Boolean | GetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, OpenGl_Vec4 &theValue) const |
| Returns the float vertex attribute. More...
|
|
Standard_Boolean | SetAttributeName (const Handle< OpenGl_Context > &theCtx, GLint theIndex, const GLchar *theName) |
| Wrapper for glBindAttribLocation() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, GLfloat theValue) |
| Wrapper for glVertexAttrib1f() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, GLfloat theValue) |
| Wrapper for glVertexAttrib1f() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec2 &theValue) |
| Wrapper for glVertexAttrib2fv() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, const OpenGl_Vec2 &theValue) |
| Wrapper for glVertexAttrib2fv() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec3 &theValue) |
| Wrapper for glVertexAttrib3fv() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, const OpenGl_Vec3 &theValue) |
| Wrapper for glVertexAttrib3fv() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec4 &theValue) |
| Wrapper for glVertexAttrib4fv() More...
|
|
Standard_Boolean | SetAttribute (const Handle< OpenGl_Context > &theCtx, GLint theIndex, const OpenGl_Vec4 &theValue) |
| Wrapper for glVertexAttrib4fv() More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, GLint theValue) |
| Specifies the value of the integer uniform variable. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLint theValue) |
| Specifies the value of the integer uniform variable. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec2i &theValue) |
| Specifies the value of the integer uniform 2D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec2i &theValue) |
| Specifies the value of the integer uniform 2D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec3i &theValue) |
| Specifies the value of the integer uniform 3D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec3i &theValue) |
| Specifies the value of the integer uniform 3D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec4i &theValue) |
| Specifies the value of the integer uniform 4D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec4i &theValue) |
| Specifies the value of the integer uniform 4D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec2u &theValue) |
| Specifies the value of the unsigned integer uniform 2D vector (uvec2). More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec2u &theValue) |
| Specifies the value of the unsigned integer uniform 2D vector (uvec2). More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const GLsizei theCount, const OpenGl_Vec2u *theValue) |
| Specifies the value of the uvec2 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const GLsizei theCount, const OpenGl_Vec2u *theValue) |
| Specifies the value of the uvec2 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, GLfloat theValue) |
| Specifies the value of the float uniform variable. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLfloat theValue) |
| Specifies the value of the float uniform variable. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec2 &theValue) |
| Specifies the value of the float uniform 2D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec2 &theValue) |
| Specifies the value of the float uniform 2D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec3 &theValue) |
| Specifies the value of the float uniform 3D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec3 &theValue) |
| Specifies the value of the float uniform 3D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Vec4 &theValue) |
| Specifies the value of the float uniform 4D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Vec4 &theValue) |
| Specifies the value of the float uniform 4D vector. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Mat4 &theValue, GLboolean theTranspose=GL_FALSE) |
| Specifies the value of the float uniform 4x4 matrix. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Mat4 &theValue, GLboolean theTranspose=GL_FALSE) |
| Specifies the value of the float uniform 4x4 matrix. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const OpenGl_Matrix &theValue, GLboolean theTranspose=GL_FALSE) |
| Specifies the value of the float uniform 4x4 matrix. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const OpenGl_Matrix &theValue, GLboolean theTranspose=GL_FALSE) |
| Specifies the value of the float uniform 4x4 matrix. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const Standard_ShortReal *theData) |
| Specifies the value of the float uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec2 *theData) |
| Specifies the value of the float2 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec3 *theData) |
| Specifies the value of the float3 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec4 *theData) |
| Specifies the value of the float4 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const Standard_Integer *theData) |
| Specifies the value of the integer uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec2i *theData) |
| Specifies the value of the int2 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec3i *theData) |
| Specifies the value of the int3 uniform array. More...
|
|
Standard_Boolean | SetUniform (const Handle< OpenGl_Context > &theCtx, GLint theLocation, GLuint theCount, const OpenGl_Vec4i *theData) |
| Specifies the value of the int4 uniform array. More...
|
|
Standard_Boolean | SetSampler (const Handle< OpenGl_Context > &theCtx, const GLchar *theName, const Graphic3d_TextureUnit theTextureUnit) |
| Specifies the value of the sampler uniform variable. More...
|
|
Standard_Boolean | SetSampler (const Handle< OpenGl_Context > &theCtx, GLint theLocation, const Graphic3d_TextureUnit theTextureUnit) |
| Specifies the value of the sampler uniform variable. More...
|
|
| OpenGl_NamedResource (const TCollection_AsciiString &theId) |
| Empty constructor. More...
|
|
const TCollection_AsciiString & | ResourceId () const |
| Return resource name. More...
|
|
| OpenGl_Resource () |
| Empty constructor. More...
|
|
virtual | ~OpenGl_Resource () |
| Destructor. Inheritors should call Clean (NULL) within it. More...
|
|
Public Member Functions inherited from Standard_Transient |
| Standard_Transient () |
| Empty constructor. More...
|
|
| Standard_Transient (const Standard_Transient &) |
| Copy constructor – does nothing. More...
|
|
Standard_Transient & | operator= (const Standard_Transient &) |
| Assignment operator, needed to avoid copying reference counter. More...
|
|
virtual | ~Standard_Transient () |
| Destructor must be virtual. More...
|
|
virtual void | Delete () const |
| Memory deallocator for transient classes. More...
|
|
virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| Returns a type descriptor about this object. More...
|
|
Standard_Boolean | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| Returns a true value if this is an instance of Type. More...
|
|
Standard_Boolean | IsInstance (const Standard_CString theTypeName) const |
| Returns a true value if this is an instance of TypeName. More...
|
|
Standard_Boolean | IsKind (const opencascade::handle< Standard_Type > &theType) const |
| Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
|
|
Standard_Boolean | IsKind (const Standard_CString theTypeName) const |
| Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
|
|
Standard_Transient * | This () const |
| Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
|
|
Standard_Integer | GetRefCount () const |
| Get the reference counter of this object. More...
|
|
void | IncrementRefCounter () const |
| Increments the reference counter of this object. More...
|
|
Standard_Integer | DecrementRefCounter () const |
| Decrements the reference counter of this object; returns the decremented value. More...
|
|
Static Public Member Functions inherited from Standard_Transient |
static const char * | get_type_name () |
| Returns a type descriptor about this object. More...
|
|
static const opencascade::handle< Standard_Type > & | get_type_descriptor () |
| Returns type descriptor of Standard_Transient class. More...
|
|
static const GLuint | NO_PROGRAM = 0 |
| Non-valid shader name. More...
|
|
static const GLint | INVALID_LOCATION = -1 |
| Invalid location of uniform/attribute variable. More...
|
|
static Standard_CString | PredefinedKeywords [OpenGl_OCCT_NUMBER_OF_STATE_VARIABLES] |
| List of pre-defined OCCT state uniform variables. More...
|
|
GLuint | myProgramID |
| Handle of OpenGL shader program. More...
|
|
OpenGl_ShaderList | myShaderObjects |
| List of attached shader objects. More...
|
|
Handle< Graphic3d_ShaderProgram > | myProxy |
| Proxy shader program (from application layer) More...
|
|
Standard_Integer | myShareCount |
| program users count, initialized with 1 (already shared by one user) More...
|
|
Standard_Integer | myNbLightsMax |
| length of array of light sources (THE_MAX_LIGHTS) More...
|
|
Standard_Integer | myNbClipPlanesMax |
| length of array of clipping planes (THE_MAX_CLIP_PLANES) More...
|
|
Standard_Integer | myNbFragOutputs |
| length of array of Fragment Shader outputs (THE_NB_FRAG_OUTPUTS) More...
|
|
Standard_Boolean | myHasAlphaTest |
| flag indicating that Fragment Shader should perform alpha-test More...
|
|
Standard_Boolean | myHasWeightOitOutput |
| flag indicating that Fragment Shader includes weighted OIT coverage More...
|
|
Standard_Boolean | myHasTessShader |
| flag indicating that program defines tessellation stage More...
|
|
Standard_Size | myCurrentState [OpenGl_UniformStateType_NB] |
| defines last modification for variables of each state type More...
|
|
GLint | myStateLocations [OpenGl_OCCT_NUMBER_OF_STATE_VARIABLES] |
| Stores locations of OCCT state uniform variables. More...
|
|
TCollection_AsciiString | myResourceId |
| resource name More...
|
|
static OpenGl_VariableSetterSelector | mySetterSelector |
|