|
| | Graphic3d_ShaderProgram () |
| | Creates new empty program object.
|
| |
| | ~Graphic3d_ShaderProgram () override |
| | Releases resources of program object.
|
| |
| virtual bool | IsDone () const |
| | Checks if the program object is valid or not.
|
| |
| const TCollection_AsciiString & | GetId () const |
| | Returns unique ID used to manage resource in graphic driver.
|
| |
| void | SetId (const TCollection_AsciiString &theId) |
| | Sets unique ID used to manage resource in graphic driver. WARNING! Graphic3d_ShaderProgram constructor generates a unique id for proper resource management; however if application overrides it, it is responsibility of application to avoid name collisions.
|
| |
| const TCollection_AsciiString & | Header () const |
| | Returns GLSL header (version code and extensions).
|
| |
| void | SetHeader (const TCollection_AsciiString &theHeader) |
| | Setup GLSL header containing language version code and used extensions. Will be prepended to the very beginning of the source code. Example:
|
| |
| void | AppendToHeader (const TCollection_AsciiString &theHeaderLine) |
| | Append line to GLSL header.
|
| |
| int | NbLightsMax () const |
| | Return the length of array of light sources (THE_MAX_LIGHTS), to be used for initialization occLightSources. Default value is THE_MAX_LIGHTS_DEFAULT.
|
| |
| void | SetNbLightsMax (int theNbLights) |
| | Specify the length of array of light sources (THE_MAX_LIGHTS).
|
| |
| int | NbShadowMaps () const |
| | Return the length of array of shadow maps (THE_NB_SHADOWMAPS); 0 by default.
|
| |
| void | SetNbShadowMaps (int theNbMaps) |
| | Specify the length of array of shadow maps (THE_NB_SHADOWMAPS).
|
| |
| int | NbClipPlanesMax () const |
| | Return the length of array of clipping planes (THE_MAX_CLIP_PLANES), to be used for initialization occClipPlaneEquations. Default value is THE_MAX_CLIP_PLANES_DEFAULT.
|
| |
| void | SetNbClipPlanesMax (int theNbPlanes) |
| | Specify the length of array of clipping planes (THE_MAX_CLIP_PLANES).
|
| |
| bool | AttachShader (const occ::handle< Graphic3d_ShaderObject > &theShader) |
| | Attaches shader object to the program object.
|
| |
| bool | DetachShader (const occ::handle< Graphic3d_ShaderObject > &theShader) |
| | Detaches shader object from the program object.
|
| |
| const NCollection_Sequence< occ::handle< Graphic3d_ShaderObject > > & | ShaderObjects () const |
| | Returns list of attached shader objects.
|
| |
| const NCollection_Sequence< occ::handle< Graphic3d_ShaderVariable > > & | Variables () const |
| | The list of currently pushed but not applied custom uniform variables. This list is automatically cleared after applying to GLSL program.
|
| |
| const NCollection_Sequence< occ::handle< Graphic3d_ShaderAttribute > > & | VertexAttributes () const |
| | Return the list of custom vertex attributes.
|
| |
| void | SetVertexAttributes (const NCollection_Sequence< occ::handle< Graphic3d_ShaderAttribute > > &theAttributes) |
| | Assign the list of custom vertex attributes. Should be done before GLSL program initialization.
|
| |
| int | NbFragmentOutputs () const |
| | Returns the number (1+) of Fragment Shader outputs to be written to (more than 1 can be in case of multiple draw buffers); 1 by default.
|
| |
| void | SetNbFragmentOutputs (const int theNbOutputs) |
| | Sets the number of Fragment Shader outputs to be written to. Should be done before GLSL program initialization.
|
| |
| bool | HasAlphaTest () const |
| | Return true if Fragment Shader should perform alpha test; FALSE by default.
|
| |
| void | SetAlphaTest (bool theAlphaTest) |
| | Set if Fragment Shader should perform alpha test. Note that this flag is designed for usage with - custom shader program may discard fragment regardless this flag.
|
| |
| bool | HasDefaultSampler () const |
| | Return TRUE if standard program header should define default texture sampler occSampler0; TRUE by default for compatibility.
|
| |
| void | SetDefaultSampler (bool theHasDefSampler) |
| | Set if standard program header should define default texture sampler occSampler0.
|
| |
| Graphic3d_RenderTransparentMethod | OitOutput () const |
| | Return if Fragment Shader color should output to OIT buffers; OFF by default.
|
| |
| void | SetOitOutput (Graphic3d_RenderTransparentMethod theOutput) |
| | Set if Fragment Shader color should output to OIT buffers. Note that weighted OIT also requires at least 2 Fragment Outputs (color + coverage), and Depth Peeling requires at least 3 Fragment Outputs (depth + front color + back color),.
|
| |
| bool | IsPBR () const |
| | Return TRUE if standard program header should define functions and variables used in PBR pipeline. FALSE by default.
|
| |
| void | SetPBR (bool theIsPBR) |
| | Sets whether standard program header should define functions and variables used in PBR pipeline.
|
| |
| int | TextureSetBits () const |
| | Return texture units declared within the program,.
|
| |
| void | SetTextureSetBits (int theBits) |
| | Set texture units declared within the program.
|
| |
| template<class T > |
| bool | PushVariable (const TCollection_AsciiString &theName, const T &theValue) |
| | Pushes custom uniform variable to the program. The list of pushed variables is automatically cleared after applying to GLSL program. Thus after program recreation even unchanged uniforms should be pushed anew.
|
| |
| void | ClearVariables () |
| | Removes all custom uniform variables from the program.
|
| |
| bool | PushVariableFloat (const TCollection_AsciiString &theName, const float theValue) |
| | Pushes float uniform.
|
| |
| bool | PushVariableVec2 (const TCollection_AsciiString &theName, const NCollection_Vec2< float > &theValue) |
| | Pushes vec2 uniform.
|
| |
| bool | PushVariableVec3 (const TCollection_AsciiString &theName, const NCollection_Vec3< float > &theValue) |
| | Pushes vec3 uniform.
|
| |
| bool | PushVariableVec4 (const TCollection_AsciiString &theName, const NCollection_Vec4< float > &theValue) |
| | Pushes vec4 uniform.
|
| |
| bool | PushVariableInt (const TCollection_AsciiString &theName, const int theValue) |
| | Pushes int uniform.
|
| |
| bool | PushVariableVec2i (const TCollection_AsciiString &theName, const NCollection_Vec2< int > &theValue) |
| | Pushes vec2i uniform.
|
| |
| bool | PushVariableVec3i (const TCollection_AsciiString &theName, const NCollection_Vec3< int > &theValue) |
| | Pushes vec3i uniform.
|
| |
| bool | PushVariableVec4i (const TCollection_AsciiString &theName, const NCollection_Vec4< int > &theValue) |
| | Pushes vec4i uniform.
|
| |
| bool | PushVariableMat3 (const TCollection_AsciiString &theName, const NCollection_Mat3< float > &theValue) |
| | Pushes mat3 uniform.
|
| |
| bool | PushVariableMat4 (const TCollection_AsciiString &theName, const NCollection_Mat4< float > &theValue) |
| | Pushes mat4 uniform.
|
| |
Public Member Functions inherited from Standard_Transient |
| | Standard_Transient () |
| | Empty constructor.
|
| |
| | Standard_Transient (const Standard_Transient &) |
| | Copy constructor – does nothing.
|
| |
| Standard_Transient & | operator= (const Standard_Transient &) |
| | Assignment operator, needed to avoid copying reference counter.
|
| |
| virtual | ~Standard_Transient ()=default |
| | Destructor must be virtual.
|
| |
| virtual const opencascade::handle< Standard_Type > & | DynamicType () const |
| | Returns a type descriptor about this object.
|
| |
| bool | IsInstance (const opencascade::handle< Standard_Type > &theType) const |
| | Returns a true value if this is an instance of Type.
|
| |
| bool | IsInstance (const char *const theTypeName) const |
| | Returns a true value if this is an instance of TypeName.
|
| |
| bool | 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.
|
| |
| bool | IsKind (const char *const 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.
|
| |
| 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.
|
| |
| int | GetRefCount () const noexcept |
| | Get the reference counter of this object.
|
| |
| void | IncrementRefCounter () noexcept |
| | Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
|
| |
| int | DecrementRefCounter () noexcept |
| | Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
|
| |
| virtual void | Delete () const |
| | Memory deallocator for transient classes.
|
| |
List of shader objects.
List of custom uniform shader variables. List of custom vertex shader attributes This class is responsible for managing shader programs.