blob: 64fcd23cc65cd76a2c0dfdfdde7a9a7e0035504c [file] [log] [blame]
Alex Sakhartchouk9996b752011-08-09 11:36:19 -07001/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/** @file rs_graphics.rsh
18 * \brief Renderscript graphics API
19 *
20 * A set of graphics functions used by Renderscript.
21 *
22 */
Jason Sams1b937f52010-06-09 14:26:16 -070023#ifndef __RS_GRAPHICS_RSH__
24#define __RS_GRAPHICS_RSH__
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080025
26// These are API 15 once it get official
27typedef enum {
28 RS_DEPTH_FUNC_ALWAYS,
29 RS_DEPTH_FUNC_LESS,
30 RS_DEPTH_FUNC_LEQUAL,
31 RS_DEPTH_FUNC_GREATER,
32 RS_DEPTH_FUNC_GEQUAL,
33 RS_DEPTH_FUNC_EQUAL,
Alex Sakhartchouk25a59d02011-12-29 11:17:38 -080034 RS_DEPTH_FUNC_NOTEQUAL,
35
36 RS_DEPTH_FUNC_INVALID = 100,
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080037} rs_depth_func;
38
39typedef enum {
40 RS_BLEND_SRC_ZERO, // 0
41 RS_BLEND_SRC_ONE, // 1
42 RS_BLEND_SRC_DST_COLOR, // 2
43 RS_BLEND_SRC_ONE_MINUS_DST_COLOR, // 3
44 RS_BLEND_SRC_SRC_ALPHA, // 4
45 RS_BLEND_SRC_ONE_MINUS_SRC_ALPHA, // 5
46 RS_BLEND_SRC_DST_ALPHA, // 6
47 RS_BLEND_SRC_ONE_MINUS_DST_ALPHA, // 7
Alex Sakhartchouk25a59d02011-12-29 11:17:38 -080048 RS_BLEND_SRC_SRC_ALPHA_SATURATE, // 8
49
50 RS_BLEND_SRC_INVALID = 100,
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080051} rs_blend_src_func;
52
53typedef enum {
54 RS_BLEND_DST_ZERO, // 0
55 RS_BLEND_DST_ONE, // 1
56 RS_BLEND_DST_SRC_COLOR, // 2
57 RS_BLEND_DST_ONE_MINUS_SRC_COLOR, // 3
58 RS_BLEND_DST_SRC_ALPHA, // 4
59 RS_BLEND_DST_ONE_MINUS_SRC_ALPHA, // 5
60 RS_BLEND_DST_DST_ALPHA, // 6
Alex Sakhartchouk25a59d02011-12-29 11:17:38 -080061 RS_BLEND_DST_ONE_MINUS_DST_ALPHA, // 7
62
63 RS_BLEND_DST_INVALID = 100,
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080064} rs_blend_dst_func;
65
66typedef enum {
67 RS_CULL_BACK,
68 RS_CULL_FRONT,
Alex Sakhartchouk25a59d02011-12-29 11:17:38 -080069 RS_CULL_NONE,
70
71 RS_CULL_INVALID = 100,
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080072} rs_cull_mode;
73
74typedef enum {
75 RS_SAMPLER_NEAREST,
76 RS_SAMPLER_LINEAR,
77 RS_SAMPLER_LINEAR_MIP_LINEAR,
78 RS_SAMPLER_WRAP,
79 RS_SAMPLER_CLAMP,
80 RS_SAMPLER_LINEAR_MIP_NEAREST,
Alex Sakhartchouk25a59d02011-12-29 11:17:38 -080081
82 RS_SAMPLER_INVALID = 100,
Alex Sakhartchouk5909d262011-11-17 15:59:13 -080083} rs_sampler_value;
84
Alex Sakhartchouk43253872011-09-28 15:23:18 -070085#if (defined(RS_VERSION) && (RS_VERSION >= 14))
Alex Sakhartchouk7d9c5ff2011-04-01 14:19:01 -070086/**
87 * Set the color target used for all subsequent rendering calls
88 * @param colorTarget
89 * @param slot
90 */
91extern void __attribute__((overloadable))
92 rsgBindColorTarget(rs_allocation colorTarget, uint slot);
93
94/**
95 * Clear the previously set color target
96 * @param slot
97 */
98extern void __attribute__((overloadable))
99 rsgClearColorTarget(uint slot);
100
101/**
102 * Set the depth target used for all subsequent rendering calls
103 * @param depthTarget
104 */
105extern void __attribute__((overloadable))
106 rsgBindDepthTarget(rs_allocation depthTarget);
107
108/**
109 * Clear the previously set depth target
110 */
111extern void __attribute__((overloadable))
112 rsgClearDepthTarget(void);
113
114/**
115 * Clear all color and depth targets and resume rendering into
116 * the framebuffer
117 */
118extern void __attribute__((overloadable))
119 rsgClearAllRenderTargets(void);
120
121/**
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700122 * Force Renderscript to finish all rendering commands
Alex Sakhartchouk7d9c5ff2011-04-01 14:19:01 -0700123 */
124extern uint __attribute__((overloadable))
125 rsgFinish(void);
Jason Samsf2bcce72010-03-26 15:33:42 -0700126
Alex Sakhartchouk43253872011-09-28 15:23:18 -0700127#endif //defined(RS_VERSION) && (RS_VERSION >= 14)
128
Jason Sams09aeb8a2011-01-28 15:49:07 -0800129/**
130 * Bind a new ProgramFragment to the rendering context.
131 *
132 * @param pf
133 */
134extern void __attribute__((overloadable))
135 rsgBindProgramFragment(rs_program_fragment pf);
136
137/**
138 * Bind a new ProgramStore to the rendering context.
139 *
140 * @param ps
141 */
142extern void __attribute__((overloadable))
143 rsgBindProgramStore(rs_program_store ps);
144
Alex Sakhartchouk5909d262011-11-17 15:59:13 -0800145
146/**
147 * @hide
148 * Get program store depth function
149 *
150 * @param ps
151 */
152extern rs_depth_func __attribute__((overloadable))
153 rsgProgramStoreGetDepthFunc(rs_program_store ps);
154
155/**
156 * @hide
157 * Get program store depth mask
158 *
159 * @param ps
160 */
161extern bool __attribute__((overloadable))
162 rsgProgramStoreGetDepthMask(rs_program_store ps);
163/**
164 * @hide
165 * Get program store red component color mask
166 *
167 * @param ps
168 */
169extern bool __attribute__((overloadable))
170 rsgProgramStoreGetColorMaskR(rs_program_store ps);
171
172/**
173 * @hide
174 * Get program store green component color mask
175 *
176 * @param ps
177 */
178extern bool __attribute__((overloadable))
179 rsgProgramStoreGetColorMaskG(rs_program_store ps);
180
181/**
182 * @hide
183 * Get program store blur component color mask
184 *
185 * @param ps
186 */
187extern bool __attribute__((overloadable))
188 rsgProgramStoreGetColorMaskB(rs_program_store ps);
189
190/**
191 * @hide
192 * Get program store alpha component color mask
193 *
194 * @param ps
195 */
196extern bool __attribute__((overloadable))
197 rsgProgramStoreGetColorMaskA(rs_program_store ps);
198
199/**
200 * @hide
201 * Get program store blend source function
202 *
203 * @param ps
204 */
205extern rs_blend_src_func __attribute__((overloadable))
206 rsgProgramStoreGetBlendSrcFunc(rs_program_store ps);
207
208/**
209 * @hide
210 * Get program store blend destination function
211 *
212 * @param ps
213 */
214extern rs_blend_dst_func __attribute__((overloadable))
215 rsgProgramStoreGetBlendDstFunc(rs_program_store ps);
216
217/**
218 * @hide
219 * Get program store dither state
220 *
221 * @param ps
222 */
223extern bool __attribute__((overloadable))
224 rsgProgramStoreGetDitherEnabled(rs_program_store ps);
225
226
Jason Sams09aeb8a2011-01-28 15:49:07 -0800227/**
228 * Bind a new ProgramVertex to the rendering context.
229 *
230 * @param pv
231 */
232extern void __attribute__((overloadable))
233 rsgBindProgramVertex(rs_program_vertex pv);
234
235/**
236 * Bind a new ProgramRaster to the rendering context.
237 *
238 * @param pr
239 */
240extern void __attribute__((overloadable))
241 rsgBindProgramRaster(rs_program_raster pr);
242
243/**
Alex Sakhartchouk5909d262011-11-17 15:59:13 -0800244 * @hide
245 * Get program raster point sprite state
246 *
247 * @param pr
248 */
249extern bool __attribute__((overloadable))
250 rsgProgramRasterGetPointSpriteEnabled(rs_program_raster pr);
251
252/**
253 * @hide
254 * Get program raster cull mode
255 *
256 * @param pr
257 */
258extern rs_cull_mode __attribute__((overloadable))
259 rsgProgramRasterGetCullMode(rs_program_raster pr);
260
261/**
Jason Sams09aeb8a2011-01-28 15:49:07 -0800262 * Bind a new Sampler object to a ProgramFragment. The sampler will
263 * operate on the texture bound at the matching slot.
264 *
265 * @param slot
266 */
Jason Sams73495472010-07-29 17:31:14 -0700267extern void __attribute__((overloadable))
268 rsgBindSampler(rs_program_fragment, uint slot, rs_sampler);
Jason Sams09aeb8a2011-01-28 15:49:07 -0800269
270/**
Alex Sakhartchouk5909d262011-11-17 15:59:13 -0800271 * @hide
272 * Get sampler minification value
273 *
274 * @param pr
275 */
276extern rs_sampler_value __attribute__((overloadable))
277 rsgSamplerGetMinification(rs_sampler s);
278
279/**
280 * @hide
281 * Get sampler magnification value
282 *
283 * @param pr
284 */
285extern rs_sampler_value __attribute__((overloadable))
286 rsgSamplerGetMagnification(rs_sampler s);
287
288/**
289 * @hide
290 * Get sampler wrap S value
291 *
292 * @param pr
293 */
294extern rs_sampler_value __attribute__((overloadable))
295 rsgSamplerGetWrapS(rs_sampler s);
296
297/**
298 * @hide
299 * Get sampler wrap T value
300 *
301 * @param pr
302 */
303extern rs_sampler_value __attribute__((overloadable))
304 rsgSamplerGetWrapT(rs_sampler s);
305
306/**
307 * @hide
308 * Get sampler anisotropy
309 *
310 * @param pr
311 */
312extern float __attribute__((overloadable))
313 rsgSamplerGetAnisotropy(rs_sampler s);
314
315/**
Jason Sams09aeb8a2011-01-28 15:49:07 -0800316 * Bind a new Allocation object to a ProgramFragment. The
317 * Allocation must be a valid texture for the Program. The sampling
318 * of the texture will be controled by the Sampler bound at the
319 * matching slot.
320 *
321 * @param slot
322 */
Jason Sams73495472010-07-29 17:31:14 -0700323extern void __attribute__((overloadable))
324 rsgBindTexture(rs_program_fragment, uint slot, rs_allocation);
Jason Sams51f36ab2010-03-18 14:36:05 -0700325
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700326/**
327 * Load the projection matrix for a currently bound fixed function
328 * vertex program. Calling this function with a custom vertex shader
329 * would result in an error.
330 * @param proj projection matrix
331 */
Jason Sams73495472010-07-29 17:31:14 -0700332extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700333 rsgProgramVertexLoadProjectionMatrix(const rs_matrix4x4 *proj);
334/**
335 * Load the model matrix for a currently bound fixed function
336 * vertex program. Calling this function with a custom vertex shader
337 * would result in an error.
338 * @param model model matrix
339 */
Jason Sams73495472010-07-29 17:31:14 -0700340extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700341 rsgProgramVertexLoadModelMatrix(const rs_matrix4x4 *model);
342/**
343 * Load the texture matrix for a currently bound fixed function
344 * vertex program. Calling this function with a custom vertex shader
345 * would result in an error.
346 * @param tex texture matrix
347 */
Jason Sams73495472010-07-29 17:31:14 -0700348extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700349 rsgProgramVertexLoadTextureMatrix(const rs_matrix4x4 *tex);
350/**
351 * Get the projection matrix for a currently bound fixed function
352 * vertex program. Calling this function with a custom vertex shader
353 * would result in an error.
354 * @param proj matrix to store the current projection matrix into
355 */
Jason Sams6445e522010-08-04 17:50:20 -0700356extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700357 rsgProgramVertexGetProjectionMatrix(rs_matrix4x4 *proj);
Alex Sakhartchouk95333f92010-08-16 17:40:10 -0700358
Jason Sams09aeb8a2011-01-28 15:49:07 -0800359/**
360 * Set the constant color for a fixed function emulation program.
361 *
362 * @param pf
363 * @param r
364 * @param g
365 * @param b
366 * @param a
367 */
Alex Sakhartchouk95333f92010-08-16 17:40:10 -0700368extern void __attribute__((overloadable))
Jason Sams09aeb8a2011-01-28 15:49:07 -0800369 rsgProgramFragmentConstantColor(rs_program_fragment pf, float r, float g, float b, float a);
Jason Sams6445e522010-08-04 17:50:20 -0700370
Jason Sams09aeb8a2011-01-28 15:49:07 -0800371/**
372 * Get the width of the current rendering surface.
373 *
374 * @return uint
375 */
Jason Sams73495472010-07-29 17:31:14 -0700376extern uint __attribute__((overloadable))
377 rsgGetWidth(void);
Jason Sams09aeb8a2011-01-28 15:49:07 -0800378
379/**
380 * Get the height of the current rendering surface.
381 *
382 * @return uint
383 */
Jason Sams73495472010-07-29 17:31:14 -0700384extern uint __attribute__((overloadable))
385 rsgGetHeight(void);
Jason Sams51f36ab2010-03-18 14:36:05 -0700386
Jason Samsb7e83bd2010-12-15 01:41:00 -0800387
Jason Sams09aeb8a2011-01-28 15:49:07 -0800388/**
389 * Sync the contents of an allocation from its SCRIPT memory space to its HW
390 * memory spaces.
391 *
392 * @param alloc
393 */
394extern void __attribute__((overloadable))
395 rsgAllocationSyncAll(rs_allocation alloc);
396
Alex Sakhartchouk43253872011-09-28 15:23:18 -0700397#if (defined(RS_VERSION) && (RS_VERSION >= 14))
398
Jason Sams09aeb8a2011-01-28 15:49:07 -0800399/**
Alex Sakhartchouk74a82792011-06-14 11:13:19 -0700400 * Sync the contents of an allocation from memory space
401 * specified by source.
402 *
403 * @param alloc
404 * @param source
405 */
406extern void __attribute__((overloadable))
407 rsgAllocationSyncAll(rs_allocation alloc,
408 rs_allocation_usage_type source);
409
Alex Sakhartchouk43253872011-09-28 15:23:18 -0700410#endif //defined(RS_VERSION) && (RS_VERSION >= 14)
411
Alex Sakhartchouk74a82792011-06-14 11:13:19 -0700412/**
Jason Sams09aeb8a2011-01-28 15:49:07 -0800413 * Low performance utility function for drawing a simple rectangle. Not
414 * intended for drawing large quantities of geometry.
415 *
416 * @param x1
417 * @param y1
418 * @param x2
419 * @param y2
420 * @param z
421 */
Jason Samsb7e83bd2010-12-15 01:41:00 -0800422extern void __attribute__((overloadable))
Jason Sams73495472010-07-29 17:31:14 -0700423 rsgDrawRect(float x1, float y1, float x2, float y2, float z);
Jason Sams09aeb8a2011-01-28 15:49:07 -0800424
425/**
426 * Low performance utility function for drawing a simple quad. Not intended for
427 * drawing large quantities of geometry.
428 *
429 * @param x1
430 * @param y1
431 * @param z1
432 * @param x2
433 * @param y2
434 * @param z2
435 * @param x3
436 * @param y3
437 * @param z3
438 * @param x4
439 * @param y4
440 * @param z4
441 */
Jason Sams73495472010-07-29 17:31:14 -0700442extern void __attribute__((overloadable))
443 rsgDrawQuad(float x1, float y1, float z1,
444 float x2, float y2, float z2,
445 float x3, float y3, float z3,
446 float x4, float y4, float z4);
Jason Sams09aeb8a2011-01-28 15:49:07 -0800447
448
449/**
450 * Low performance utility function for drawing a textured quad. Not intended
451 * for drawing large quantities of geometry.
452 *
453 * @param x1
454 * @param y1
455 * @param z1
456 * @param u1
457 * @param v1
458 * @param x2
459 * @param y2
460 * @param z2
461 * @param u2
462 * @param v2
463 * @param x3
464 * @param y3
465 * @param z3
466 * @param u3
467 * @param v3
468 * @param x4
469 * @param y4
470 * @param z4
471 * @param u4
472 * @param v4
473 */
Jason Sams73495472010-07-29 17:31:14 -0700474extern void __attribute__((overloadable))
475 rsgDrawQuadTexCoords(float x1, float y1, float z1, float u1, float v1,
476 float x2, float y2, float z2, float u2, float v2,
477 float x3, float y3, float z3, float u3, float v3,
478 float x4, float y4, float z4, float u4, float v4);
Jason Sams09aeb8a2011-01-28 15:49:07 -0800479
480
481/**
482 * Low performance function for drawing rectangles in screenspace. This
483 * function uses the default passthough ProgramVertex. Any bound ProgramVertex
484 * is ignored. This function has considerable overhead and should not be used
485 * for drawing in shipping applications.
486 *
487 * @param x
488 * @param y
489 * @param z
490 * @param w
491 * @param h
492 */
Jason Sams73495472010-07-29 17:31:14 -0700493extern void __attribute__((overloadable))
494 rsgDrawSpriteScreenspace(float x, float y, float z, float w, float h);
Jason Sams51f36ab2010-03-18 14:36:05 -0700495
Jason Sams9e0afb52011-10-31 13:23:43 -0700496extern void __attribute__((overloadable))
497 rsgDrawPath(rs_path p);
498
Jason Sams09aeb8a2011-01-28 15:49:07 -0800499/**
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700500 * Draw a mesh using the current context state. The whole mesh is
Jason Sams09aeb8a2011-01-28 15:49:07 -0800501 * rendered.
502 *
503 * @param ism
504 */
Jason Sams73495472010-07-29 17:31:14 -0700505extern void __attribute__((overloadable))
506 rsgDrawMesh(rs_mesh ism);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700507/**
508 * Draw part of a mesh using the current context state.
509 * @param ism mesh object to render
510 * @param primitiveIndex for meshes that contain multiple primitive groups
511 * this parameter specifies the index of the group to draw.
512 */
Jason Sams73495472010-07-29 17:31:14 -0700513extern void __attribute__((overloadable))
514 rsgDrawMesh(rs_mesh ism, uint primitiveIndex);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700515/**
516 * Draw specified index range of part of a mesh using the current context state.
517 * @param ism mesh object to render
518 * @param primitiveIndex for meshes that contain multiple primitive groups
519 * this parameter specifies the index of the group to draw.
520 * @param start starting index in the range
521 * @param len number of indices to draw
522 */
Jason Sams73495472010-07-29 17:31:14 -0700523extern void __attribute__((overloadable))
524 rsgDrawMesh(rs_mesh ism, uint primitiveIndex, uint start, uint len);
Alex Sakhartchouk4e9a7a82010-07-01 16:14:06 -0700525
Jason Sams09aeb8a2011-01-28 15:49:07 -0800526/**
527 * Clears the rendering surface to the specified color.
528 *
529 * @param r
530 * @param g
531 * @param b
532 * @param a
533 */
Jason Sams73495472010-07-29 17:31:14 -0700534extern void __attribute__((overloadable))
Jason Sams09aeb8a2011-01-28 15:49:07 -0800535 rsgClearColor(float r, float g, float b, float a);
536
537/**
538 * Clears the depth suface to the specified value.
Jason Sams09aeb8a2011-01-28 15:49:07 -0800539 */
Jason Sams73495472010-07-29 17:31:14 -0700540extern void __attribute__((overloadable))
Jason Sams09aeb8a2011-01-28 15:49:07 -0800541 rsgClearDepth(float value);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700542/**
543 * Draws text given a string and location
544 */
Jason Sams73495472010-07-29 17:31:14 -0700545extern void __attribute__((overloadable))
546 rsgDrawText(const char *, int x, int y);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700547/**
548 * \overload
549 */
Jason Sams73495472010-07-29 17:31:14 -0700550extern void __attribute__((overloadable))
551 rsgDrawText(rs_allocation, int x, int y);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700552/**
553 * Binds the font object to be used for all subsequent font rendering calls
554 * @param font object to bind
555 */
Jason Sams73495472010-07-29 17:31:14 -0700556extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700557 rsgBindFont(rs_font font);
558/**
559 * Sets the font color for all subsequent rendering calls
560 * @param r red component
561 * @param g green component
562 * @param b blue component
563 * @param a alpha component
564 */
Alex Sakhartchouk9fc9f032010-08-04 14:45:48 -0700565extern void __attribute__((overloadable))
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700566 rsgFontColor(float r, float g, float b, float a);
567/**
568 * Returns the bounding box of the text relative to (0, 0)
569 * Any of left, right, top, bottom could be NULL
570 */
Alex Sakhartchouk09c67352010-10-05 11:33:27 -0700571extern void __attribute__((overloadable))
572 rsgMeasureText(const char *, int *left, int *right, int *top, int *bottom);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700573/**
574 * \overload
575 */
Alex Sakhartchouk09c67352010-10-05 11:33:27 -0700576extern void __attribute__((overloadable))
577 rsgMeasureText(rs_allocation, int *left, int *right, int *top, int *bottom);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700578/**
579 * Computes an axis aligned bounding box of a mesh object
580 */
Alex Sakhartchoukba4aa5c2010-08-13 14:32:23 -0700581extern void __attribute__((overloadable))
582 rsgMeshComputeBoundingBox(rs_mesh mesh, float *minX, float *minY, float *minZ,
583 float *maxX, float *maxY, float *maxZ);
Alex Sakhartchouk9996b752011-08-09 11:36:19 -0700584/**
585 * \overload
586 */
Jason Sams399dc9e2010-10-15 17:57:07 -0700587__inline__ static void __attribute__((overloadable, always_inline))
Alex Sakhartchoukba4aa5c2010-08-13 14:32:23 -0700588rsgMeshComputeBoundingBox(rs_mesh mesh, float3 *bBoxMin, float3 *bBoxMax) {
589 float x1, y1, z1, x2, y2, z2;
590 rsgMeshComputeBoundingBox(mesh, &x1, &y1, &z1, &x2, &y2, &z2);
591 bBoxMin->x = x1;
592 bBoxMin->y = y1;
593 bBoxMin->z = z1;
594 bBoxMax->x = x2;
595 bBoxMax->y = y2;
596 bBoxMax->z = z2;
597}
598
Jason Sams1b937f52010-06-09 14:26:16 -0700599#endif
Jason Sams51f36ab2010-03-18 14:36:05 -0700600