Castor3D  ..
Public Member Functions | Static Public Member Functions | Protected Types | List of all members
Castor3D::OneFrameVariable< T > Class Template Reference

Single shader variable with variable type. More...

+ Inheritance diagram for Castor3D::OneFrameVariable< T >:
+ Collaboration diagram for Castor3D::OneFrameVariable< T >:

Public Member Functions

 OneFrameVariable (ShaderProgram *p_program)
 Constructor. More...
 
 OneFrameVariable (ShaderProgram *p_program, uint32_t p_occurences)
 Constructor. More...
 
 OneFrameVariable (OneFrameVariable< T > const &p_object)
 Copy constructor. More...
 
 OneFrameVariable (OneFrameVariable< T > &&p_object)
 Move constructor. More...
 
OneFrameVariableoperator= (OneFrameVariable< T > const &p_object)
 Copy assignment operator. More...
 
OneFrameVariableoperator= (OneFrameVariable< T > &&p_object)
 Move assignment operator. More...
 
virtual ~OneFrameVariable ()
 Destructor. More...
 
T & GetValue ()
 Retrieves the value. More...
 
T const & GetValue () const
 Retrieves the value. More...
 
T & GetValue (uint32_t p_index)
 Retrieves the value at given index. More...
 
T const & GetValue (uint32_t p_index) const
 Retrieves the value at given index. More...
 
void SetValue (T const &p_value)
 Defines the value of the variable. More...
 
void SetValue (T const &p_value, uint32_t p_index)
 Defines the value of the variable. More...
 
void SetValues (T const *p_values, size_t p_size)
 Defines the values of the variable. More...
 
template<size_t N>
void SetValues (T const (&p_values)[N])
 Defines the values of the variable. More...
 
template<size_t N>
void SetValues (std::array< T, N > const &p_values)
 Defines the values of the variable. More...
 
void SetValues (std::vector< T > const &p_values)
 Defines the values of the variable. More...
 
virtual uint32_t size () const
 Retrieves the byte size of the variable. More...
 
T & operator[] (uint32_t p_index)
 Array subscript operator. More...
 
T const & operator[] (uint32_t p_index) const
 Array subscript operator. More...
 
eVARIABLE_TYPE GetType () const
 Retrieves the variable type. More...
 
eFRAME_VARIABLE_TYPE GetFullType () const
 Retrieves the variable full type. More...
 
Castor::String GetFullTypeName () const
 Gives the variable full type name. More...
 
- Public Member Functions inherited from Castor3D::TFrameVariable< T >
 TFrameVariable (ShaderProgram *p_program)
 Constructor. More...
 
 TFrameVariable (ShaderProgram *p_program, uint32_t p_occurences)
 Constructor. More...
 
 TFrameVariable (TFrameVariable< T > const &p_object)
 Copy constructor. More...
 
 TFrameVariable (TFrameVariable< T > &&p_object)
 Move constructor. More...
 
TFrameVariableoperator= (TFrameVariable< T > const &p_object)
 Copy assignment operator. More...
 
TFrameVariableoperator= (TFrameVariable< T > &&p_object)
 Move assignment operator. More...
 
virtual ~TFrameVariable ()
 Destructor. More...
 
Castor::String GetDataTypeName () const
 Gives the variable data type. More...
 
virtual uint8_t const *const const_ptr () const
 Retrieves a pointer to the variable data. More...
 
virtual void link (uint8_t *p_buffer)
 Defines the buffer holding the frame variable. More...
 
- Public Member Functions inherited from Castor3D::FrameVariable
C3D_API FrameVariable (ShaderProgram *p_program)
 Constructor. More...
 
C3D_API FrameVariable (ShaderProgram *p_program, uint32_t p_occurences)
 Constructor. More...
 
C3D_API FrameVariable (FrameVariable const &p_object)
 Copy constructor. More...
 
C3D_API FrameVariable (FrameVariable &&p_object)
 Move constructor. More...
 
C3D_API FrameVariableoperator= (FrameVariable const &p_object)
 Copy assignment operator. More...
 
C3D_API FrameVariableoperator= (FrameVariable &&p_object)
 Move assignment operator. More...
 
virtual C3D_API ~FrameVariable ()
 Destructor. More...
 
virtual C3D_API bool Initialise ()=0
 Initialises the variable. More...
 
virtual C3D_API void Cleanup ()=0
 Cleans up the variable. More...
 
virtual C3D_API void Bind ()=0
 Binds this variable to the shader. More...
 
virtual C3D_API void Unbind ()=0
 Unbinds this variable from the shader. More...
 
virtual C3D_API void SetValueStr (Castor::String const &p_value)
 Defines the value of the variable, from a string. More...
 
virtual C3D_API void SetValueStr (Castor::String const &p_value, uint32_t p_index)
 Defines the value of the variable, from a string. More...
 
virtual void SetName (Castor::String const &p_name)
 Defines the name of the variable, as it appears in the shader program. More...
 
