11 #ifndef GR_DecorationRender_h
12 #define GR_DecorationRender_h
43 #define GR_DECOR_OPT_VECTOR_SCALE "vector_scale"
44 #define GR_DECOR_OPT_VECTOR_ARROW_TIP "vector_arrow_tip"
45 #define GR_DECOR_OPT_POINT_SCALE "point_scale"
46 #define GR_DECOR_OPT_COLOR "color"
47 #define GR_DECOR_OPT_SELECT_COLOR "select_color"
48 #define GR_DECOR_OPT_FONT_SIZE "font_size"
49 #define GR_DECOR_OPT_COLOR_ATTRIB "color_attrib"
50 #define GR_DECOR_OPT_NORMALIZE "normalize"
51 #define GR_DECOR_OPT_COLOR_XFORM "color_xform"
52 #define GR_DECOR_OPT_COLOR_XFORM_REF_VEC "color_xform_ref_vec"
67 override_vis(over_vis),
68 instance_group(inst_grp),
105 {
return myHasOverlayDecorations; }
150 RenderTarget render_mode,
152 PrimitiveType glprim_type,
166 RenderTarget render_mode,
168 PrimitiveType glprim_type,
179 PrimitiveType prim_type);
187 PrimitiveType prim_type);
215 static void bindViewportVertexTexture(
224 class GR_UserDecorInfo
228 : myCustomShaderRegistry(NULL),
239 : myCustomShaderRegistry(shader_registry),
240 myUserOption(user_option),
241 myAttribSize(attrib_size),
243 myIsString(is_string)
263 bool showSelections()
const
264 {
return myRenderInfo->showSelections(); }
266 {
return myDecorEnabled[
dec]; }
270 int getUserDecorAttribSize(
int decor)
const;
271 bool isFPUserDecor(
int decor)
const;
272 bool isStringUserDecor(
int decor)
const;
293 PrimitiveType prim_type,
310 PrimitiveType prim_type);
332 PrimitiveType prim_type);
339 PrimitiveType prim_type,
364 PrimitiveType prim_type,
381 PrimitiveType prim_type);
389 PrimitiveType prim_type);
398 PrimitiveType prim_type,
420 int myUserStringCount[3];
421 int myUserStringIndex[3];
424 bool myHasDecorations;
425 bool myHasOverlayDecorations;
450 myDecorAttribSize(1),
461 const char *dec_attrib,
463 bool overlay =
false,
468 myDecorAttribOwner(dec_attrib_owner),
469 myDecorAttribSize(dec_attrib_size),
470 myDecorAttribStorage( dec_attrib_store),
472 mySelectMode(select_mode),
473 myVisibility(visibility),
478 myDecorAttrib.harden(dec_attrib);
484 myDecorAttribOwner = src.myDecorAttribOwner;
485 myDecorAttribSize = src.myDecorAttribSize;
487 myDecorAttrib.harden(src.myDecorAttrib);
488 myMaskAttrib.harden(src.myMaskAttrib);
490 myStyle = src.myStyle;
491 mySelectMode = src.mySelectMode;
492 myVisibility = src.myVisibility;
493 myDecorAttribStorage = src.myDecorAttribStorage;
495 myOptions = src.myOptions;
500 {
return myDecorAttribOwner; }
502 { myDecorAttribOwner = owner; }
504 {
return myDecorAttrib.length()
505 ? (
const char *)myDecorAttrib :
nullptr; }
507 { myDecorAttrib.harden(attrib); }
509 {
return myDecorAttribSize; }
511 { myDecorAttribSize =
size; }
513 {
return myDecorAttribStorage; }
515 { myDecorAttribStorage = store; }
517 {
return myMaskAttrib.length()
518 ? (
const char*) myMaskAttrib : 0; }
520 { myMaskAttrib.harden(attrib); }
526 {
return mySelectMode; }
528 {
return myVisibility; }
530 { myVisibility = vis; }
535 const {
return myOptions; }
549 int myDecorAttribSize;
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
GR_VisualizerInfo(GA_AttributeOwner dec_attrib_owner, int dec_attrib_size, const char *dec_attrib, GT_Storage dec_attrib_store, bool overlay=false, GR_VisualizerDecorStyle style=GR_VISUALIZER_DECOR_TEXT, GR_SelectMode select_mode=GR_SELECT_NONE, GR_DecorVisibility visibility=GR_DECOR_ALWAYS_VISIBLE, int owner_id=-1)
GR_DecorVisibility getVisibility() const
const GR_DisplayOption * opts
const char * getMaskAttrib() const
void setMaskAttrib(const char *attrib)
A collection of vertex arrays defining a geometry object. This class acts as a wrapper around multipl...
GR_VisualizerDecorStyle getStyle() const
int getDecorAttribSize() const
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
const char * getDecorAttrib() const
Temporary container for either a RV_Render and an RE_Render.
void setDecorAttribOwner(GA_AttributeOwner owner)
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()
void setStyle(GR_VisualizerDecorStyle style)
GA_API const UT_StringHolder scale
GR_DecorationParms(const GR_DisplayOption *opt, bool over, bool over_vis, int inst_grp, GR_DecorRenderFlags flags)
GLint GLint GLsizei GLint GLenum GLenum type
GR_DecorRenderFlags render_flags
void setOwnerId(int owner_id)
vint4 select(const vbool4 &mask, const vint4 &a, const vint4 &b)
void setDecorAttrib(const char *attrib)
constexpr auto set(type rhs) -> int
RV_API void cleanupShaders()
void setDecorAttribStorage(GT_Storage store)
GT_Storage getDecorAttribStorage() const
GR_VisualizerInfo & operator=(const GR_VisualizerInfo &src)
ImageBuf OIIO_API over(const ImageBuf &A, const ImageBuf &B, ROI roi={}, int nthreads=0)
GA_AttributeOwner getDecorAttribOwner() const
UT_StringArray RV_OverrideList
The base class for all GT primitive types.
Handle to the main interface of Vulkan.
const UT_Options * getOptions() const
RV_API bool initShaders(RV_Instance *inst)
GR_SelectMode getSelectMode() const
A map of string to various well defined value types.
GA_API const UT_StringHolder parms
void attachOptions(UT_Options *opts)
void setVisibility(GR_DecorVisibility vis)
bool hasOverlayDecorations() const
void setDecorAttribSize(int size)
const GR_VisualizerInfo * visualizer