139 struct rv_DrawSetInfo;
 
  140 struct rv_DrawInputInfo;
 
  142 struct rv_Connectivity;
 
  143 struct rv_InstanceGroup;
 
  180     exint gpuMemoryUsage() 
const;
 
  188     bool  setNumPoints(
exint num_points); 
 
  190     exint getNumPoints() 
const;
 
  194     void  setVertexBufferSize(
exint vert_buffer_elements);
 
  196     exint getVertexBufferSize() 
const;
 
  200     void  setPrimitiveBufferSize(
exint prim_buffer_elements);
 
  202     exint getPrimitiveBufferSize() 
const;
 
  213                          bool allow_gpu_write = 
false);
 
  224                          bool allow_gpu_write = 
false);
 
  260                                         int out_vec_size) 
const;
 
  274     void              stashAttributes();
 
  278     bool              unstashInstanceAttrib(
int group_index,
 
  292                                         int& out_vec_size) 
const;
 
  298                                         exint& out_len) 
const;
 
  314                                         int& out_vec_size) 
const;
 
  324                                         int instance_group = -1) 
const;
 
  331     bool createInstanceGroup(
int group_index);
 
  333     void removeInstanceGroup(
int group_index);
 
  335     bool hasInstanceGroup(
int group_index) 
const;
 
  337     int  getMaxInstanceGroup() 