Castor::String GetName () const
 Gives the name of the variable, as it appears in the shader program. More...
 
Castor::String GetStrValue () const
 Retrieves the variable string value. More...
 
Castor::String GetStrValue (uint32_t p_index) const
 Retrieves the variable string value at given index. More...
 
const uint32_t & GetOccCount () const
 Retrieves the occurences count. More...
 
ShaderProgramGetProgram () const
 Retrieves the parent program. More...
 

Static Public Member Functions

static eFRAME_VARIABLE_TYPE GetFrameVariableType ()
 Gives the variable full type. More...
 
static Castor::String GetFrameVariableTypeName ()
 Gives the variable full type. More...
 
static eVARIABLE_TYPE GetVariableType ()
 Gives the full type of the variable. More...
 

Protected Types

typedef Castor::Policy< T > policy
 
- Protected Types inherited from Castor3D::TFrameVariable< T >
typedef Castor::Policy< T > policy
 

Additional Inherited Members

- Protected Member Functions inherited from Castor3D::TFrameVariable< T >
void DoCleanupBuffer ()
 
- Protected Attributes inherited from Castor3D::TFrameVariable< T >
bool m_bOwnBuffer
 Tells the variable owns it's buffer. More...
 
T * m_values
 The buffer containing all values. More...
 
- Protected Attributes inherited from Castor3D::FrameVariable
Castor::String m_name
 The variable name as it appears in the shader program. More...
 
bool m_changed
 Tells if the variable has changed since last execution of the shader. More...
 
uint32_t m_occurences
 The array dimension if the variable represents an array. More...
 
Castor::StringArray m_strValue
 The value of the variable. More...
 
ShaderProgramm_program
 The parent shader program. More...
 

Detailed Description

template<typename T>
class Castor3D::OneFrameVariable< T >

Single shader variable with variable type.

Author
Sylvain DOREMUS
Version
0.6.1.0
Date
14/08/2010

Member Typedef Documentation

◆ policy

template<typename T>
typedef Castor::Policy<T> Castor3D::OneFrameVariable< T >::policy
protected

Constructor & Destructor Documentation

◆ OneFrameVariable() [1/4]

template<typename T>
Castor3D::OneFrameVariable< T >::OneFrameVariable ( ShaderProgram p_program)

Constructor.

Parameters
[in]p_programThe program

◆ OneFrameVariable() [2/4]

template<typename T>
Castor3D::OneFrameVariable< T >::OneFrameVariable ( ShaderProgram p_program,
uint32_t  p_occurences 
)

Constructor.

Parameters
[in]p_programThe program
[in]p_occurencesThe array dimension

◆ OneFrameVariable() [3/4]

template<typename T>
Castor3D::OneFrameVariable< T >::OneFrameVariable ( OneFrameVariable< T > const &  p_object)

Copy constructor.

Parameters
[in]p_objectThe object to copy

◆ OneFrameVariable() [4/4]

template<typename T>
Castor3D::OneFrameVariable< T >::OneFrameVariable ( OneFrameVariable< T > &&  p_object)

Move constructor.

Parameters
[in]p_objectThe object to move

◆ ~OneFrameVariable()

template<typename T>
virtual Castor3D::OneFrameVariable< T >::~OneFrameVariable ( )
virtual

Destructor.

Member Function Documentation

◆ GetFrameVariableType()

template<typename T>
static eFRAME_VARIABLE_TYPE Castor3D::OneFrameVariable< T >::GetFrameVariableType ( )
inlinestatic

Gives the variable full type.

Returns
The type

Donne le type complet de la variable

Returns
Le type

Referenced by Castor3D::OneFrameVariable< T >::GetFullType().

+ Here is the caller graph for this function:

◆ GetFrameVariableTypeName()

template<typename T>
static Castor::String Castor3D::OneFrameVariable< T >::GetFrameVariableTypeName ( )
inlinestatic

Gives the variable full type.

Returns
The type

Donne le type complet de la variable

Returns
Le type

Referenced by Castor3D::OneFrameVariable< T >::GetFullTypeName().

+ Here is the caller graph for this function:

◆ GetFullType()

template<typename T>
eFRAME_VARIABLE_TYPE Castor3D::OneFrameVariable< T >::GetFullType ( ) const
inlinevirtual

Retrieves the variable full type.

Returns
The type

Implements Castor3D::FrameVariable.

References Castor3D::OneFrameVariable< T >::GetFrameVariableType().

+ Here is the call graph for this function:

◆ GetFullTypeName()

template<typename T>
Castor::String Castor3D::OneFrameVariable< T >::GetFullTypeName ( ) const
inlinevirtual

Gives the variable full type name.

Returns
The type

Donne le nom du type complet de la variable

Returns
Le type

Implements Castor3D::FrameVariable.

References Castor3D::OneFrameVariable< T >::GetFrameVariableTypeName().

+ Here is the call graph for this function:

◆ GetType()

template<typename T>
eVARIABLE_TYPE Castor3D::OneFrameVariable< T >::GetType ( ) const
inlinevirtual

