HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
BRAY_Types.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: BRAY_Types.h (BRAY Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __BRAY_Types__
12 #define __BRAY_Types__
13 
14 #include "BRAY_API.h"
15 #include <UT/UT_StringHolder.h>
16 #include <GT/GT_Types.h>
17 
18 class UT_WorkBuffer;
19 
20 enum
21 {
22  // Note - when adding event types, make sure to update ::eventType()
23  BRAY_EVENT_NEW_FLAG, // Added a new object
24  BRAY_EVENT_DEL_FLAG, // Object is being deleted
25  BRAY_EVENT_ATTRIB_P_FLAG, // P attribute changed
26  BRAY_EVENT_ATTRIB_FLAG, // Generic attribute changed
27  BRAY_EVENT_TOPOLOGY_FLAG, // Topology changed
28  BRAY_EVENT_XFORM_FLAG, // Transforms changed
29  BRAY_EVENT_CONTENTS_FLAG, // Contents changed (add/delete objects)
30  BRAY_EVENT_PROPERTIES_FLAG, // Instance properties changed
31  BRAY_EVENT_MATERIAL_FLAG, // Material has changed
32  BRAY_EVENT_TRACESET_FLAG, // Traceset has changed
33 
35 };
37 #define ENUM_FLAG(TOKEN) BRAY_EVENT_##TOKEN = (1 << BRAY_EVENT_##TOKEN##_FLAG)
38 /// Types of events that can be sent as updates to the renderer
40 {
42  ENUM_FLAG(NEW),
43  ENUM_FLAG(DEL),
44  ENUM_FLAG(ATTRIB_P),
46  ENUM_FLAG(TOPOLOGY),
47  ENUM_FLAG(XFORM),
48  ENUM_FLAG(CONTENTS),
49  ENUM_FLAG(PROPERTIES),
50  ENUM_FLAG(MATERIAL),
51  ENUM_FLAG(TRACESET),
52 };
53 #undef ENUM_FLAG
54 
55 static inline BRAY_EventType
56 operator|(BRAY_EventType a, BRAY_EventType b)
57 {
58  return BRAY_EventType(uint(a)|uint(b));
59 }
60 
61 /// Create a nice string for the event type mask
63 
64 /// Option tokens used at the "global" (scene) level
65 /// @note If you add an scene option, please update BRAY_HdUtil.C
67 {
68  BRAY_OPT_RENDERER = 0, // Name of the renderer (read-only)
69  BRAY_OPT_VERSION, // Houdini version (read-only)
70  BRAY_OPT_ENGINE, // Accelerator
71 
72  // Controls for general rendering
77  BRAY_OPT_CONVERGENCE_MODE, // branched/pathtraced integration convergence switch
78  BRAY_OPT_RR_CUTOFF_DEPTH, // russian roulette cutoff depth
79  BRAY_OPT_CONSTRAIN_MAX_ROUGH, // Constrain by maximum roughness
80 
81  BRAY_OPT_IMAGEMODE, // Bucket rendering mode
82  BRAY_OPT_PROGRESSIVE_PASSES,// Number of progressive passes before bucket mode
83 
84  BRAY_OPT_HD_FOREGROUND, // Hydra renders in foreground (not background)
86  BRAY_OPT_IPR_INC_RANDOM, // Random seed modified each IPR render
89  BRAY_OPT_IPR_INTERACTION, // Interaction mode (see enum)
90  BRAY_OPT_IPR_BUCKETS_FOR_IMAGEFILTER, // Buckets rendered before image filters
91  BRAY_OPT_IPR_TIME_FOR_IMAGEFILTER, // Timeout before image filters run
92  BRAY_OPT_IPR_PROXY_FOR_IMAGEFILTER, // Proxy step before running filters
93 
94  // Controls for off-line rendering cache
95  BRAY_OPT_USECACHERATIO, // Whether to use the cache ratio
96  BRAY_OPT_CACHERATIO, // Amount of memory to use as cache
97  BRAY_OPT_CACHESIZE, // Absolute cache ratio
98 
99  // Object settings overrides
100  BRAY_OPT_OVERRIDE_OBJECT, // Override object settings matching this pattern
101 
102  // Control for disabled lighting
103  BRAY_OPT_DISABLE_LIGHTING, // Disable all lighting (headlight)
104  BRAY_OPT_AO_SAMPLES, // Ambient occlusion samples for headlight
105  BRAY_OPT_AO_DISTANCE, // Ambient occlusion max distance for headlight
106  BRAY_OPT_AO_COLORLIMIT, // Ambient occlusion color limit threshold
107  BRAY_OPT_DEPTHCUE_COLOR, // Color for depthcue fog
108  BRAY_OPT_DEPTHCUE_ALPHA, // Alpha for depthcue fog
109  BRAY_OPT_DEPTHCUE_Z, // Distance range for depth cue fog (near,far)
110 
111  // Controls for lighting modes
112  BRAY_OPT_LIGHT_SAMPLING_MODE, // (0[Uniform], 1[Light Tree])
117 
121  BRAY_OPT_DICING_QUALITY_SCALE, // Multiplier for DICING_QUALITY
122  BRAY_OPT_ENABLE_DOF, // Enable DOF
123 
124  BRAY_OPT_RESOLUTION, // Should match the data window size
127  BRAY_OPT_IMAGEFILTER, // Image filter plugins (JSON string)
130  BRAY_OPT_SAMPLEFILTER, // Sample filter plugins (JSON string)
131  BRAY_OPT_PIXELORACLE, // Pixel oracle
132 
135 
145 
147 
148  // Image properties
149  BRAY_OPT_DATAWINDOW, // Window size should match resolution
151 
152  BRAY_OPT_UNITS, // The metres per unit in world space
153 
154  // Path guiding
162 
165 };
166 
167 /// @note If you add an object property, please update BRAY_HdUtil.C
169 {
171  BRAY_OBJ_GEO_VELBLUR, // (0[no blur], 1[vel blur], 2[accel blur])
174 
175  BRAY_OBJ_INSTANCE_VELBLUR, // (0[no blur], 1[vel blur], 2[accel blur])
177 
178  BRAY_OBJ_DICING_QUALITY, // <= 0[no dicing], 1[on m-p per pixel]
180 
182 
183  /// @{
184  /// @note: The order must match theBsdfBounceTypes in PBR_Types.h
190 
196  /// @}
197 
198  BRAY_OBJ_VOLUME_SAMPLING, // (0[raymarch], 1[woodcock/delta])
204 
206 
211 
213 
214  BRAY_OBJ_POINT_STYLE, // Point rendering style
215  BRAY_OBJ_CURVE_STYLE, // Curve style
216  BRAY_OBJ_CURVE_BASIS, // Curve basis override
217 
218  BRAY_OBJ_TREAT_AS_LIGHTSOURCE, // (0[no], 1[yes], 2[auto])
219  BRAY_OBJ_IS_LIGHTSOURCE, // invisible, set by BRAY under the hood
220  BRAY_OBJ_VOLLIGHT_IMPORTANCE_GRID_SIZE, // int (invisible, for now)
221  BRAY_OBJ_GEOLIGHT_NUM_PERPRIM_CESAMPS, // int (invisible, for now)
222 
226 
229 
231  BRAY_OBJ_CULL_BACKFACE, // (0[off], 1[cull back], 2[cull front])
232 
234  BRAY_OBJ_RENDER_MASK, // invisible, used only by karma delegate
235  BRAY_OBJ_LPE_TAG, // string
237 
240 
241  // per-component variance AA settings
245 
248 };
249 
251 {
257  BRAY_CAMERA_CLIP, // real[2] (near and far)
258  BRAY_CAMERA_SHUTTER, // real[2] (open and close)
261  BRAY_CAMERA_WINDOW, // real[4] (NDC mapping window)
263  BRAY_CAMERA_TINT, // real[3]
264 
267 };
268 
270 {
272  BRAY_LIGHT_SHADER, // string
273  BRAY_LIGHT_AREA_SHAPE, // int (see BRAY_LightType)
277  BRAY_LIGHT_AREA_MAP, // string: environment map for sampling
280  BRAY_LIGHT_MIS_BIAS, // real [-1,1]
284  BRAY_LIGHT_CATEGORY, // string: category name
285  BRAY_LIGHT_HDRI_MAX_ISIZE, // int (max size for importance sampling tables)
286  BRAY_LIGHT_DISTANT_ANGLE, // float (angle which subtends sun)
287  BRAY_LIGHT_DIFFUSE_SCALE, // float multiplier for diffuse/sss/volume
288  BRAY_LIGHT_SPECULAR_SCALE, // float multiplier for refl/refr
289  BRAY_LIGHT_SINGLE_SIDED, // bool, single or double sided
294  BRAY_LIGHT_ILLUM_BACKGROUND, // bool illuminates background holdout
295 
298 };
299 
301 {
302  BRAY_PLANE_FILTER, // Pixel filter
303  BRAY_PLANE_SAMPLING, // Sample filtering (0 = average etc.)
304  BRAY_PLANE_EXCLUDE_DCM, // Exclude from deep camera images
305  BRAY_PLANE_DISABLE, // Disable the image plane
306  BRAY_PLANE_SEPARATE_FILE, // Filename to write image to
307  BRAY_PLANE_DITHER, // Dither for quantizing to integer values
308  BRAY_PLANE_DEFAULT_VALUE, // Default value for 1-channel planes
309  BRAY_PLANE_CRYPTO_ENABLE, // Cryptomatte enable
310  BRAY_PLANE_CRYPTO_RANK, // Cryptomatte maximum rank
311  BRAY_PLANE_CRYPTO_SIDECAR, // Cryptomatte sidecar manifest file
312 
315 };
316 
317 /// Properties interpreted by the command line renderer
319 {
320  BRAY_COMMAND_FRAME, // Start frame
321  BRAY_COMMAND_FRAME_COUNT, // Number of frames to render
322  BRAY_COMMAND_FRAME_INC, // Frame increment
323  BRAY_COMMAND_SNAPSHOT, // Seconds between snapshot writes
324  BRAY_COMMAND_TIMELIMIT, // Time limit for rendering
325  BRAY_COMMAND_TIMELIMIT_IMAGE, // Time limit is specified per image
326  BRAY_COMMAND_TIMELIMIT_NOSAVE_PARTIAL, // Don't save WIP after timelimit
327 
330 };
331 
333 {
340 
343 };
344 
345 /// Not all applications are able to load HDAs. If an application is able to
346 /// load HDAs, it should create a subclass of BRAY_HDALoader and instantiate a
347 /// loader. The constructor will register the class for the application and
348 /// the destructor will de-register.
350 {
351 public:
352  BRAY_HDALoader();
353  virtual ~BRAY_HDALoader();
354 
355  /// The className() is used to print out error messages in case there are
356  /// multiple HDA loaders instantiated.
357  virtual const char *className() const = 0;
358 
359  /// Return true if the HDA given by the path was loaded. It's possible the
360  /// same path may be passed multiple times, and it's up to the implementor
361  /// to optimize for this case. It's up to the implementor to print out
362  /// errors using UT_ErrorLog.
363  virtual bool loadHDA(const UT_StringHolder &path) = 0;
364 };
365 
366 /// Return the name of the renderer
368 
369 /// Look up the enum given a name.
371  BRAY_PropertyType ty, int id);
373  const UT_StringRef &name);
376 
377 inline bool
379 {
380  return GT_STORE_INVALID
381  != BRAYpropertyStorage(ty, id);
382 }
383 
384 inline bool
385 BRAYisValid(const std::pair<BRAY_PropertyType, int> &prop)
386 {
387  return BRAYisValid(prop.first, prop.second);
388 }
389 
390 #define PROPERTY_LOOKUP(NAME, STYLE, ENUM) \
391  inline ENUM BRAY##NAME(const UT_StringRef &name) \
392  { return ENUM(BRAYproperty(STYLE, name)); } \
393  inline const UT_StringHolder &BRAY##NAME(ENUM token) \
394  { return BRAYproperty(STYLE, token); } \
395  inline exint BRAY##NAME##Size(ENUM token) \
396  { return BRAYpropertySize(STYLE, token); } \
397  inline GT_Storage BRAY##NAME##Storage(ENUM token) \
398  { return BRAYpropertyStorage(STYLE, token); } \
399  /* end of macro */
406 #undef PROPERTY_LOOKUP
407 
408 /// Lookup a property type by name
410 /// Look up the name of a property type by the id
412 
413 /// This function will resolve generic names to the appropriate property type
414 /// and property identifier. For example:
415 /// "plane:filter" -> {BRAY_PLANE_PROPERTY, BRAY_PLANE_FILTER}
416 /// "camera:focal" -> {BRAY_CAMERA_PROPERTY, BRAY_CAMERA_FOCAL}
417 /// "global:bucketsize" -> {BRAY_SCENE_PROPERTY, BRAY_OPT_BUCKETSIZE}
418 /// If the token doesn't map to a property, the function will return an invalid
419 /// pair (i.e. BRAYisValid(result) == false).
420 ///
421 /// If the token isn't prefixed with a property type, the @c default_style will
422 /// be used. For example, with the default of BRAY_SCENE_PROPERTY:
423 /// "bucketsize" -> { BRAY_SCENE_PROPERTY, BRAY_OPT_BUCKETSIZE }
424 /// "focal" -> {invalid_property_pair} (error - not a scene property)
425 BRAY_API extern std::pair<BRAY_PropertyType, int>
426  BRAYproperty(const char *token,
428 
429 /// Given a property type, this will compose a name string that fully qualifies
430 /// the property. This is a string that would be suitable for @c
431 /// BRAYlookupProperty(). This may return a @c nullptr.
432 BRAY_API extern const char *BRAYproperty(UT_WorkBuffer &storage,
434  int property_id,
435  const char *prefix = "");
436 
437 /// @{
438 /// Generic method to return the number of options given an enum
439 template <typename T> static inline constexpr size_t BRAYmaxOptions()
440 { SYS_UNIMPLEMENTED_TEMPLATE(T); return 0; }
441 
442 template <> inline constexpr size_t
444 template <> inline constexpr size_t
446 template <> inline constexpr size_t
448 template <> inline constexpr size_t
450 template <> inline constexpr size_t
452 template <> inline constexpr size_t
454 /// @}
455 
456 /// @{
457 /// Generic method to find the valud of the property type enum given the enum
458 template <typename T> static inline constexpr BRAY_PropertyType BRAYpropertyType()
460 
461 template <> inline constexpr BRAY_PropertyType
463 template <> inline constexpr BRAY_PropertyType
465 template <> inline constexpr BRAY_PropertyType
467 template <> inline constexpr BRAY_PropertyType
469 template <> inline constexpr BRAY_PropertyType
471 template <> inline constexpr BRAY_PropertyType
473 /// @}
474 
475 
477 {
487 
490 };
491 // Different types of user interaction in IPR
493 {
500 
502 };
503 
505 {
506  BRAY_BUCKETORDER_MIDDLE, // Render starting centered on focus point
507  BRAY_BUCKETORDER_TOP, // Render top down
508  BRAY_BUCKETORDER_BOTTOM, // Render bottom up
509  BRAY_BUCKETORDER_LEFT, // Render left to right
510  BRAY_BUCKETORDER_RIGHT, // Render right to left
511 
513 };
514 
516 {
517  BRAY_IMAGEMODE_PROGRESSIVE, // Pass over all buckets on image
518  BRAY_IMAGEMODE_BUCKET, // Finish buckets before advancing
519 
521 };
522 
523 /// Projection modes for rendering
525 {
526  BRAY_PROJ_ORTHOGRAPHIC, // orthographic projection mode
527  BRAY_PROJ_PERSPECTIVE, // perspective projection mode
528  BRAY_PROJ_CVEX_SHADER, // run a CVEX lens shader
529 
531 };
532 
534 {
535  BRAY_RAYIMPORT_P, // vector: ray origin
536  BRAY_RAYIMPORT_D, // vector: ray direction
537  BRAY_RAYIMPORT_TIME, // float: shutter time
538  BRAY_RAYIMPORT_NEAR, // float: near bias
539  BRAY_RAYIMPORT_FAR, // float: max distance
540  BRAY_RAYIMPORT_MASK, // int: intersection mask
541  BRAY_RAYIMPORT_CONTRIB, // vector: contribution
542 
543  BRAY_RAYIMPORT_HIT_ISHIT, // bool: Hit or miss
544  BRAY_RAYIMPORT_HIT_P, // vector: Hit position (in world space)
545  BRAY_RAYIMPORT_HIT_Pz, // float: Pz (in space of camera)
546  BRAY_RAYIMPORT_HIT_STACK, // int[]: Hit stack
547  BRAY_RAYIMPORT_HIT_ELEM, // int: Hit element (raw id)
548  BRAY_RAYIMPORT_HIT_PRIMID, // int: Hit primitive id
549  BRAY_RAYIMPORT_HIT_COORD, // vector: raw parametric coords {u,v,w}
550  BRAY_RAYIMPORT_HIT_DIST, // float: Hit distance
551  BRAY_RAYIMPORT_HIT_DPDZ, // float: dPdz
552  BRAY_RAYIMPORT_HIT_N, // vector: smooth normal
553  BRAY_RAYIMPORT_HIT_Ng, // vector: geometric normal
554  BRAY_RAYIMPORT_HIT_FLAGS, // int: hit flags
555  BRAY_RAYIMPORT_LEVEL, // int: ray level
556  BRAY_RAYIMPORT_PIXEL_SAMPLES, // int: pixel samples (ie camera rays)
557  BRAY_RAYIMPORT_HD_PRIM, // int: hydra rprim id for selection
558  BRAY_RAYIMPORT_HD_INST, // int: hydra inst idx (0th level) for selection
559  BRAY_RAYIMPORT_NOFAKECAUSTICS, // bool: disable fake caustics
560 
561  BRAY_RAYIMPORT_CURVE_ATTRIB_P, // vector: interpolated curve position
562  BRAY_RAYIMPORT_CURVE_ATTRIB_WIDTH, // float: interpolated curve width
563  BRAY_RAYIMPORT_CURVE_ATTRIB_TANV, // vector: interpolated curve pos derivative
564 
565  BRAY_RAYIMPORT_ISSHADOWRAY, // bool: is the ray a shadow ray (i.e. isshadowray)
566 
567  BRAY_RAYIMPORT_INVALID // Not a valid ray import
568 };
569 
570 #define ENUM_MAPPER(TYPE, METHOD) \
571  BRAY_API extern TYPE METHOD(const UT_StringRef &name); \
572  BRAY_API extern const UT_StringHolder &METHOD(TYPE o); \
573  /* end macro */
574 
575 ENUM_MAPPER(BRAY_LightType, BRAYlightType)
576 ENUM_MAPPER(BRAY_InteractionType, BRAYinteractionType)
577 ENUM_MAPPER(BRAY_BucketOrder, BRAYbucketOrder)
578 ENUM_MAPPER(BRAY_ImageMode, BRAYimageMode)
579 ENUM_MAPPER(BRAY_Projection, BRAYprojection)
580 ENUM_MAPPER(BRAY_VexRayImport, BRAYrayImport)
581 
582 #undef ENUM_MAPPER
583 
584 /// Consistent representation of time type within BRAY
585 using BRAYtime = float;
586 
587 /// Consistent representation for material ids
589 
590 /// Invalid material id
591 static constexpr BRAYmaterialId BRAY_INVALID_MATERIAL_ID = 0;
592 
593 /// List of known LPE prefixes
595 {
599 };
600 static inline BRAY_LPEPrefix
601 operator|(BRAY_LPEPrefix a, BRAY_LPEPrefix b)
602 {
603  return BRAY_LPEPrefix(uint(a)|uint(b));
604 }
605 static inline BRAY_LPEPrefix
606 operator&(BRAY_LPEPrefix a, BRAY_LPEPrefix b)
607 {
608  return BRAY_LPEPrefix(uint(a)&uint(b));
609 }
610 
612 {
620 
623 
626 };
627 
628 #define ENUM_TO_MASK(TOKEN) TOKEN = (1 << TOKEN##_ENUM)
629 /// Ray visibility flags
631 {
633 
634  ENUM_TO_MASK(BRAY_RAY_CAMERA),
635  ENUM_TO_MASK(BRAY_RAY_DIFFUSE),
636  ENUM_TO_MASK(BRAY_RAY_REFLECT),
637  ENUM_TO_MASK(BRAY_RAY_REFRACT),
638  ENUM_TO_MASK(BRAY_RAY_VOLUME),
639  ENUM_TO_MASK(BRAY_RAY_SHADOW_REG),
640  ENUM_TO_MASK(BRAY_RAY_SHADOW_BG),
641 
642  ENUM_TO_MASK(BRAY_PROXY_CAMERA),
643  ENUM_TO_MASK(BRAY_PROXY_SHADOW),
644 
645  ENUM_TO_MASK(BRAY_GUIDE_CAMERA),
646  ENUM_TO_MASK(BRAY_GUIDE_SHADOW),
647 
648  BRAY_RAY_SHADOW = (BRAY_RAY_SHADOW_REG | BRAY_RAY_SHADOW_BG),
649  BRAY_ANY_CAMERA = (BRAY_RAY_CAMERA | BRAY_PROXY_CAMERA | BRAY_GUIDE_CAMERA),
650  BRAY_ANY_SHADOW = (BRAY_RAY_SHADOW | BRAY_PROXY_SHADOW | BRAY_GUIDE_SHADOW),
651 
652  BRAY_RAY_ALL = 0xFFFF,
653 
654  BRAY_RAY_PROXY_MASK = (BRAY_PROXY_CAMERA|BRAY_PROXY_SHADOW),
655  BRAY_RAY_GUIDE_MASK = (BRAY_GUIDE_CAMERA|BRAY_GUIDE_SHADOW),
658 };
659 #undef ENUM_TO_MASK
660 
661 static inline BRAY_RayVisibility
663 {
664  return BRAY_RayVisibility(uint(a)|uint(b));
665 }
666 static inline BRAY_RayVisibility
668 {
669  return BRAY_RayVisibility(uint(a)&uint(b));
670 }
671 static inline BRAY_RayVisibility
672 operator~(BRAY_RayVisibility a)
673 {
674  return BRAY_RayVisibility(~uint(a));
675 }
676 
678 
679 /// Generic method to return the number of components for a given import
680 /// Note that arrays types return 0 (see BRAYrayImportArray())
681 template <BRAY_VexRayImport T> static inline constexpr size_t BRAYrayImportSize()
682 {
683 #if !defined(__clang__) && !SYS_IS_GCC_GE(9, 2)
685 #endif
686  return 0;
687 }
688 /// Generic method to return whether the import variable is array valued
689 template <BRAY_VexRayImport T> static inline constexpr bool BRAYrayImportIsArray()
690 {
691 #if !defined(__clang__) && !SYS_IS_GCC_GE(9, 2)
693 #endif
694  return false;
695 }
696 
697 #define INSTANTIATE(VAR, SIZE, IS_ARRAY) \
698  template <> inline constexpr size_t \
699  BRAYrayImportSize<VAR>() { return SIZE; } \
700  template <> inline constexpr bool \
701  BRAYrayImportIsArray<VAR>() { return IS_ARRAY; } \
702  /* end of macro */
703 
704 INSTANTIATE(BRAY_RAYIMPORT_P, 3, false)
705 INSTANTIATE(BRAY_RAYIMPORT_D, 3, false)
725 
726 #undef INSTANTIATE
727 
728 // LightSamplingMode
729 // enum for BRAY_OPT_LIGHT_SAMPLING_MODE
731 {
732  BRAY_LSM_UNIFORM = 0, // uniform sampling
733  BRAY_LSM_LIGHT_TREE // light hierarchy
734 };
735 
736 #endif
BRAY_EventType
Types of events that can be sent as updates to the renderer.
Definition: BRAY_Types.h:39
GT_Storage
Definition: GT_Types.h:18
GLboolean GLboolean GLboolean b
Definition: glcorearb.h:1221
UT_ASSERT_COMPILETIME(BRAY_EVENT_MAXFLAGS<=32)
#define ENUM_TO_MASK(TOKEN)
Definition: BRAY_Types.h:628
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_LightProperty >()
Definition: BRAY_Types.h:466
float BRAYtime
Consistent representation of time type within BRAY.
Definition: BRAY_Types.h:585
BRAY_API GT_Storage BRAYpropertyStorage(BRAY_PropertyType ty, int id)
BRAY_RayVisibility
Ray visibility flags.
Definition: BRAY_Types.h:630
GLsizei const GLchar *const * path
Definition: glcorearb.h:3340
BRAY_API const UT_StringHolder & BRAYrendererName()
Return the name of the renderer.
int64 exint
Definition: SYS_Types.h:125
BRAY_VexRayImport
Definition: BRAY_Types.h:533
BRAY_ImageMode
Definition: BRAY_Types.h:515
#define INSTANTIATE(VAR, SIZE, IS_ARRAY)
Definition: BRAY_Types.h:697
BRAY_RayVisibilityEnum
Definition: BRAY_Types.h:611
BRAY_Projection
Projection modes for rendering.
Definition: BRAY_Types.h:524
BRAY_CameraProperty
Definition: BRAY_Types.h:250
GLuint const GLchar * name
Definition: glcorearb.h:785
constexpr size_t BRAYmaxOptions< BRAY_CameraProperty >()
Definition: BRAY_Types.h:449
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_CameraProperty >()
Definition: BRAY_Types.h:468
BRAY_API exint BRAYpropertySize(BRAY_PropertyType ty, int id)
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_PlaneProperty >()
Definition: BRAY_Types.h:470
constexpr size_t BRAYmaxOptions< BRAY_ObjectProperty >()
Definition: BRAY_Types.h:445
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_CommandProperty >()
Definition: BRAY_Types.h:472
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:107
BRAY_ObjectProperty
Definition: BRAY_Types.h:168
BRAY_API UT_StringHolder BRAYrayVisibility(BRAY_RayVisibility mask)
GLint GLuint mask
Definition: glcorearb.h:123
constexpr size_t BRAYmaxOptions< BRAY_CommandProperty >()
Definition: BRAY_Types.h:453
GLboolean GLboolean GLboolean GLboolean a
Definition: glcorearb.h:1221
BRAY_LightSamplingMode
Definition: BRAY_Types.h:730
constexpr size_t BRAYmaxOptions< BRAY_LightProperty >()
Definition: BRAY_Types.h:447
#define ENUM_MAPPER(TYPE, METHOD)
Definition: BRAY_Types.h:570
#define PROPERTY_LOOKUP(NAME, STYLE, ENUM)
Definition: BRAY_Types.h:390
typedef int(WINAPI *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer
BRAY_LightProperty
Definition: BRAY_Types.h:269
BRAY_PlaneProperty
Definition: BRAY_Types.h:300
#define ENUM_FLAG(TOKEN)
Definition: BRAY_Types.h:37
BRAY_CommandProperty
Properties interpreted by the command line renderer.
Definition: BRAY_Types.h:318
constexpr size_t BRAYmaxOptions< BRAY_SceneOption >()
Definition: BRAY_Types.h:443
BRAY_InteractionType
Definition: BRAY_Types.h:492
BRAY_LightType
Definition: BRAY_Types.h:476
BRAY_SceneOption
Definition: BRAY_Types.h:66
#define BRAY_API
Definition: BRAY_API.h:12
#define SYS_UNIMPLEMENTED_TEMPLATE(T)
BRAY_PropertyType
Definition: BRAY_Types.h:332
int BRAYmaterialId
Consistent representation for material ids.
Definition: BRAY_Types.h:588
getOption("OpenEXR.storage") storage
Definition: HDK_Image.dox:276
constexpr size_t BRAYmaxOptions< BRAY_PlaneProperty >()
Definition: BRAY_Types.h:451
BRAY_API BRAY_PropertyType BRAYpropertyType(const UT_StringRef &name)
Lookup a property type by name.
bool BRAYisValid(BRAY_PropertyType ty, int id)
Definition: BRAY_Types.h:378
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_ObjectProperty >()
Definition: BRAY_Types.h:464
BRAY_LPEPrefix
List of known LPE prefixes.
Definition: BRAY_Types.h:594
BRAY_API const UT_StringHolder & BRAYproperty(BRAY_PropertyType ty, int id)
Look up the enum given a name.
BRAY_API UT_StringHolder BRAYeventType(BRAY_EventType type)
Create a nice string for the event type mask.
constexpr BRAY_PropertyType BRAYpropertyType< BRAY_SceneOption >()
Definition: BRAY_Types.h:462
unsigned int uint
Definition: SYS_Types.h:45
BRAY_BucketOrder
Definition: BRAY_Types.h:504