12 #ifndef GR_InstanceManager_h
13 #define GR_InstanceManager_h
51 {
return myIsActive && myInteractiveMode; }
56 {
UT_ASSERT(!myIsActive);
if (!myIsActive) { myDrawSolidBBoxes = draw;} }
58 {
UT_ASSERT(!myIsActive);
if (!myIsActive) { myDrawWireBBoxes = draw;} }
63 void queueUncullableDraw(
int num_gl_prims);
66 int newDrawRequestID();
67 void returnDrawRequestID(
int draw_id);
103 bool all_selected =
false);
120 bool all_selected =
false);
143 bool all_selected =
false);
165 bool all_selected =
false);
168 int newBBoxRequestID();
169 void returnBBoxRequestID(
int bbox_id);
191 bool all_selected =
false);
195 void queuePartialBBoxDraw(
206 bool all_selected =
false);
209 static void cleanupShaders();
226 gr_DrawRequestResult getDrawRequestResult(
int draw_id,
243 bool determineBBoxMode(
bool wire_req)
const;
279 : num_prims(np), single_inst(si), instances(insts), bbox(&bb),
280 visible_instances(vi), visible_result(vr), selected(false),
281 result(ERROR_NOT_PROCESSED), rmode(rm), rflags(rf), dparms(dp),
282 pass_id(passid), colors(nullptr),
color(nullptr),
283 nest_counts(nullptr), selected_prims(nullptr), wireframe(false),
284 visible_range(nullptr) {}
286 : dparms(nullptr, nullptr, nullptr, -1, -1, false, 0, 0,0,0),
287 pass_id(-1), num_prims(0), single_inst(nullptr),
288 instances(nullptr), bbox(nullptr), nest_counts(nullptr),
289 visible_instances(nullptr), visible_result(nullptr),
290 selected_prims(nullptr),
color(nullptr), visible_range(nullptr) {}
323 : single_inst(si),instances(insts),bbox(&bb),visible_instances(vi),
324 offset(0), bucket(0), pass_id(passid), selected_prims(nullptr),
325 colors(nullptr), selected(false), wireframe(false),
326 color(nullptr), nest_counts(nesting)
329 : single_inst(nullptr),instances(nullptr),bbox(nullptr),
330 visible_instances(nullptr),
offset(0), bucket(0), pass_id(-1),
331 selected_prims(nullptr),colors(nullptr), selected(false),
332 wireframe(false),
color(nullptr), nest_counts(nullptr)
357 :
z(_z), draw_id(did), draw_index(didx) {}
371 NUM_BBOX_SHADING_MODES = 4,
372 NUM_BBOX_COLOR_MODES = 2
388 bool myInteractiveMode;
390 bool myDrawSolidBBoxes;
391 bool myDrawWireBBoxes;
403 friend class GUI_SceneFeel;
const UT_Array< uint8 > * selected_prims
GT_DataArrayHandle prim_ids
const UT_Vector3FArray * colors
const UT_Matrix4D * single_inst
const UT_IntArray * nest_counts
gr_DrawEntry(fpreal32 _z, int did, int didx)
const UT_IntArray * visible_instances
const UT_Array< uint8 > * selected_prims
void setDrawSolidBBoxes(bool draw)
gr_DrawRequestResult result
GLdouble GLdouble GLdouble z
const UT_BoundingBox * bbox
const UT_Matrix4DArray * instances
UT_IntArray * visible_result
**But if you need a result
Temporary container for either a RV_Render and an RE_Render.
const UT_Matrix4D * single_inst
const UT_IntArray * nest_counts
const UT_Matrix4DArray * instances
void setDrawWireBBoxes(bool draw)
UT_Vector2i * visible_range
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
Handle to the main interface of Vulkan.
const UT_Vector3FArray * colors
void allowBBoxReplacement(bool allow)
gr_DrawRequest(int np, const UT_Matrix4D *si, const UT_Matrix4DArray *insts, const UT_BoundingBox &bb, const UT_IntArray *vi, UT_IntArray *vr, GR_RenderMode rm, GR_RenderFlags rf, GR_DrawParms dp, int passid)
bool canQueueRequests() const
const UT_BoundingBox * bbox
GT_DataArrayHandle prim_ids
gr_BBoxRequest(const UT_Matrix4D *si, const UT_Matrix4DArray *insts, const UT_IntArray *nesting, const UT_BoundingBox &bb, const UT_IntArray *vi, int passid)
const UT_IntArray * visible_instances