13 #ifndef GR_GeoRenderVK_h
14 #define GR_GeoRenderVK_h
43 class gr_AttribInfoVK;
78 return myGeometryVk.get();
82 PrimitiveType prim_type,
85 int &out_connect_start,
86 int &out_connect_num) {}
96 bool need_prim_vert_info,
102 bool *has_detail_prim_id,
104 int *num_bone_deform);
114 bool need_prim_vert_info,
138 const char *attrib_name,
149 const char *attrib_name,
153 bool fill_immediately);
158 const char *attrib_name,
188 bool allow_color_override,
195 bool allow_color_override,
299 int entries()
const {
return myAttribs.entries(); }
301 bool hasBounds()
const {
return myHasPosBounds || myHasDetailBounds; }
308 if (myHasDetailBounds)
310 return myDetailBounds;
317 void append(
const char *
name,
326 int instance_group = -1);
331 {
return myFillAmount; }
333 { myFillAmount +=
n; }
336 void setFallbacks(
const UT_Options *fallbacks);
354 const void *fillConstAttribute(gr_AttribInfoVK *attrib)
const;
355 const void *fillRegularAttribute(gr_AttribInfoVK *attrib)
const;
356 const void *fillPointAttribute(gr_AttribInfoVK *attrib)
const;
357 const void *fillPointIDAttribute(gr_AttribInfoVK *attrib)
const;
358 const void *fillPrimIDAttribute(gr_AttribInfoVK *attrib)
const;
359 const void *fillStringAttribute(gr_AttribInfoVK *attrib)
const;
360 const void *fillMaterialAttribute(gr_AttribInfoVK *attrib)
const;
361 const void *fillTangentAttribute(gr_AttribInfoVK *attrib)
const;
362 const void *fillBoneAttributes(gr_AttribInfoVK *attrib)
const;
364 void createNormalAttribute(gr_AttribInfoVK *attrib)
const;
373 void computeDetailBounds();
374 bool myHasDetailBounds;
384 bool myUsedFallback =
false;
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
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
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
A map of string to various well defined value types.
UT_UniquePtr< GR_FillAttributesVK > GR_FillAttributesVKPtr
UT_UniquePtr< RV_ShaderBlock > myTransformBlock
void setUsedFallback(bool used)
bool usedFallback() const
Simple class for a mutli-integer cache tag.
UT_UniquePtr< RV_Geometry > myGeometryVk
RV_Geometry * getVkGeometry() override