HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RV_PushConstants Class Reference

#include <RV_ShaderBlock.h>

+ Inheritance diagram for RV_PushConstants:

Public Member Functions

 RV_PushConstants (RV_Render *r)
 
 ~RV_PushConstants () override
 
bool upload (RV_Render *r)
 Write all bound values to the push constant memory. More...
 
bool isDirty () const
 Whether this block requires uploading to the GPU. More...
 
void forceDirty ()
 Force the block to be re-uploaded to the GPU, even if not dirtied. More...
 
bool fillBuffer (const void *data, int offset=0, int size=0)
 
- Public Member Functions inherited from RV_ShaderBindFuncs
bool bindUniform (const UT_StringRef &name, RV_UniformType type, const void *data, exint data_size, int array_index=0, int *opt_idx=nullptr)
 Set the value of the uniform 'name' with a block of memory. More...
 
bool bindInt (const UT_StringRef &name, int v, int array_index=0, int *opt_idx=nullptr)
 
bool bindFloat (const UT_StringRef &name, fpreal32 v, int array_index=0, int *opt_idx=nullptr)
 Bind a single float value. More...
 
bool bindDouble (const UT_StringRef &name, fpreal64 v, int array_index=0, int *opt_idx=nullptr)
 Bind a single double value. GPU must support native FP64 values. More...
 
bool bindUint64 (const UT_StringRef &name, uint64 v, int array_index=0, int *opt_idx=nullptr)
 
bool bindInts (const UT_StringRef &name, const int *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 Set values for a fixed-length integer array. More...
 
bool bindFloats (const UT_StringRef &name, const fpreal32 *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 Set values for a fixed-length float array. More...
 
bool bindDoubles (const UT_StringRef &name, const fpreal64 *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 Set values for a fixed-length double array. More...
 
bool bindUint64s (const UT_StringRef &name, const uint64 *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 Set values for a uint64 handle array. More...
 
bool bindIntVector3 (const UT_StringRef &name, const int *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 bind a series of ivec3s, using std140 packing (padded to ivec4) More...
 
bool bindVector3 (const UT_StringRef &name, const fpreal32 *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 bind a series of vec3s, using std140 packing (padded to ivec4) More...
 
bool bindDVector3 (const UT_StringRef &name, const fpreal64 *valarray, int array_size, int array_index=0, int *opt_idx=nullptr)
 bind a series of dvec3s, using std140 packing (padded to ivec4) More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector2F &v, int array_index=0, int *opt_idx=nullptr)
 Bind a single vec2 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector3F &v, int array_index=0, int *opt_idx=nullptr)
 Bind a single vec3 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector4F &v, int array_index=0, int *opt_idx=nullptr)
 Bind a single vec4 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector2D &v, int array_index=0, int *opt_idx=nullptr)
 Bind a single dvec2 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector3D &v, int array_index=0, int *opt_idx=nullptr)
 Set a single dvec3 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector4D &v, int array_index=0, int *opt_idx=nullptr)
 Set a single dvec4 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector2i &v, int array_index=0, int *opt_idx=nullptr)
 Bind a single ivec2 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector3i &v, int array_index=0, int *opt_idx=nullptr)
 Set a single ivec3 uniform value. More...
 
bool bindVector (const UT_StringRef &name, const UT_Vector4i &v, int array_index=0, int *opt_idx=nullptr)
 Set a single ivec4 uniform value. More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix2F &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 2x2 matrix value. More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix3F &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 3x3 matrix value. More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix4F &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 4x4 matrix value. More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix2D &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 2x2 matrix value (dmat2). More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix3D &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 3x3 matrix value (dmat3). More...
 
bool bindMatrix (const UT_StringRef &name, const UT_Matrix4D &m, int array_index=0, int *opt_idx=nullptr)
 Set a single 4x4 matrix value (dmat4). More...
 

Additional Inherited Members

- Protected Member Functions inherited from RV_ShaderBindFuncs
 RV_ShaderBindFuncs ()
 
virtual ~RV_ShaderBindFuncs ()
 

Detailed Description

Class Representing the Push Constants used by the pipeline Will be owned by directly by the RV_Render, and gets holds a ptr to the RV_Render owning it

Does not have its own layout, instead uses the layout of the shader bound to RV_Render at the time 'bind' is called

Definition at line 484 of file RV_ShaderBlock.h.

Constructor & Destructor Documentation

RV_PushConstants::RV_PushConstants ( RV_Render r)
RV_PushConstants::~RV_PushConstants ( )
override

Member Function Documentation

bool RV_PushConstants::fillBuffer ( const void data,
int  offset = 0,
int  size = 0 
)

Copy a bunch of bytes to the buffer. If size=0, it assumes the full buffer size (or remaining size if ofset!=-0)

void RV_PushConstants::forceDirty ( )
inline

Force the block to be re-uploaded to the GPU, even if not dirtied.

Definition at line 496 of file RV_ShaderBlock.h.

bool RV_PushConstants::isDirty ( ) const
inline

Whether this block requires uploading to the GPU.

Definition at line 494 of file RV_ShaderBlock.h.

bool RV_PushConstants::upload ( RV_Render r)

Write all bound values to the push constant memory.


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