const;
 
  340     void    setInstanceGroupCount(
int instance_group, 
int count);
 
  342     int     getInstanceGroupCount(
int instance_group) 
const;
 
  344     int     getInstanceGroupTransformCount(
int instance_group) 
const;
 
  347     void    setInstanceGroupForceFullDraw(
int instance_group, 
bool enable);
 
  349     bool    getInstanceGroupForceFullDraw(
int instance_group) 
const;
 
  352     void    setInstanceGroupIndexList(
int group_index,
 
  354                                       int max_capacity = -1);
 
  356     void     setInstanceGroupConstIndex(
int instance_group,
 
  357                                         int instance_to_draw);
 
  359     void     setInstanceGroupDrawEverything(
int instance_group);
 
  361     void     setInstanceGroupDrawNothing(
int instance_group);
 
  367     void setConstInstanceGroupTransform(
int instance_group,
 
  369                                         bool remove_instanced_xform);
 
  372     void copyConstInstanceGroupTransform(
int instance_group, 
int src_group);
 
  377     bool setInstanceGroupAttrib(
int instance_group,
 
  387     bool createSharedInstanceGroupAttrib(
int instance_group,
 
  397     bool assignSharedInstanceGroupAttrib(
int instance_group,
 
  402     bool freeInstanceGroupAttrib(
int instance_group,
 
  412                                  const char* 
name = 
nullptr);
 
  420                                  bool cpu_mapped = 
true,
 
  421                                  const char* 
name = 
nullptr);
 
  424     RV_Buffer *     getInstanceGroupAttrib(
int instance_group,
 
  429     bool            getInstanceAttribLength(
int instance_group,
 
  431                                         exint& out_len) 
const;
 
  434     bool            getInstanceAttribVersion(
int instance_group,
 
  438     void            setInstanceAttribVersion(
int instance_group,
 
  446     void        connectAllPrims(
int connect_index,
 
  450     void        connectSomePrims(
int connect_index,
 
  459     void         connectIndexedPrims(
int connect_index,
 
  462                                      bool need_prim_info = 
false,
 
  465     void        connectSomeVerts(
int connect_index,
 
  472     void        connectIndexedVerts(
int connect_index,
 
  475                                      bool need_prim_info = 
false,
 
  481     void        setConnectDivisor(
int connect_index, 
int divisor,
 
  486     void        setConnectUsePrimInfo(
int connect_index, 
int base_prim= 0);
 
  490     void setDrawModeOverride(
int connect_index,
 
  495     void resetDrawModeOverride(
int connect_index);
 
  502     int         getNumRenderPrims(
int connect_index) 
const;
 
  505     RV_PrimType getRenderPrimType(
int connect_index) 
const;
 
  508     int         getLength(
int connect_index) 
const;
 
  511     RV_Buffer *getIndexBuffer(
int connect_index) 
const;
 
  513     RV_Buffer *getPrimBuffer(
int connect_index) 
const;
 
  515     RV_Buffer *getPrimVertexBuffer(
int connect_index) 
const;
 
  518     bool       isVertexFrequency(
int connect_index) 
const;
 
  521     bool    hasConnectGroup(
int connect_index) 
const;
 
  523     bool    hasNonEmptyConnectGroup(
int connect_index) 
const;
 
  525     int     getMaxConnectGroup() 
const;
 
  528     bool    removeConnectedPrims(
int connect_index);
 
  530     void    resetConnectedPrims(); 
 
  556             exint draw_offset = -1, 
exint draw_size = -1);
 
  561     void drawInstanceGroup(
 
  566             exint draw_offset = -1, 
exint draw_size = -1);
 
  571             int connect_index_start,
 
  572             int num_connect_indexs,
 
  576     void drawInstanceGroupRange(
 
  603     static void cleanupResources();
 
  607     void updateAccelerationStructure(
 
  611             int surface_connect_index,
 
  632     rv_Connectivity* getConnect(
int group_idx, 
bool do_create);
 
  637                                            const char *base_name,
 
  640     int getTransformAttribCount(
const rv_Attribute* attr) 
const;
 
  647                                  int* out_idx = 
nullptr) 
const;
 
  656                               bool attr_owned = 
false,
 
  657                               bool allow_gpu_write = 
false);
 
  658     bool privFreeAttrib(
RV_Render* 
r, rv_Attribute &attr);
 
  666     bool       allocateConnectBuffers(
RV_Render* 
r, rv_Connectivity& 
c,
 
  668     bool       allocateInstIndexBuffer(
RV_Render* 
r, rv_InstanceGroup& 
g,
 
  679     bool privPrepareDraw(
 
  681             const rv_Connectivity *connect,
 
  682             int instance_group_idx,
 
  688             const rv_Connectivity *connect,
 
  689             int instance_group_idx,
 
  692             exint draw_offset = -1,
 
  693             exint draw_length = -1
 
  698         const rv_Connectivity *connect,
 
  699         int instance_group_idx,
 
  712     uint32_t myNumPoints = 0;
 
  713     uint32_t myVertBufferSize = 0;
 
  714     uint32_t myPrimBufferSize = 0;
 
  716     bool myAttributesValid = 
false;
 
  739     struct rv_DrawSetInfo
 
  743         int                 myConnectGroupIdx;
 
  744         int                 myInstanceGroupIdx;
 
  746         bool                myIsValid = 
false;
 
  754         int                 myInstTransformUniformIdx = -1;
 
  755         int                 myInstNestLevelUniformIdx = -1;
 
  769     DrawSetCache myDrawSet;
 
  773     rv_DrawSetInfo* getDrawSet(
 
  776         const rv_Connectivity *connect,
 
  777         int instance_group_idx,
 
  784         rv_DrawSetInfo& set_info,
 
  785         const rv_Connectivity *connect,
 
  786         int instance_group_idx,
 
  790     bool bindInputAttribute(
 
  793             const rv_Connectivity *connect,
 
  794             const rv_Attribute *attrib,
 
  820     bool        myIsAccelStructDirty = 
true;
 
  821     bool        myIsAccelStructInstDirty = 
true;
 
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set) 
 
GLsizei GLenum const void * indices
 
VkFlags VkBufferUsageFlags
 
VkPrimitiveTopology RVgetVkPrimType(RV_PrimType t)
 
UT_UniquePtr< RV_VKBuffer > RV_VKBufferPtr
 
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
 
GLuint GLsizei GLsizei * length
 
RV_GPUType RVconvertFromGPUType(UT_GPUType t)
 
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects. 
 
#define UT_ASSERT_MSG(ZZ,...)
 
GLint GLint GLsizei GLint GLenum GLenum type
 
UT_UniquePtr< RV_VKAccelerationStructure > RV_VKAccelerationStructurePtr
 
static const UT_Matrix4T< fpreal32 > & getIdentityMatrix()
 
GLint GLenum GLboolean GLsizei stride
 
GLuint const GLchar * name
 
GLint GLenum GLboolean normalized
 
Handle to the main interface of Vulkan. 
 
UT_GPUType RVconvertToUTGPUType(RV_GPUType t)
 
GLsizeiptr const void GLenum usage
 
UT_UniquePtr< rv_InstanceGroup > rv_InstanceGroupPtr
 
void dirtyAccelerationStructure()
 
GR_API RE_GPUType getAttributeType(RE_Render *r, const char *attrib_name, int &vsize, const GT_DataArrayHandle &pa, const GR_DisplayOption &opts, RE_ArrayType array_type)
 
const UT_StringHolder & getName() const 
Get name used for debugging. 
 
Simple class for a mutli-integer cache tag. 
 
UT_UniquePtr< RV_Buffer > RV_BufferPtr
 
void setName(const UT_StringHolder &name)
Set name used for debugging. 
 
FMT_INLINE void print(format_string< T...> fmt, T &&...args)