11 #ifndef GR_PolySurfaceVK_h
12 #define GR_PolySurfaceVK_h
37 const char *
className()
const override {
return "GR_PolySurfaceVK"; }
41 int &out_connect_start,
42 int &out_connect_num)
override;
48 int &out_connect_start,
49 int &out_connect_num)
override;
68 {
return myHasAlpha || myHasBlendedMaterial; }
73 void enableBackfaceCulling(
RV_Render*
r,
bool do_cull)
const;
78 myUseParentTransparencyFlags =
true;
79 myParentTransparencySort = sort_enabled;
103 {
return std::move(mySubDGeometry); }
105 {
return mySubDGeometry.get(); }
114 void clearTransparencySortGPU();
130 bool &out_flattened);
145 void buildWireframeConnectivity(
150 bool target_vert =
false);
156 void buildUVBoundaryConnectivity(
210 int myMaterialID = 0;
211 bool myHasTangents =
false;
212 bool myWindingOrder =
false;
213 bool myAutoGenNormal =
false;
214 bool myIsFlattened =
false;
215 bool myHasCd =
false;
216 bool myHasAlpha =
false;
217 bool myHasBlendedMaterial =
false;
218 bool myTransparencySort =
false;
219 bool myUseParentTransparencyFlags =
false;
220 bool myParentTransparencySort =
false;
221 bool myHasNormalOffsets =
false;
222 bool myRanDisplacement =
false;
223 int myNumBlendShapes = 0;
224 int myNumBoneTransforms = 0;
226 int64 myTopVersion = -1;
227 int64 myPointVer = -1;
232 gr_SetCache myBoneBlendSet;
235 bool myIsMatXMaterial =
false;
251 exint myTransparencySortPrimitiveCount = 0;
void setTransparencyFlags(bool sort_enabled)
const char * className() const override
virtual void draw(RE_RenderContext r, GR_RenderMode mode, GR_RenderFlags flags, GR_DrawParms draw_parms)=0
Normal drawing method. Only issue rendering commands.
const GT_PrimitiveHandle & getMesh() const
static bool initShaders(RV_Instance *inst)
GT_API const UT_StringHolder cache_name
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
GLboolean GLboolean GLboolean GLboolean a
RV_Geometry * getSubDGeometry() const
bool hasReverseWinding() const
Temporary container for either a RV_Render and an RE_Render.
virtual RV_Geometry * getVkPickGeometry(unsigned int pick_mode)
virtual exint getNumGLPrimitives() const =0
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()
bool needsViewUpdate() const
bool hasAutoGenNormals() const
UT_UniquePtr< RV_Geometry > takeSubDGeometry()
virtual void getVkDecorConnectGroup(RV_PrimType render_prim, bool is_uv_view, int &out_connect_start, int &out_connect_num)
virtual void updateAccelerationStructure(RV_Render *r, int tag, int light_id, const UT_Matrix4F &obj_mat)
Handle to the main interface of Vulkan.
bool supportsRayTrace() const override
const GT_PrimitiveHandle & getConvexedMesh() const
virtual void retireGeometry()
virtual void getPickConnectGroup(unsigned int pick_mode, GR_PickGeometry pick_geo, int &out_connect_start, int &out_connect_num)
GA_API const UT_StringHolder parms
bool hasTransparency() const override
returns true if this drawable renders some transparent elements
An array of numeric values (int32, int64, fpreal16, fpreal32, fpreal64)
Simple class for a mutli-integer cache tag.
virtual void update(RE_RenderContext r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const char *cache_name)=0
virtual RV_VKAccelerationStructure * getAccelerationStructure()
static void cleanupShaders()
virtual void viewUpdate(RE_RenderContext r, const GR_DisplayOption &opts, const char *cache_name, RE_CacheVersion geo_version, RE_CacheVersion select_version)