VTK
9.3.20241003
|
helper class to set custom uniform variables in GLSL shaders. More...
#include <vtkOpenGLUniforms.h>
Public Types | |
typedef vtkUniforms | Superclass |
Public Types inherited from vtkUniforms | |
enum | TupleType { TupleTypeInvalid = 0 , TupleTypeScalar , TupleTypeVector , TupleTypeMatrix , NumberOfTupleTypes } |
Types of tuples that can be stored : scalar, vector, matrix. More... | |
typedef vtkObject | Superclass |
Public Member Functions | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkOpenGLUniforms * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
std::string | GetDeclarations () |
Build a string containing the GLSL declaration of all stored uniform variables. | |
bool | SetUniforms (vtkShaderProgram *p) |
Set all the stored uniform variables values in the shader program p . | |
vtkMTimeType | GetUniformListMTime () override |
Get modified time of the list of uniform variables, which is typically used to check whether the shader needs to be recompiled. | |
void | RemoveUniform (const char *name) override |
Remove uniform variable named name . | |
void | RemoveAllUniforms () override |
Remove all uniform variables. | |
int | GetNumberOfUniforms () override |
Get number of all uniforms stored in this class. | |
const char * | GetNthUniformName (vtkIdType uniformIndex) override |
Get number of all uniforms stored in this class. | |
int | GetUniformScalarType (const char *name) override |
Get type of scalars stored in uniform name . | |
TupleType | GetUniformTupleType (const char *name) override |
Get the tuple type stored in uniform name . | |
int | GetUniformNumberOfComponents (const char *name) override |
Get the number of components stored in each tuple of uniform name . | |
int | GetUniformNumberOfTuples (const char *name) override |
Get length of a uniform name that contains a variable-size vector. | |
void | SetUniform (const char *name, vtkUniforms::TupleType tt, int nbComponents, const std::vector< int > &value) override |
Generic setters and getter. | |
void | SetUniform (const char *name, vtkUniforms::TupleType tt, int nbComponents, const std::vector< float > &value) override |
Generic setters and getter. | |
bool | GetUniform (const char *name, std::vector< int > &value) override |
Generic setters and getter. | |
bool | GetUniform (const char *name, std::vector< float > &value) override |
Generic setters and getter. | |
void | SetUniformi (const char *name, int v) override |
Set the name uniform value to v . | |
void | SetUniformf (const char *name, float v) override |
Set the name uniform value to v . | |
void | SetUniform2i (const char *name, const int v[2]) override |
Set the name uniform value to v . | |
void | SetUniform2f (const char *name, const float v[2]) override |
Set the name uniform value to v . | |
void | SetUniform3f (const char *name, const float v[3]) override |
Set the name uniform value to v . | |
void | SetUniform4f (const char *name, const float v[4]) override |
Set the name uniform value to v . | |
void | SetUniformMatrix3x3 (const char *name, float *v) override |
Set the name uniform value to v . | |
void | SetUniformMatrix4x4 (const char *name, float *v) override |
Set the name uniform value to v . | |
void | SetUniform1iv (const char *name, int count, const int *f) override |
Set the name uniform array to f with count elements. | |
void | SetUniform1fv (const char *name, int count, const float *f) override |
Set the name uniform array to f with count elements. | |
void | SetUniform2fv (const char *name, int count, const float(*f)[2]) override |
Set the name uniform array to f with count elements. | |
void | SetUniform3fv (const char *name, int count, const float(*f)[3]) override |
Set the name uniform array to f with count elements. | |
void | SetUniform4fv (const char *name, int count, const float(*f)[4]) override |
Set the name uniform array to f with count elements. | |
void | SetUniformMatrix4x4v (const char *name, int count, float *v) override |
Set the name uniform array to f with count elements. | |
void | SetUniform3f (const char *name, const double v[3]) override |
Set the name uniform to v . | |
void | SetUniform3uc (const char *name, const unsigned char v[3]) override |
Set the name uniform to v . | |
void | SetUniform4uc (const char *name, const unsigned char v[4]) override |
Set the name uniform to v . | |
void | SetUniformMatrix (const char *name, vtkMatrix3x3 *v) override |
Set the name uniform to v . | |
void | SetUniformMatrix (const char *name, vtkMatrix4x4 *v) override |
Set the name uniform to v . | |
bool | GetUniformi (const char *name, int &v) override |
Get the name uniform value. | |
bool | GetUniformf (const char *name, float &v) override |
Get the name uniform value. | |
bool | GetUniform2i (const char *name, int v[2]) override |
Get the name uniform value. | |
bool | GetUniform2f (const char *name, float v[2]) override |
Get the name uniform value. | |
bool | GetUniform3f (const char *name, float v[3]) override |
Get the name uniform value. | |
bool | GetUniform4f (const char *name, float v[4]) override |
Get the name uniform value. | |
bool | GetUniformMatrix3x3 (const char *name, float *v) override |
Get the name uniform value. | |
bool | GetUniformMatrix4x4 (const char *name, float *v) override |
Get the name uniform value. | |
bool | GetUniform3f (const char *name, double v[3]) override |
Get the name uniform to v . | |
bool | GetUniform3uc (const char *name, unsigned char v[3]) override |
Get the name uniform to v . | |
bool | GetUniform4uc (const char *name, unsigned char v[4]) override |
Get the name uniform to v . | |
bool | GetUniformMatrix (const char *name, vtkMatrix3x3 *v) override |
Get the name uniform to v . | |
bool | GetUniformMatrix (const char *name, vtkMatrix4x4 *v) override |
Get the name uniform to v . | |
bool | GetUniform1iv (const char *name, std::vector< int > &f) override |
Get the name uniform vector to f with. | |
bool | GetUniform1fv (const char *name, std::vector< float > &f) override |
Get the name uniform vector to f with. | |
bool | GetUniform2fv (const char *name, std::vector< float > &f) override |
Get the name uniform vector to f with. | |
bool | GetUniform3fv (const char *name, std::vector< float > &f) override |
Get the name uniform vector to f with. | |
bool | GetUniform4fv (const char *name, std::vector< float > &f) override |
Get the name uniform vector to f with. | |
bool | GetUniformMatrix4x4v (const char *name, std::vector< float > &f) override |
Get the name uniform vector to f with. | |
Public Member Functions inherited from vtkUniforms | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkUniforms * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
virtual vtkMTimeType | GetUniformListMTime ()=0 |
virtual void | RemoveUniform (const char *name)=0 |
Remove uniform variable named name . | |
virtual void | RemoveAllUniforms ()=0 |
Remove all uniform variables. | |
virtual int | GetNumberOfUniforms ()=0 |
Get number of all uniforms stored in this class. | |
virtual const char * | GetNthUniformName (vtkIdType uniformIndex)=0 |
Get number of all uniforms stored in this class. | |
virtual int | GetUniformScalarType (const char *name)=0 |
Get type of scalars stored in uniform name . | |
virtual TupleType | GetUniformTupleType (const char *name)=0 |
Get the tuple type stored in uniform name . | |
virtual int | GetUniformNumberOfComponents (const char *name)=0 |
Get the number of components stored in each tuple of uniform name . | |
virtual int | GetUniformNumberOfTuples (const char *name)=0 |
Number of tuples of uniform name that contains a variable-size vector. | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. | |
virtual void | DebugOff () |
Turn debugging output off. | |
bool | GetDebug () |
Get the value of the debug flag. | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. | |
virtual void | Modified () |
Update the modification time for this object. | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
vtkTypeBool | HasObserver (unsigned long event) |
vtkTypeBool | HasObserver (const char *event) |
vtkTypeBool | InvokeEvent (unsigned long event) |
vtkTypeBool | InvokeEvent (const char *event) |
std::string | GetObjectDescription () const override |
The object description printed in messages and PrintSelf output. | |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Overloads to AddObserver that allow developers to add class member functions as callbacks for events. | |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
Allow user to set the AbortFlagOn() with the return value of the callback method. | |
vtkTypeBool | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
vtkTypeBool | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
virtual void | SetObjectName (const std::string &objectName) |
Set/get the name of this object for reporting purposes. | |
virtual std::string | GetObjectName () const |
Set/get the name of this object for reporting purposes. | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. | |
virtual std::string | GetObjectDescription () const |
The object description printed in messages and PrintSelf output. | |
virtual vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name) |
Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
virtual void | Delete () |
Delete a VTK object. | |
virtual void | FastDelete () |
Delete a reference to this object. | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. | |
void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). | |
int | GetReferenceCount () |
Return the current reference count of this object. | |
void | SetReferenceCount (int) |
Sets the reference count. | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual bool | UsesGarbageCollector () const |
Indicate whether the class uses vtkGarbageCollector or not. | |
Static Public Member Functions | |
static vtkOpenGLUniforms * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkOpenGLUniforms * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkUniforms | |
static vtkUniforms * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkUniforms * | SafeDownCast (vtkObjectBase *o) |
static std::string | TupleTypeToString (TupleType tt) |
Convert between TupleType and string. | |
static TupleType | StringToTupleType (const std::string &s) |
static std::string | ScalarTypeToString (int scalarType) |
Convert between scalar types an string. | |
static int | StringToScalarType (const std::string &s) |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. | |
static void | SetGlobalWarningDisplay (vtkTypeBool val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static vtkTypeBool | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. | |
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name) |
Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. | |
static bool | GetUsingMemkind () |
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkOpenGLUniforms () | |
~vtkOpenGLUniforms () override | |
Protected Member Functions inherited from vtkUniforms | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkUniforms ()=default | |
~vtkUniforms () override=default | |
Protected Member Functions inherited from vtkObject | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | ObjectFinalize () |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Additional Inherited Members | |
Static Protected Member Functions inherited from vtkObjectBase | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
std::string | ObjectName |
Protected Attributes inherited from vtkObjectBase | |
std::atomic< int32_t > | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
helper class to set custom uniform variables in GLSL shaders.
This class implements all SetUniform* functions supported by vtkShaderProgram but instead of directly calling the underlying OpenGL functions, it caches the name and value of the variable and provides a mechanism for client mappers to set all cached variables at once in a generic way.
The basic types of GLSL uniform variables supported by the class are the following: int, float, vec2i, vec3, vec4, mat3, mat4, int[], float[], vec2i[], vec3[], vec4[], mat4[]. All other types supported by Set* functions undergo the same type conversions implemented in vtkShaderProgram.
Definition at line 34 of file vtkOpenGLUniforms.h.
Definition at line 38 of file vtkOpenGLUniforms.h.
|
protected |
|
overrideprotected |
|
static |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class.
Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkUniforms.
|
static |
|
protectedvirtual |
Reimplemented from vtkUniforms.
vtkOpenGLUniforms * vtkOpenGLUniforms::NewInstance | ( | ) | const |
|
overridevirtual |
std::string vtkOpenGLUniforms::GetDeclarations | ( | ) |
Build a string containing the GLSL declaration of all stored uniform variables.
This is typically called by mappers to compose the complete shader program.
bool vtkOpenGLUniforms::SetUniforms | ( | vtkShaderProgram * | p | ) |
Set all the stored uniform variables values in the shader program p
.
This is called when the shader is bound.
|
overridevirtual |
Get modified time of the list of uniform variables, which is typically used to check whether the shader needs to be recompiled.
The time stamp is not affected by the modification of the value of an existing variable as then no shader recompilation is needed.
Implements vtkUniforms.
|
overridevirtual |
Remove uniform variable named name
.
Implements vtkUniforms.
|
overridevirtual |
Remove all uniform variables.
Implements vtkUniforms.
|
overridevirtual |
Generic setters and getter.
Set and Get the value of uniform variable name
, with TupleType tt
, number of components nbComponents
and values stored in value
. These functions simplify io of uniforms
Implements vtkUniforms.
|
overridevirtual |
Generic setters and getter.
Set and Get the value of uniform variable name
, with TupleType tt
, number of components nbComponents
and values stored in value
. These functions simplify io of uniforms
Implements vtkUniforms.
|
overridevirtual |
Generic setters and getter.
Set and Get the value of uniform variable name
, with TupleType tt
, number of components nbComponents
and values stored in value
. These functions simplify io of uniforms
Implements vtkUniforms.
|
overridevirtual |
Generic setters and getter.
Set and Get the value of uniform variable name
, with TupleType tt
, number of components nbComponents
and values stored in value
. These functions simplify io of uniforms
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform value to v
.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform array to f
with count
elements.
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted to match one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted to match one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted to match one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted to match one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Set the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted to match one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
Get the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted from one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted from one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted from one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted from one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform to v
.
The following are convenience functions and do not reflect the way the data is stored and sent to OpenGL. Data is converted from one of the basic supported types
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get the name
uniform vector to f
with.
Implements vtkUniforms.
|
overridevirtual |
Get number of all uniforms stored in this class.
Implements vtkUniforms.
|
overridevirtual |
Get number of all uniforms stored in this class.
Valid range is between 0 and GetNumberOfUniforms() - 1.
Implements vtkUniforms.
|
overridevirtual |
Get type of scalars stored in uniform name
.
Implements vtkUniforms.
|
overridevirtual |
Get the tuple type stored in uniform name
.
This can be a scalar, a vector of a matrix.
Implements vtkUniforms.
|
overridevirtual |
Get the number of components stored in each tuple of uniform name
.
for example, a uniform with tuples of matrix type and 9 components contains 3x3 matrices
Implements vtkUniforms.
|
overridevirtual |
Get length of a uniform name
that contains a variable-size vector.
Size includes number of tuples. For example, 3fv returns 3 x number of triplets.
Implements vtkUniforms.