Open CASCADE Technology
7.5.0
|
Class implements OpenGL sampler object resource that stores the sampling parameters for a texture access. More...
#include <OpenGl_Sampler.hxx>
Public Member Functions | |
OpenGl_Sampler (const Handle< Graphic3d_TextureParams > &theParams) | |
Creates new sampler object. More... | |
virtual | ~OpenGl_Sampler () |
Releases resources of sampler object. More... | |
virtual void | Release (OpenGl_Context *theContext) override |
Destroys object - will release GPU memory if any. More... | |
virtual Standard_Size | EstimatedDataSize () const override |
Returns estimated GPU memory usage - not implemented. More... | |
Standard_Boolean | Create (const Handle< OpenGl_Context > &theContext) |
Creates an uninitialized sampler object. More... | |
Standard_Boolean | Init (const Handle< OpenGl_Context > &theContext, const OpenGl_Texture &theTexture) |
Creates and initializes sampler object. Existing object will be reused if possible, however if existing Sampler Object has Immutable flag and texture parameters should be re-initialized, then Sampler Object will be recreated. More... | |
Standard_Boolean | IsValid () const |
Returns true if current object was initialized. More... | |
void | Bind (const Handle< OpenGl_Context > &theCtx) |
Binds sampler object to texture unit specified in parameters. More... | |
void | Unbind (const Handle< OpenGl_Context > &theCtx) |
Unbinds sampler object from texture unit specified in parameters. More... | |
void | Bind (const Handle< OpenGl_Context > &theCtx, const Graphic3d_TextureUnit theUnit) |
Binds sampler object to the given texture unit. More... | |
void | Unbind (const Handle< OpenGl_Context > &theCtx, const Graphic3d_TextureUnit theUnit) |
Unbinds sampler object from the given texture unit. More... | |
void | SetParameter (const Handle< OpenGl_Context > &theCtx, GLenum theTarget, GLenum theParam, GLint theValue) |
Sets specific sampler parameter. More... | |
GLuint | SamplerID () const |
Returns OpenGL sampler ID. More... | |
bool | IsImmutable () const |
Return immutable flag preventing further modifications of sampler parameters, FALSE by default. Immutable flag might be set when Sampler Object is used within Bindless Texture. More... | |
void | SetImmutable () |
Setup immutable flag. It is not possible unsetting this flag without Sampler destruction. More... | |
const Handle< Graphic3d_TextureParams > & | Parameters () |
Returns texture parameters. More... | |
void | SetParameters (const Handle< Graphic3d_TextureParams > &theParams) |
Sets texture parameters. More... | |
bool | ToUpdateParameters () const |
Returns texture parameters initialization state. More... | |
Public Member Functions inherited from OpenGl_Resource | |
OpenGl_Resource () | |
Empty constructor. More... | |
virtual | ~OpenGl_Resource () |
Destructor. Inheritors should call Clean (NULL) within it. More... | |
virtual void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const |
Dumps the content of me into the stream. 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 Attributes | |
static const GLuint | NO_SAMPLER = 0 |
Helpful constant defining invalid sampler identifier. More... | |
Protected Member Functions | |
Standard_Boolean | isValidSampler () const |
Checks if sampler object is valid. More... | |
Static Protected Member Functions | |
static void | setParameter (const Handle< OpenGl_Context > &theContext, OpenGl_Sampler *theSampler, GLenum theTarget, GLenum theParam, GLint theValue) |
Sets specific sampler parameter. More... | |
static void | applySamplerParams (const Handle< OpenGl_Context > &theCtx, const Handle< Graphic3d_TextureParams > &theParams, OpenGl_Sampler *theSampler, const GLenum theTarget, const Standard_Integer theMaxMipLevel) |
Apply sampler parameters. More... | |
static void | applyGlobalTextureParams (const Handle< OpenGl_Context > &theCtx, const OpenGl_Texture &theTexture, const Handle< Graphic3d_TextureParams > &theParams) |
Apply global texture state for deprecated OpenGL functionality. More... | |
static void | resetGlobalTextureParams (const Handle< OpenGl_Context > &theCtx, const OpenGl_Texture &theTexture, const Handle< Graphic3d_TextureParams > &theParams) |
Reset global texture state for deprecated OpenGL functionality. More... | |
Protected Attributes | |
Handle< Graphic3d_TextureParams > | myParams |
texture parameters More... | |
unsigned int | mySamplerRevision |
modification counter of parameters related to sampler state More... | |
GLuint | mySamplerID |
OpenGL sampler object ID. More... | |
bool | myIsImmutable |
immutable flag preventing further modifications of sampler parameters, FALSE by default More... | |
Additional Inherited Members | |
Public Types inherited from Standard_Transient | |
typedef void | base_type |
Returns a type descriptor about this object. 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... | |
Class implements OpenGL sampler object resource that stores the sampling parameters for a texture access.
OpenGl_Sampler::OpenGl_Sampler | ( | const Handle< Graphic3d_TextureParams > & | theParams | ) |
Creates new sampler object.
|
virtual |
Releases resources of sampler object.
|
staticprotected |
Apply global texture state for deprecated OpenGL functionality.
|
staticprotected |
Apply sampler parameters.
theCtx | [in] active OpenGL context |
theParams | [in] texture parameters to apply |
theSampler | [in] apply parameters to Texture object (NULL) or to specified Sampler object (non-NULL, sampler is not required to be bound) |
theTarget | [in] OpenGL texture target |
theMaxMipLevel | [in] maximum mipmap level defined within the texture |
|
inline |
Binds sampler object to texture unit specified in parameters.
void OpenGl_Sampler::Bind | ( | const Handle< OpenGl_Context > & | theCtx, |
const Graphic3d_TextureUnit | theUnit | ||
) |
Binds sampler object to the given texture unit.
Standard_Boolean OpenGl_Sampler::Create | ( | const Handle< OpenGl_Context > & | theContext | ) |
Creates an uninitialized sampler object.
|
inlineoverridevirtual |
Returns estimated GPU memory usage - not implemented.
Implements OpenGl_Resource.
Standard_Boolean OpenGl_Sampler::Init | ( | const Handle< OpenGl_Context > & | theContext, |
const OpenGl_Texture & | theTexture | ||
) |
Creates and initializes sampler object. Existing object will be reused if possible, however if existing Sampler Object has Immutable flag and texture parameters should be re-initialized, then Sampler Object will be recreated.
|
inline |
Return immutable flag preventing further modifications of sampler parameters, FALSE by default. Immutable flag might be set when Sampler Object is used within Bindless Texture.
|
inline |
Returns true if current object was initialized.
|
inlineprotected |
Checks if sampler object is valid.
|
inline |
Returns texture parameters.
|
overridevirtual |
Destroys object - will release GPU memory if any.
Implements OpenGl_Resource.
|
staticprotected |
Reset global texture state for deprecated OpenGL functionality.
|
inline |
Returns OpenGL sampler ID.
|
inline |
Setup immutable flag. It is not possible unsetting this flag without Sampler destruction.
|
inline |
Sets specific sampler parameter.
|
staticprotected |
Sets specific sampler parameter.
void OpenGl_Sampler::SetParameters | ( | const Handle< Graphic3d_TextureParams > & | theParams | ) |
Sets texture parameters.
|
inline |
Returns texture parameters initialization state.
|
inline |
Unbinds sampler object from texture unit specified in parameters.
void OpenGl_Sampler::Unbind | ( | const Handle< OpenGl_Context > & | theCtx, |
const Graphic3d_TextureUnit | theUnit | ||
) |
Unbinds sampler object from the given texture unit.
|
protected |
immutable flag preventing further modifications of sampler parameters, FALSE by default
|
protected |
texture parameters
|
protected |
OpenGL sampler object ID.
|
protected |
modification counter of parameters related to sampler state
|
static |
Helpful constant defining invalid sampler identifier.