Retrieves the variable type.

Returns
The variable type

Implements Castor3D::FrameVariable.

References Castor3D::OneFrameVariable< T >::GetVariableType().

+ Here is the call graph for this function:

◆ GetValue() [1/4]

template<typename T>
T& Castor3D::OneFrameVariable< T >::GetValue ( )
inline

Retrieves the value.

Returns
A reference to the value

◆ GetValue() [2/4]

template<typename T>
T const& Castor3D::OneFrameVariable< T >::GetValue ( ) const
inline

Retrieves the value.

Returns
A constant reference to the value

◆ GetValue() [3/4]

template<typename T>
T& Castor3D::OneFrameVariable< T >::GetValue ( uint32_t  p_index)
inline

Retrieves the value at given index.

Remarks
Check the index bounds
Parameters
[in]p_indexThe index
Returns
A reference to the value at given index

◆ GetValue() [4/4]

template<typename T>
T const& Castor3D::OneFrameVariable< T >::GetValue ( uint32_t  p_index) const
inline

Retrieves the value at given index.

Remarks
Check the index bounds
Parameters
[in]p_indexThe index
Returns
A constant reference to the value at given index

◆ GetVariableType()

template<typename T>
static eVARIABLE_TYPE Castor3D::OneFrameVariable< T >::GetVariableType ( )
inlinestatic

Gives the full type of the variable.

Returns
The type of the variable

References Castor3D::eVARIABLE_TYPE_ONE.

Referenced by Castor3D::OneFrameVariable< T >::GetType().

+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<typename T>
OneFrameVariable& Castor3D::OneFrameVariable< T >::operator= ( OneFrameVariable< T > const &  p_object)

Copy assignment operator.

Parameters
[in]p_objectThe object to copy
Returns
A reference to this object

◆ operator=() [2/2]

template<typename T>
OneFrameVariable& Castor3D::OneFrameVariable< T >::operator= ( OneFrameVariable< T > &&  p_object)

Move assignment operator.

Parameters
[in]p_objectThe object to move
Returns
A reference to this object

◆ operator[]() [1/2]

template<typename T>
T& Castor3D::OneFrameVariable< T >::operator[] ( uint32_t  p_index)
inline

Array subscript operator.

Remarks
Doesn't check the index bounds
Parameters
[in]p_indexThe index
Returns
A reference to the value at given index

References Castor3D::TFrameVariable< T >::m_values.

◆ operator[]() [2/2]

template<typename T>
T const& Castor3D::OneFrameVariable< T >::operator[] ( uint32_t  p_index) const
inline

Array subscript operator.

Remarks
Doesn't check the index bounds
Parameters
[in]p_indexThe index
Returns
A constant reference to the value at given index

References Castor3D::TFrameVariable< T >::m_values.

◆ SetValue() [1/2]

template<typename T>
void Castor3D::OneFrameVariable< T >::SetValue ( T const &  p_value)
inline

Defines the value of the variable.

Parameters
[in]p_valueThe new value

◆ SetValue() [2/2]

template<typename T>
void Castor3D::OneFrameVariable< T >::SetValue ( T const &  p_value,
uint32_t  p_index 
)
inline

Defines the value of the variable.

Parameters
[in]p_valueThe new value
[in]p_indexThe index of the value

◆ SetValues() [1/4]

template<typename T>
void Castor3D::OneFrameVariable< T >::SetValues ( T const *  p_values,
size_t  p_size 
)
inline

Defines the values of the variable.

Parameters
[in]p_valuesThe values buffer.
[in]p_sizeThe values count.

Referenced by Castor3D::OneFrameVariable< T >::SetValues().

+ Here is the caller graph for this function:

◆ SetValues() [2/4]

template<typename T>
template<size_t N>
void Castor3D::OneFrameVariable< T >::SetValues ( T const (&)  p_values[N])
inline

Defines the values of the variable.

Parameters
[in]p_valuesThe values buffer.

References Castor3D::OneFrameVariable< T >::SetValues().

+ Here is the call graph for this function:

◆ SetValues() [3/4]

template<typename T>
template<size_t N>
void Castor3D::OneFrameVariable< T >::SetValues ( std::array< T, N > const &  p_values)
inline

Defines the values of the variable.

Parameters
[in]p_valuesThe values buffer.

References Castor3D::OneFrameVariable< T >::SetValues().

+ Here is the call graph for this function:

◆ SetValues() [4/4]

template<typename T>
void Castor3D::OneFrameVariable< T >::SetValues ( std::vector< T > const &  p_values)
inline

Defines the values of the variable.

Parameters
[in]p_valuesThe values buffer.

References Castor3D::OneFrameVariable< T >::SetValues().

+ Here is the call graph for this function:

◆ size()

template<typename T>
virtual uint32_t Castor3D::OneFrameVariable< T >::size ( ) const
virtual

Retrieves the byte size of the variable.

Returns
The size

Implements Castor3D::FrameVariable.


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