11 #ifndef GR_PolySurfaceGL3_h
12 #define GR_PolySurfaceGL3_h
22 #define USE_SHADER_ATLAS 1
28 bool needs_convexing =
false);
31 const char *
className()
const override {
return "GR_PolySurfaceGL3"; }
39 bool isConvexed()
const override {
return (myConvexFlag &&
40 !myMultiMaterialFlag); }
66 bool getGeometryHasColor()
const;
73 bool has_color_attrib,
75 bool needs_displacement,
78 bool has_prim_transforms,
91 {
return myMatGroups.getNumGroups(); }
102 bool &vertex_promote)
override;
112 bool convexed)
override;
130 bool use_displacement);
139 bool use_displacement);
145 int &uv_override_idx,
148 void clearCachedDrawData();
155 #ifdef USE_SHADER_ATLAS
156 static void initShaders();
158 static void initShaders();
161 static bool theShadersAreRegistered;
163 bool myPrimSelectionInit;
164 bool myVertexSelectionInit;
171 int myNumBoneTransforms;
172 int myNumBlendTargetShapes;
174 unsigned myHasCd : 1,
180 myConsolidatedMesh:1,
183 bool myMultiMaterialFlag;
184 bool myLastShowSelections;
185 bool myHasPrimTransform;
186 bool myHasPrimVisibility;
bool getWindingOrder() const
GT_API const UT_StringHolder selection
virtual void draw(RE_RenderContext r, GR_RenderMode mode, GR_RenderFlags flags, GR_DrawParms draw_parms)=0
Normal drawing method. Only issue rendering commands.
A collection of vertex arrays defining a geometry object. This class acts as a wrapper around multipl...
GT_API const UT_StringHolder cache_name
GLboolean GLboolean GLboolean GLboolean a
Temporary container for either a RV_Render and an RE_Render.
virtual bool canFrustumCull()
GLenum GLuint GLint GLint layer
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()
virtual bool updateBoneTransforms(RE_Render *r, const GT_DataArrayHandle &a)=0
virtual int buildVertexAttributes(RE_Render *r, const GT_PrimPolygonMesh *pmesh, const GR_UpdateParms &p, bool needs_normal, bool needs_uv, bool needs_tangent, bool new_geo, bool &vertex_promote)=0
const char * className() const override
The base class for all GT primitive types.
virtual GT_PrimitiveHandle convexSurface(const GT_PrimPolygonMesh *pmesh)=0
bool supportsInstances() const override
By default, no instanced drawing support.
virtual void buildConnectivity(RE_Render *r, const GT_PrimPolygonMesh *pmesh, const char *cache_name, RE_CacheVersion geo_version, const RE_MaterialAtlas &mats, int npoints, bool wireframe, bool vertex_promote, bool convexed)=0
int numMaterials() const override
virtual bool updateBlendShapeWeights(RE_Render *r, const GT_DataArrayHandle &weights_attr)=0
Simple class for a mutli-integer cache tag.
bool isConvexed() const override