Open CASCADE Technology 7.8.0
Data Structures | Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes
Graphic3d_ShaderObject Class Reference

Forward declaration. More...

#include <Graphic3d_ShaderObject.hxx>

Inheritance diagram for Graphic3d_ShaderObject:
Inheritance graph
[legend]

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.
 
- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 

Public Member Functions

virtual ~Graphic3d_ShaderObject ()
 Releases resources of shader object.
 
virtual Standard_Boolean 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 ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
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.
 
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.
 
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.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static Handle< Graphic3d_ShaderObjectCreateFromFile (const Graphic3d_TypeOfShaderObject theType, const TCollection_AsciiString &thePath)
 Creates new shader object from specified file.
 
static Handle< Graphic3d_ShaderObjectCreateFromSource (const Graphic3d_TypeOfShaderObject theType, const TCollection_AsciiString &theSource)
 Creates new shader object from specified source.
 
static Handle< Graphic3d_ShaderObjectCreateFromSource (TCollection_AsciiString &theSource, Graphic3d_TypeOfShaderObject theType, const ShaderVariableList &theUniforms, const ShaderVariableList &theStageInOuts, const TCollection_AsciiString &theInName=TCollection_AsciiString(), const TCollection_AsciiString &theOutName=TCollection_AsciiString(), Standard_Integer 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 Public Member Functions inherited from Standard_Transient
static constexpr const charget_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

List of variable of shader program.

Constructor & Destructor Documentation

◆ ~Graphic3d_ShaderObject()

virtual Graphic3d_ShaderObject::~Graphic3d_ShaderObject ( )
virtual

Releases resources of shader object.

Member Function Documentation

◆ CreateFromFile()

static 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]

static 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]

static Handle< Graphic3d_ShaderObject > Graphic3d_ShaderObject::CreateFromSource ( TCollection_AsciiString theSource,
Graphic3d_TypeOfShaderObject  theType,
const ShaderVariableList theUniforms,
const ShaderVariableList theStageInOuts,
const TCollection_AsciiString theInName = TCollection_AsciiString(),
const TCollection_AsciiString theOutName = TCollection_AsciiString(),
Standard_Integer  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 Standard_Boolean 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: