OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    Graphic3d_ShaderObject Class Reference

    Forward declaration. More...

    #include <Graphic3d_ShaderObject.hxx>

    Inheritance diagram for Graphic3d_ShaderObject:

    Data Structures

    struct  ShaderVariable
     Structure defining shader uniform or in/out variable. More...

    Public Types

    typedef NCollection_Sequence< ShaderVariableShaderVariableList
     List of variable of shader program.
    typedef void base_type
     Returns a type descriptor about this object.

    Public Member Functions

     ~Graphic3d_ShaderObject () override
     Releases resources of shader object.
    virtual bool IsDone () const
     Checks if the shader object is valid or not.
    const OSD_PathPath () const
     Returns the full path to the shader source.
    const TCollection_AsciiStringSource () const
     Returns the source code of the shader object.
    Graphic3d_TypeOfShaderObject Type () const
     Returns type of the shader object.
    const TCollection_AsciiStringGetId () const
     Returns unique ID used to manage resource in graphic driver.
    Public Member Functions inherited from Standard_Transient
     Standard_Transient ()
     Empty constructor.
     Standard_Transient (const Standard_Transient &)
     Copy constructor – does nothing.
    Standard_Transientoperator= (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_TransientThis () 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.

    Static Public Member Functions

    static occ::handle< Graphic3d_ShaderObjectCreateFromFile (const Graphic3d_TypeOfShaderObject theType, const TCollection_AsciiString &thePath)
     Creates new shader object from specified file.
    static occ::handle< Graphic3d_ShaderObjectCreateFromSource (const Graphic3d_TypeOfShaderObject theType, const TCollection_AsciiString &theSource)
     Creates new shader object from specified source.
    static occ::handle< Graphic3d_ShaderObjectCreateFromSource (TCollection_AsciiString &theSource, Graphic3d_TypeOfShaderObject theType, const ShaderVariableList &theUniforms, const ShaderVariableList &theStageInOuts, const TCollection_AsciiString &theInName=TCollection_AsciiString::EmptyString(), const TCollection_AsciiString &theOutName=TCollection_AsciiString::EmptyString(), int theNbGeomInputVerts=0)
     This is a preprocessor for Graphic3d_ShaderObject::CreateFromSource() function. Creates a new shader object from specified source according to list of uniforms and in/out variables.
    static constexpr const char * get_type_name ()
     Returns a type descriptor about this object.
    static const opencascade::handle< Standard_Type > & get_type_descriptor ()
     Returns type descriptor of Standard_Transient class.

    Protected Attributes

    TCollection_AsciiString myID
     the ID of shader object
    TCollection_AsciiString mySource
     the source code of shader object
    OSD_Path myPath
     the path to shader source (may be empty)

    Detailed Description

    Forward declaration.

    This class is responsible for managing shader objects.

    Member Typedef Documentation

    ◆ ShaderVariableList

    Constructor & Destructor Documentation

    ◆ ~Graphic3d_ShaderObject()

    Graphic3d_ShaderObject::~Graphic3d_ShaderObject ( )
    override

    Releases resources of shader object.

    Member Function Documentation

    ◆ CreateFromFile()

    occ::handle< Graphic3d_ShaderObject > Graphic3d_ShaderObject::CreateFromFile ( const Graphic3d_TypeOfShaderObject theType,
    const TCollection_AsciiString & thePath )
    static

    Creates new shader object from specified file.

    ◆ CreateFromSource() [1/2]

    occ::handle< Graphic3d_ShaderObject > Graphic3d_ShaderObject::CreateFromSource ( const Graphic3d_TypeOfShaderObject theType,
    const TCollection_AsciiString & theSource )
    static

    Creates new shader object from specified source.

    ◆ CreateFromSource() [2/2]

    occ::handle< Graphic3d_ShaderObject > Graphic3d_ShaderObject::CreateFromSource ( TCollection_AsciiString & theSource,
    Graphic3d_TypeOfShaderObject theType,
    const ShaderVariableList & theUniforms,
    const ShaderVariableList & theStageInOuts,
    const TCollection_AsciiString & theInName = TCollection_AsciiString::EmptyString(),
    const TCollection_AsciiString & theOutName = TCollection_AsciiString::EmptyString(),
    int theNbGeomInputVerts = 0 )
    static

    This is a preprocessor for Graphic3d_ShaderObject::CreateFromSource() function. Creates a new shader object from specified source according to list of uniforms and in/out variables.

    Parameters
    theSourceshader object source code to modify
    theTypeshader object type to create
    theUniformslist of uniform variables
    theStageInOutslist of stage in/out variables
    theInNamename of input variables block; can be empty for accessing each variable without block prefix (mandatory for stages accessing both inputs and outputs)
    theOutNamename of output variables block; can be empty for accessing each variable without block prefix (mandatory for stages accessing both inputs and outputs)
    theNbGeomInputVertsnumber of geometry shader input vertexes

    ◆ GetId()

    const TCollection_AsciiString & Graphic3d_ShaderObject::GetId ( ) const
    inline

    Returns unique ID used to manage resource in graphic driver.

    ◆ IsDone()

    virtual bool Graphic3d_ShaderObject::IsDone ( ) const
    virtual

    Checks if the shader object is valid or not.

    ◆ Path()

    const OSD_Path & Graphic3d_ShaderObject::Path ( ) const
    inline

    Returns the full path to the shader source.

    ◆ Source()

    const TCollection_AsciiString & Graphic3d_ShaderObject::Source ( ) const
    inline

    Returns the source code of the shader object.

    ◆ Type()

    Graphic3d_TypeOfShaderObject Graphic3d_ShaderObject::Type ( ) const
    inline

    Returns type of the shader object.

    Field Documentation

    ◆ myID

    TCollection_AsciiString Graphic3d_ShaderObject::myID
    protected

    the ID of shader object

    ◆ myPath

    OSD_Path Graphic3d_ShaderObject::myPath
    protected

    the path to shader source (may be empty)

    ◆ mySource

    TCollection_AsciiString Graphic3d_ShaderObject::mySource
    protected

    the source code of shader object


    The documentation for this class was generated from the following file: