HDK
|
#include <RV_ShaderBlock.h>
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 array_range=1, 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 () |
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 504 of file RV_ShaderBlock.h.
RV_PushConstants::RV_PushConstants | ( | RV_Render * | r | ) |
|
override |
Copy a bunch of bytes to the buffer. If size=0, it assumes the full buffer size (or remaining size if ofset!=-0)
|
inline |
Force the block to be re-uploaded to the GPU, even if not dirtied.
Definition at line 516 of file RV_ShaderBlock.h.
|
inline |
Whether this block requires uploading to the GPU.
Definition at line 514 of file RV_ShaderBlock.h.
bool RV_PushConstants::upload | ( | RV_Render * | r | ) |
Write all bound values to the push constant memory.