HDK
|
#include <GR_InstanceManager.h>
Classes | |
class | gr_BBoxRequest |
class | gr_DrawEntry |
class | gr_DrawRequest |
Public Types | |
enum | gr_DrawRequestResult { NO_DRAW, PARTIAL_DRAW, POINTS_ONLY_DRAW, FULL_DRAW, ERROR_NO_SUCH_ID, ERROR_NOT_PROCESSED } |
enum | { BBOX_COLOR_SHADED =0, BBOX_COLOR_WIRE =1, BBOX_SHADED =2, BBOX_WIRE =3, NUM_BBOX_SHADING_MODES = 4, NUM_BBOX_COLOR_MODES = 2 } |
Public Member Functions | |
bool | isActive () const |
bool | canQueueRequests () const |
void | allowBBoxReplacement (bool allow) |
void | setDrawSolidBBoxes (bool draw) |
void | setDrawWireBBoxes (bool draw) |
void | queueUncullableDraw (int num_gl_prims) |
int | newDrawRequestID () |
Request a new draw ID used to queue requests. Return it when done. More... | |
void | returnDrawRequestID (int draw_id) |
void | queueDrawRequest (const RE_RenderContext r, int draw_id, int num_gl_prims, const UT_BoundingBox &box, const UT_Matrix4D &world_mat, GR_RenderMode rmode, GR_RenderFlags rflags, const GR_DrawParms &dp, bool wireframe, int32 prim_id, bool selected, UT_Vector3F *color=nullptr) |
void | queueInstanceDrawRequest (const RE_RenderContext r, int draw_id, int num_gl_prims, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, UT_IntArray &result_visible_indices, UT_Vector2i &result_visible_range, GR_RenderMode rmode, GR_RenderFlags rflags, const GR_DrawParms &dp, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
void | queueNestedInstanceDrawRequest (const RE_RenderContext r, int draw_id, int num_gl_prims, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, const UT_IntArray &nest_level_counts, UT_IntArray &result_visible_indices, UT_Vector2i &result_visible_range, GR_RenderMode rmode, GR_RenderFlags rflags, const GR_DrawParms &dp, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
void | queuePartialInstanceDrawRequest (const RE_RenderContext r, int draw_id, int num_gl_prims, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, const UT_IntArray &visible_indices, UT_IntArray &result_visible_indices, UT_Vector2i &result_visible_range, GR_RenderMode rmode, GR_RenderFlags rflags, const GR_DrawParms &dp, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
void | queuePartialNestedInstanceRequest (const RE_RenderContext r, int draw_id, int num_gl_prims, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, const UT_IntArray &visible_indices, const UT_IntArray &nest_level_counts, UT_IntArray &result_visible_indices, UT_Vector2i &result_visible_range, GR_RenderMode rmode, GR_RenderFlags rflags, const GR_DrawParms &dp, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
int | newBBoxRequestID () |
Request a new draw ID used to queue requests. Return it when done. More... | |
void | returnBBoxRequestID (int bbox_id) |
void | queueBBoxDraw (const RE_RenderContext r, int bbox_id, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, bool wireframe, int32 prim_id, bool selected, UT_Vector3F *color=nullptr) |
void | queueBBoxDraw (const RE_RenderContext r, int bbox_id, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
void | queuePartialBBoxDraw (const RE_RenderContext r, int bbox_id, const UT_BoundingBox &box, const UT_Matrix4D &obj_transform, const UT_Matrix4DArray &instances, const UT_IntArray &visible_indices, bool wireframe, const GT_DataArrayHandle &prim_ids, const UT_Array< uint8 > *selected, const UT_Vector3FArray *colors, bool all_selected=false) |
gr_DrawRequestResult | getDrawRequestResult (int draw_id, GR_RenderMode &mode, GR_RenderFlags &flags, GR_DrawParms &parms) const |
Static Public Member Functions | |
static GR_InstanceManager & | get () |
static bool | initShaders (RV_Instance *inst) |
static void | cleanupShaders () |
Friends | |
class | GUI_SceneFeel |
class | DM_VPortAgent |
Additional Inherited Members | |
Protected Member Functions inherited from UT_NonCopyableNS::UT_NonCopyable | |
UT_NonCopyable ()=default | |
~UT_NonCopyable ()=default | |
UT_NonCopyable (const UT_NonCopyable &)=delete | |
UT_NonCopyable & | operator= (const UT_NonCopyable &)=delete |
Definition at line 34 of file GR_InstanceManager.h.
anonymous enum |
Enumerator | |
---|---|
BBOX_COLOR_SHADED | |
BBOX_COLOR_WIRE | |
BBOX_SHADED | |
BBOX_WIRE | |
NUM_BBOX_SHADING_MODES | |
NUM_BBOX_COLOR_MODES |
Definition at line 364 of file GR_InstanceManager.h.
Enumerator | |
---|---|
NO_DRAW | |
PARTIAL_DRAW | |
POINTS_ONLY_DRAW | |
FULL_DRAW | |
ERROR_NO_SUCH_ID | |
ERROR_NOT_PROCESSED |
Definition at line 211 of file GR_InstanceManager.h.
|
inline |
Definition at line 53 of file GR_InstanceManager.h.
|
inline |
Definition at line 50 of file GR_InstanceManager.h.
|
static |
|
inlinestatic |
Definition at line 37 of file GR_InstanceManager.h.
gr_DrawRequestResult GR_InstanceManager::getDrawRequestResult | ( | int | draw_id, |
GR_RenderMode & | mode, | ||
GR_RenderFlags & | flags, | ||
GR_DrawParms & | parms | ||
) | const |
|
static |
|
inline |
Definition at line 48 of file GR_InstanceManager.h.
int GR_InstanceManager::newBBoxRequestID | ( | ) |
Request a new draw ID used to queue requests. Return it when done.
int GR_InstanceManager::newDrawRequestID | ( | ) |
Request a new draw ID used to queue requests. Return it when done.
void GR_InstanceManager::queueBBoxDraw | ( | const RE_RenderContext | r, |
int | bbox_id, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
bool | wireframe, | ||
int32 | prim_id, | ||
bool | selected, | ||
UT_Vector3F * | color = nullptr |
||
) |
void GR_InstanceManager::queueBBoxDraw | ( | const RE_RenderContext | r, |
int | bbox_id, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
void GR_InstanceManager::queueDrawRequest | ( | const RE_RenderContext | r, |
int | draw_id, | ||
int | num_gl_prims, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | world_mat, | ||
GR_RenderMode | rmode, | ||
GR_RenderFlags | rflags, | ||
const GR_DrawParms & | dp, | ||
bool | wireframe, | ||
int32 | prim_id, | ||
bool | selected, | ||
UT_Vector3F * | color = nullptr |
||
) |
void GR_InstanceManager::queueInstanceDrawRequest | ( | const RE_RenderContext | r, |
int | draw_id, | ||
int | num_gl_prims, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
UT_IntArray & | result_visible_indices, | ||
UT_Vector2i & | result_visible_range, | ||
GR_RenderMode | rmode, | ||
GR_RenderFlags | rflags, | ||
const GR_DrawParms & | dp, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
void GR_InstanceManager::queueNestedInstanceDrawRequest | ( | const RE_RenderContext | r, |
int | draw_id, | ||
int | num_gl_prims, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
const UT_IntArray & | nest_level_counts, | ||
UT_IntArray & | result_visible_indices, | ||
UT_Vector2i & | result_visible_range, | ||
GR_RenderMode | rmode, | ||
GR_RenderFlags | rflags, | ||
const GR_DrawParms & | dp, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
void GR_InstanceManager::queuePartialBBoxDraw | ( | const RE_RenderContext | r, |
int | bbox_id, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
const UT_IntArray & | visible_indices, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
void GR_InstanceManager::queuePartialInstanceDrawRequest | ( | const RE_RenderContext | r, |
int | draw_id, | ||
int | num_gl_prims, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
const UT_IntArray & | visible_indices, | ||
UT_IntArray & | result_visible_indices, | ||
UT_Vector2i & | result_visible_range, | ||
GR_RenderMode | rmode, | ||
GR_RenderFlags | rflags, | ||
const GR_DrawParms & | dp, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
void GR_InstanceManager::queuePartialNestedInstanceRequest | ( | const RE_RenderContext | r, |
int | draw_id, | ||
int | num_gl_prims, | ||
const UT_BoundingBox & | box, | ||
const UT_Matrix4D & | obj_transform, | ||
const UT_Matrix4DArray & | instances, | ||
const UT_IntArray & | visible_indices, | ||
const UT_IntArray & | nest_level_counts, | ||
UT_IntArray & | result_visible_indices, | ||
UT_Vector2i & | result_visible_range, | ||
GR_RenderMode | rmode, | ||
GR_RenderFlags | rflags, | ||
const GR_DrawParms & | dp, | ||
bool | wireframe, | ||
const GT_DataArrayHandle & | prim_ids, | ||
const UT_Array< uint8 > * | selected, | ||
const UT_Vector3FArray * | colors, | ||
bool | all_selected = false |
||
) |
For primitives that cannot be culled, this at least notifies the manager of the GL primitive count so it can be taken into account.
|
inline |
Definition at line 55 of file GR_InstanceManager.h.
|
inline |
Definition at line 57 of file GR_InstanceManager.h.
|
friend |
Definition at line 404 of file GR_InstanceManager.h.
|
friend |
Definition at line 403 of file GR_InstanceManager.h.