13 #ifndef GR_GeoRenderVK_h
14 #define GR_GeoRenderVK_h
42 class gr_AttribInfoVK;
77 return myGeometryVk.get();
81 PrimitiveType prim_type,
84 int &out_connect_start,
85 int &out_connect_num) {}
95 bool need_prim_vert_info,
101 bool *has_detail_prim_id,
103 int *num_bone_deform);
113 bool need_prim_vert_info,
136 const char *attrib_name,
147 const char *attrib_name,
151 bool fill_immediately);
156 const char *attrib_name,
282 int entries()
const {
return myAttribs.entries(); }
284 bool hasBounds()
const {
return myHasPosBounds || myHasDetailBounds; }
291 if (myHasDetailBounds)
293 return myDetailBounds;
300 void append(
const char *
name,
309 int instance_group = -1);
314 {
return myFillAmount; }
316 { myFillAmount +=
n; }
319 const void *fillConstAttribute(gr_AttribInfoVK *attrib)
const;
320 const void *fillRegularAttribute(gr_AttribInfoVK *attrib)
const;
321 const void *fillPointAttribute(gr_AttribInfoVK *attrib)
const;
322 const void *fillPointIDAttribute(gr_AttribInfoVK *attrib)
const;
323 const void *fillPrimIDAttribute(gr_AttribInfoVK *attrib)
const;
324 const void *fillStringAttribute(gr_AttribInfoVK *attrib)
const;
325 const void *fillMaterialAttribute(gr_AttribInfoVK *attrib)
const;
326 const void *fillTangentAttribute(gr_AttribInfoVK *attrib)
const;
327 const void *fillBoneAttributes(gr_AttribInfoVK *attrib)
const;
329 void createNormalAttribute(gr_AttribInfoVK *attrib)
const;
338 void computeDetailBounds();
339 bool myHasDetailBounds;
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
UT_UniquePtr< RV_VKImage > myColorOverrideRampBuffer
void addToFillAmount(int n)
virtual void getVkDecorGeometry(GR_DecorationRender::PrimitiveType prim_type, RV_PrimType render_prim, RV_Geometry &geo, int &out_connect_start, int &out_connect_num)
A collection of vertex arrays defining a geometry object. This class acts as a wrapper around multipl...
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
GR_API bool createOrReuseSet(RV_Render *r, UT_UniquePtr< RV_ShaderVariableSet > &set, int set_num, const RV_ShaderProgramBase *shader, bool *created=nullptr, const char *name=nullptr)
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
set of parameters sent to GR_Primitive::update()
UT_Array< UT_UniquePtr< RV_ShaderVariableSet > > mySets
const UT_BoundingBox getBounds() const
UT_IntrusivePtr< GT_DataArray > GT_DataArrayHandle
UT_BoundingBoxT< float > UT_BoundingBox
UT_UniquePtr< RV_ShaderBlock > myColorOverrideBlock
GR_API GR_SelectMode buildSelection(UT_Array< uint8 > &selected, const GR_UpdateParms &p, GT_DataArrayHandle prim_id, GT_DataArrayHandle pnt_id, GT_DataArrayHandle vert_id, bool is_offset, int repeat_count)
GLuint const GLchar * name
The base class for all GT primitive types.
RE_Geometry * getGeometry() override
GLfloat GLfloat GLfloat GLfloat h
UT_UniquePtr< GR_FillAttributesVK > GR_FillAttributesVKPtr
UT_UniquePtr< RV_ShaderBlock > myTransformBlock
Simple class for a mutli-integer cache tag.
UT_UniquePtr< RV_Geometry > myGeometryVk
RV_Geometry * getVkGeometry() override