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_TextureRoot Class Reference

    This is the texture root class enable the dialog with the GraphicDriver allows the loading of texture. More...

    #include <Graphic3d_TextureRoot.hxx>

    Inheritance diagram for Graphic3d_TextureRoot:

    Public Member Functions

     ~Graphic3d_TextureRoot () override
     Destructor.
    virtual bool IsDone () const
     Checks if a texture class is valid or not.
    const OSD_PathPath () const
     Returns the full path of the defined texture. It could be empty path if GetImage() is overridden to load image not from file.
    Graphic3d_TypeOfTexture Type () const
    const TCollection_AsciiStringGetId () const
     This ID will be used to manage resource in graphic driver.
    size_t Revision () const
     Return image revision.
    void UpdateRevision ()
     Update image revision. Can be used for signaling changes in the texture source (e.g. file update, pixmap update) without re-creating texture source itself (since unique id should be never modified).
    virtual occ::handle< Image_CompressedPixMapGetCompressedImage (const occ::handle< Image_SupportedFormats > &theSupported)
     This method will be called by graphic driver each time when texture resource should be created. It is called in front of GetImage() for uploading compressed image formats natively supported by GPU.
    virtual occ::handle< Image_PixMapGetImage (const occ::handle< Image_SupportedFormats > &theSupported)
     This method will be called by graphic driver each time when texture resource should be created. Default constructors allow defining the texture source as path to texture image or directly as pixmap. If the source is defined as path, then the image will be dynamically loaded when this method is called (and no copy will be preserved in this class instance). Inheritors may dynamically generate the image. Notice, image data should be in Bottom-Up order (see Image_PixMap::IsTopDown())!
    const occ::handle< Graphic3d_TextureParams > & GetParams () const
    bool IsColorMap () const
     Return flag indicating color nature of values within the texture; TRUE by default.
    void SetColorMap (bool theIsColor)
     Set flag indicating color nature of values within the texture.
    bool HasMipmaps () const
     Returns whether mipmaps should be generated or not.
    void SetMipmapsGeneration (bool theToGenerateMipmaps)
     Sets whether to generate mipmaps or not.
    bool IsTopDown () const
     Returns whether row's memory layout is top-down.
    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 TCollection_AsciiString TexturesFolder ()
     The path to textures determined from CSF_MDTVTexturesDirectory or CASROOT environment 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 Member Functions

     Graphic3d_TextureRoot (const TCollection_AsciiString &theFileName, const Graphic3d_TypeOfTexture theType)
     Creates a texture from a file Warning: Note that if <FileName> is NULL the texture must be realized using LoadTexture(image) method.
     Graphic3d_TextureRoot (const occ::handle< Image_PixMap > &thePixmap, const Graphic3d_TypeOfTexture theType)
     Creates a texture from pixmap. Please note that the implementation expects the image data to be in Bottom-Up order (see Image_PixMap::IsTopDown()).
    void generateId ()
     Unconditionally generate new texture id. Should be called only within constructor.
    virtual occ::handle< Image_PixMapGetImage () const
     Method for supporting old API; another GetImage() method should be implemented instead.

    Static Protected Member Functions

    static void convertToCompatible (const occ::handle< Image_SupportedFormats > &theSupported, const occ::handle< Image_PixMap > &theImage)
     Try converting image to compatible format.

    Protected Attributes

    occ::handle< Graphic3d_TextureParamsmyParams
     associated texture parameters
    TCollection_AsciiString myTexId
     unique identifier of this resource (for sharing graphic resource); should never be modified outside constructor
    occ::handle< Image_PixMapmyPixMap
     image pixmap - as one of the ways for defining the texture source
    OSD_Path myPath
     image file path - as one of the ways for defining the texture source
    size_t myRevision
     image revision - for signaling changes in the texture source (e.g. file update, pixmap update)
    Graphic3d_TypeOfTexture myType
     texture type
    bool myIsColorMap
     flag indicating color nature of values within the texture
    bool myIsTopDown
     Stores rows's memory layout.
    bool myHasMipmaps
     Indicates whether mipmaps should be generated or not.

    Additional Inherited Members

    typedef void base_type
     Returns a type descriptor about this object.

    Detailed Description

    This is the texture root class enable the dialog with the GraphicDriver allows the loading of texture.

    Constructor & Destructor Documentation

    ◆ ~Graphic3d_TextureRoot()

    Graphic3d_TextureRoot::~Graphic3d_TextureRoot ( )
    override

    Destructor.

    ◆ Graphic3d_TextureRoot() [1/2]

    Graphic3d_TextureRoot::Graphic3d_TextureRoot ( const TCollection_AsciiString & theFileName,
    const Graphic3d_TypeOfTexture theType )
    protected

    Creates a texture from a file Warning: Note that if <FileName> is NULL the texture must be realized using LoadTexture(image) method.

    ◆ Graphic3d_TextureRoot() [2/2]

    Graphic3d_TextureRoot::Graphic3d_TextureRoot ( const occ::handle< Image_PixMap > & thePixmap,
    const Graphic3d_TypeOfTexture theType )
    protected

    Creates a texture from pixmap. Please note that the implementation expects the image data to be in Bottom-Up order (see Image_PixMap::IsTopDown()).

    Member Function Documentation

    ◆ convertToCompatible()

    void Graphic3d_TextureRoot::convertToCompatible ( const occ::handle< Image_SupportedFormats > & theSupported,
    const occ::handle< Image_PixMap > & theImage )
    staticprotected

    Try converting image to compatible format.

    ◆ generateId()

    void Graphic3d_TextureRoot::generateId ( )
    protected

    Unconditionally generate new texture id. Should be called only within constructor.

    ◆ GetCompressedImage()

    virtual occ::handle< Image_CompressedPixMap > Graphic3d_TextureRoot::GetCompressedImage ( const occ::handle< Image_SupportedFormats > & theSupported)
    virtual

    This method will be called by graphic driver each time when texture resource should be created. It is called in front of GetImage() for uploading compressed image formats natively supported by GPU.

    Parameters
    [in]theSupportedthe list of supported compressed texture formats; returning image in unsupported format will result in texture upload failure
    Returns
    compressed pixmap or NULL if image is not in supported compressed format

    Reimplemented in XCAFPrs_Texture.

    ◆ GetId()

    const TCollection_AsciiString & Graphic3d_TextureRoot::GetId ( ) const
    inline

    This ID will be used to manage resource in graphic driver.

    Default implementation generates unique ID within constructor; inheritors may re-initialize it within their constructor, but should never modify it afterwards.

    Multiple Graphic3d_TextureRoot instances with same ID will be treated as single texture with different parameters to optimize memory usage though this will be more natural to use same instance of Graphic3d_TextureRoot when possible.

    If this ID is set to empty string by inheritor, then independent graphical resource will be created for each instance of Graphic3d_AspectFillArea3d where texture will be used.

    Returns
    texture identifier.

    ◆ GetImage() [1/2]

    virtual occ::handle< Image_PixMap > Graphic3d_TextureRoot::GetImage ( ) const
    inlineprotectedvirtual

    Method for supporting old API; another GetImage() method should be implemented instead.

    ◆ GetImage() [2/2]

    virtual occ::handle< Image_PixMap > Graphic3d_TextureRoot::GetImage ( const occ::handle< Image_SupportedFormats > & theSupported)
    virtual

    This method will be called by graphic driver each time when texture resource should be created. Default constructors allow defining the texture source as path to texture image or directly as pixmap. If the source is defined as path, then the image will be dynamically loaded when this method is called (and no copy will be preserved in this class instance). Inheritors may dynamically generate the image. Notice, image data should be in Bottom-Up order (see Image_PixMap::IsTopDown())!

    Returns
    the image for texture.

    Reimplemented in Graphic3d_CubeMapSeparate, Graphic3d_MediaTexture, Graphic3d_Texture3D, and XCAFPrs_Texture.

    ◆ GetParams()

    const occ::handle< Graphic3d_TextureParams > & Graphic3d_TextureRoot::GetParams ( ) const
    inline
    Returns
    low-level texture parameters

    ◆ HasMipmaps()

    bool Graphic3d_TextureRoot::HasMipmaps ( ) const
    inline

    Returns whether mipmaps should be generated or not.

    ◆ IsColorMap()

    bool Graphic3d_TextureRoot::IsColorMap ( ) const
    inline

    Return flag indicating color nature of values within the texture; TRUE by default.

    This flag will be used to interpret 8-bit per channel RGB(A) images as sRGB(A) textures with implicit linearizion of color components. Has no effect on images with floating point values (always considered linearized).

    When set to FALSE, such images will be interpreted as textures will be linear component values, which is useful for RGB(A) textures defining non-color properties (like Normalmap/Metalness/Roughness).

    ◆ IsDone()

    virtual bool Graphic3d_TextureRoot::IsDone ( ) const
    virtual

    Checks if a texture class is valid or not.

    Returns
    true if the construction of the class is correct

    Reimplemented in Graphic3d_CubeMapSeparate.

    ◆ IsTopDown()

    bool Graphic3d_TextureRoot::IsTopDown ( ) const
    inline

    Returns whether row's memory layout is top-down.

    ◆ Path()

    const OSD_Path & Graphic3d_TextureRoot::Path ( ) const
    inline

    Returns the full path of the defined texture. It could be empty path if GetImage() is overridden to load image not from file.

    ◆ Revision()

    size_t Graphic3d_TextureRoot::Revision ( ) const
    inline

    Return image revision.

    ◆ SetColorMap()

    void Graphic3d_TextureRoot::SetColorMap ( bool theIsColor)
    inline

    Set flag indicating color nature of values within the texture.

    ◆ SetMipmapsGeneration()

    void Graphic3d_TextureRoot::SetMipmapsGeneration ( bool theToGenerateMipmaps)
    inline

    Sets whether to generate mipmaps or not.

    ◆ TexturesFolder()

    TCollection_AsciiString Graphic3d_TextureRoot::TexturesFolder ( )
    static

    The path to textures determined from CSF_MDTVTexturesDirectory or CASROOT environment variables.

    Returns
    the root folder with default textures.

    ◆ Type()

    Graphic3d_TypeOfTexture Graphic3d_TextureRoot::Type ( ) const
    inline
    Returns
    the texture type.

    ◆ UpdateRevision()

    void Graphic3d_TextureRoot::UpdateRevision ( )
    inline

    Update image revision. Can be used for signaling changes in the texture source (e.g. file update, pixmap update) without re-creating texture source itself (since unique id should be never modified).

    Field Documentation

    ◆ myHasMipmaps

    bool Graphic3d_TextureRoot::myHasMipmaps
    protected

    Indicates whether mipmaps should be generated or not.

    ◆ myIsColorMap

    bool Graphic3d_TextureRoot::myIsColorMap
    protected

    flag indicating color nature of values within the texture

    ◆ myIsTopDown

    bool Graphic3d_TextureRoot::myIsTopDown
    protected

    Stores rows's memory layout.

    ◆ myParams

    occ::handle<Graphic3d_TextureParams> Graphic3d_TextureRoot::myParams
    protected

    associated texture parameters

    ◆ myPath

    OSD_Path Graphic3d_TextureRoot::myPath
    protected

    image file path - as one of the ways for defining the texture source

    ◆ myPixMap

    occ::handle<Image_PixMap> Graphic3d_TextureRoot::myPixMap
    protected

    image pixmap - as one of the ways for defining the texture source

    ◆ myRevision

    size_t Graphic3d_TextureRoot::myRevision
    protected

    image revision - for signaling changes in the texture source (e.g. file update, pixmap update)

    ◆ myTexId

    TCollection_AsciiString Graphic3d_TextureRoot::myTexId
    protected

    unique identifier of this resource (for sharing graphic resource); should never be modified outside constructor

    ◆ myType

    Graphic3d_TypeOfTexture Graphic3d_TextureRoot::myType
    protected

    texture type


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