HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GR_Defines.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: GR_Defines.h
7  *
8  * COMMENTS: Drawing definitions for the render library.
9  *
10  */
11 
12 
13 #ifndef __GR_Defines_h__
14 #define __GR_Defines_h__
15 
16 #include <UT/UT_VectorTypes.h>
17 
18 #define GR_DRAW_WIREFRAME 0x01
19 #define GR_DRAW_SHADED 0x02
20 
22 {
26 };
27 
28 // public shading modes the user can see
30 {
41 };
42 
43 // private shading modes the renderer uses
45 {
46  // Beauty modes
47  GR_RENDER_BEAUTY, // Shaded, lit
48  GR_RENDER_MATERIAL, // Shaded, material components for HQ Lighting
49  GR_RENDER_CONSTANT, // Solid, constant color/alpha
50 
51  // Wireframe modes
52  GR_RENDER_WIREFRAME, // Line outline
53  GR_RENDER_HIDDEN_LINE, // Line outline, hidden lines removed
54  GR_RENDER_XRAY_LINE, // Line outline, hidden lines dimmed
55  GR_RENDER_GHOST_LINE, // Line outline, BG color fill w/ghost color
56  GR_RENDER_MATERIAL_WIREFRAME, // Line outline pass following material pass
57 
58  // Utility modes
59  GR_RENDER_DEPTH, // Solid, depth only
60  GR_RENDER_DEPTH_CUBE, // Depth only, 6 faces of a cubemap
61  GR_RENDER_DEPTH_LINEAR, // Solid, depth only, non-projected depth
62  GR_RENDER_MATTE, // Solid, constant color/alpha, depth-check
63  GR_RENDER_XRAY, // XRay Render geometry
64  GR_RENDER_OBJECT_PICK, // Object selection
65  GR_RENDER_SHADER_AS_IS, // Render the geometry without setting a shader
66 
67  // Bounding box modes
68  GR_RENDER_BBOX, // Bounding boxes only
69 
70  GR_RENDER_POST_PASS, // A post-pass was requested by a primitive
71 
75 };
76 
77 // bitfield for modifying the basic GR_RenderMode. A flag may not apply to all
78 // render modes (like a FLAT_SHADED and GR_RENDER_WIREFRAME combination).
80 {
82 
93 
97 
104 
107 };
108 
110 {
111  GR_ALPHA_PASS_OPAQUE, // Only opaque objects
112  GR_ALPHA_PASS_NORMAL, // All transparent objects
113 
114  GR_ALPHA_PASS_ALL // Ignore alpha and render all objects.
115 };
116 
118 {
119  GR_SHADING_SOLID, // only draw solid objects
120  GR_SHADING_WIREFRAME, // only draw wireframe objects
121  GR_SHADING_ANY // ignore object shading mode; draw everything.
122 };
123 
125 {
129 };
130 
132 {
137 };
138 
140 {
142 
150 
157 
162 
163  GR_MAX_DECORATIONS, // max number of builtin decorations
164 
167 };
168 
170 {
175 };
176 
178 {
183 
185 };
186 
188 {
192 
194 };
195 
197 {
199 
205 };
206 
208 {
215 };
216 
218 {
226 };
227 
229 {
230  GR_PICK_NONE = 0x0000,
231 
232  // For single picking from a buffer.
233  GR_PICK_SINGLE = 0x0001,
234 
235  // For multi-component picking.
239 
240  // For picking in UV viewports.
243  GR_PICK_UV_FLAG = 0x0300,
244 
245  // Indicates we are picking to do snapping.
247  // Don't allow picking of selected components (mostly to avoid snapping
248  // to geometry that is being moved).
250  // Invert the sense of the box/lasso/paint pick (outside is selected)
251  GR_PICK_OUTSIDE = 0x4000,
252  // As if the surface was wireframe
253  GR_PICK_AS_WIRE = 0x8000,
254 
255  // As if the surface was one solid shape
256  GR_PICK_PACKED = 0x10000,
257 
258  // OpenGL 4.2 (GL_ARB_image_load_store) based picking.
259  GR_PICK_GL42 = 0x1000000
260 };
261 
263 {
264 public:
266  : myUseObjectNodes(true),
267  myPickNonSelectable(false),
268  myPickTemplates(false),
269  myPickGhosted(true),
270  myPickXray(false)
271  { }
272 
273  // Controls whether details must be associated with object nodes. If false,
274  // any displayed detail is considered an "object" for picking purposes.
276 
281 };
282 
283 // bitfield for why GR_Primitive::update() was called.
284 // be sure to update GUI_RenderCommon.h:GUI_SetupResult if the bitfield gets
285 // larger than 0x8000.
287 {
288  GR_UNCHANGED = 0x0,
289 
290  GR_GEO_CHANGED = 0x001,
302  GR_LOD_CHANGED = 0x1000,
309 };
310 
312 {
314 
319 
320  // These don't strictly exist as attribute types,
321  // but are useful for selections.
324 
325  GR_ALL_ATTRIBS = 0xFFFFFFFF
326 };
327 
329 {
333 };
334 
336 {
337  GR_BASE_PRIM_NORMAL, // most primitives are normal prim types.
338 
339  GR_BASE_PRIM_PACKED, // container primitives
344 
345  GR_BASE_PRIM_VISUALIZE // visualizer output
346 };
347 
349 {
354 };
355 
357 {
360 };
361 
362 #include <UT/UT_Array.h>
363 #include <UT/UT_Pair.h>
365 
366 #endif
GR_DecorRenderFlags
Definition: GR_Defines.h:207
GR_DecorationOverride
Definition: GR_Defines.h:196
GR_ParticleType
Definition: GR_Defines.h:131
GR_DecorFontType
Definition: GR_Defines.h:187
GR_AttribMask
Definition: GR_Defines.h:311
GR_AgentWireMode
Definition: GR_Defines.h:356
UT_Array< UT_Pair< UT_Matrix4D, UT_Vector2i > > GR_FrustumList
Definition: GR_Defines.h:364
GR_Decoration
Definition: GR_Defines.h:139
GR_AlphaPass
Definition: GR_Defines.h:109
GR_DecorVisibility
Definition: GR_Defines.h:169
GR_ShadingPass
Definition: GR_Defines.h:117
GR_RenderMode
Definition: GR_Defines.h:44
GR_BasePrimType
Definition: GR_Defines.h:335
GR_ShadingMode
Definition: GR_Defines.h:29
GR_DecorFontSize
Definition: GR_Defines.h:177
GR_UpdateReason
Definition: GR_Defines.h:286
GR_PrimAcceptResult
Definition: GR_Defines.h:328
GR_RenderFlags
Definition: GR_Defines.h:79
GR_RenderVersion
Definition: GR_Defines.h:21
GR_LightingPass
Definition: GR_Defines.h:124
GR_BoundaryMode
Definition: GR_Defines.h:348
GR_SelectMode
Definition: GR_Defines.h:217
GR_PickStyle
Definition: GR_Defines.h:228