2 * Mesa 3-D graphics library
5 * Copyright (C) 1999-2003 Brian Paul All Rights Reserved.
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 * Mesa/FX device driver. Interface to Glide3.
28 * Copyright (c) 2003 - Daniel Borca
29 * Email : dborca@users.sourceforge.net
30 * Web : http://www.geocities.com/dborca
40 #define DEBUG_TRAP_internal
45 /****************************************************************************\
47 \****************************************************************************/
49 #define TRAP_LOG trap_printf
51 __attribute__ ((format(printf
, 1, 2)))
53 int trap_printf (const char *format
, ...)
58 va_start(arg
, format
);
59 trap_file
= fopen("trap.log", "a");
60 if (trap_file
== NULL
) {
63 n
= vfprintf(trap_file
, format
, arg
);
68 #else /* DEBUG_TRAP */
70 #define TRAP_LOG(format, ...) do {} while (0)
72 #define TRAP_LOG 0 && (unsigned long)
74 #endif /* DEBUG_TRAP */
79 /****************************************************************************\
81 \****************************************************************************/
85 const char *TRP_BOOL (FxBool b
)
87 return b
? "FXTRUE" : "FXFALSE";
90 #define TRAP_CASE_STRING(name) case name: return #name
91 #define TRAP_NODEFAULT default: assert(0)
93 const char *TRP_PARAM (FxU32 mode
)
96 TRAP_CASE_STRING(GR_PARAM_DISABLE
);
97 TRAP_CASE_STRING(GR_PARAM_ENABLE
);
102 const char *TRP_VTX (FxU32 param
)
105 TRAP_CASE_STRING(GR_PARAM_XY
);
106 TRAP_CASE_STRING(GR_PARAM_Z
);
107 TRAP_CASE_STRING(GR_PARAM_W
);
108 TRAP_CASE_STRING(GR_PARAM_Q
);
109 TRAP_CASE_STRING(GR_PARAM_FOG_EXT
);
110 TRAP_CASE_STRING(GR_PARAM_A
);
111 TRAP_CASE_STRING(GR_PARAM_RGB
);
112 TRAP_CASE_STRING(GR_PARAM_PARGB
);
113 TRAP_CASE_STRING(GR_PARAM_ST0
);
114 TRAP_CASE_STRING(GR_PARAM_ST1
);
115 TRAP_CASE_STRING(GR_PARAM_ST2
);
116 TRAP_CASE_STRING(GR_PARAM_Q0
);
117 TRAP_CASE_STRING(GR_PARAM_Q1
);
118 TRAP_CASE_STRING(GR_PARAM_Q2
);
123 const char *TRP_ARRAY (FxU32 mode
)
126 TRAP_CASE_STRING(GR_POINTS
);
127 TRAP_CASE_STRING(GR_LINE_STRIP
);
128 TRAP_CASE_STRING(GR_LINES
);
129 TRAP_CASE_STRING(GR_POLYGON
);
130 TRAP_CASE_STRING(GR_TRIANGLE_STRIP
);
131 TRAP_CASE_STRING(GR_TRIANGLE_FAN
);
132 TRAP_CASE_STRING(GR_TRIANGLES
);
133 TRAP_CASE_STRING(GR_TRIANGLE_STRIP_CONTINUE
);
134 TRAP_CASE_STRING(GR_TRIANGLE_FAN_CONTINUE
);
139 const char *TRP_BUFFER (GrBuffer_t buffer
)
142 TRAP_CASE_STRING(GR_BUFFER_FRONTBUFFER
);
143 TRAP_CASE_STRING(GR_BUFFER_BACKBUFFER
);
144 TRAP_CASE_STRING(GR_BUFFER_AUXBUFFER
);
145 TRAP_CASE_STRING(GR_BUFFER_DEPTHBUFFER
);
146 TRAP_CASE_STRING(GR_BUFFER_ALPHABUFFER
);
147 TRAP_CASE_STRING(GR_BUFFER_TRIPLEBUFFER
);
148 TRAP_CASE_STRING(GR_BUFFER_TEXTUREBUFFER_EXT
);
149 TRAP_CASE_STRING(GR_BUFFER_TEXTUREAUXBUFFER_EXT
);
154 const char *TRP_ORIGIN (GrOriginLocation_t origin_location
)
156 switch (origin_location
) {
157 TRAP_CASE_STRING(GR_ORIGIN_UPPER_LEFT
);
158 TRAP_CASE_STRING(GR_ORIGIN_LOWER_LEFT
);
159 TRAP_CASE_STRING(GR_ORIGIN_ANY
);
164 const char *TRP_REFRESH (GrScreenRefresh_t refresh_rate
)
166 switch (refresh_rate
) {
167 TRAP_CASE_STRING(GR_REFRESH_60Hz
);
168 TRAP_CASE_STRING(GR_REFRESH_70Hz
);
169 TRAP_CASE_STRING(GR_REFRESH_72Hz
);
170 TRAP_CASE_STRING(GR_REFRESH_75Hz
);
171 TRAP_CASE_STRING(GR_REFRESH_80Hz
);
172 TRAP_CASE_STRING(GR_REFRESH_90Hz
);
173 TRAP_CASE_STRING(GR_REFRESH_100Hz
);
174 TRAP_CASE_STRING(GR_REFRESH_85Hz
);
175 TRAP_CASE_STRING(GR_REFRESH_120Hz
);
176 TRAP_CASE_STRING(GR_REFRESH_NONE
);
181 const char *TRP_COLFMT (GrColorFormat_t color_format
)
183 switch (color_format
) {
184 TRAP_CASE_STRING(GR_COLORFORMAT_ARGB
);
185 TRAP_CASE_STRING(GR_COLORFORMAT_ABGR
);
186 TRAP_CASE_STRING(GR_COLORFORMAT_RGBA
);
187 TRAP_CASE_STRING(GR_COLORFORMAT_BGRA
);
192 const char *TRP_RESOLUTION (GrScreenResolution_t screen_resolution
)
194 switch (screen_resolution
) {
195 TRAP_CASE_STRING(GR_RESOLUTION_320x200
);
196 TRAP_CASE_STRING(GR_RESOLUTION_320x240
);
197 TRAP_CASE_STRING(GR_RESOLUTION_400x256
);
198 TRAP_CASE_STRING(GR_RESOLUTION_512x384
);
199 TRAP_CASE_STRING(GR_RESOLUTION_640x200
);
200 TRAP_CASE_STRING(GR_RESOLUTION_640x350
);
201 TRAP_CASE_STRING(GR_RESOLUTION_640x400
);
202 TRAP_CASE_STRING(GR_RESOLUTION_640x480
);
203 TRAP_CASE_STRING(GR_RESOLUTION_800x600
);
204 TRAP_CASE_STRING(GR_RESOLUTION_960x720
);
205 TRAP_CASE_STRING(GR_RESOLUTION_856x480
);
206 TRAP_CASE_STRING(GR_RESOLUTION_512x256
);
207 TRAP_CASE_STRING(GR_RESOLUTION_1024x768
);
208 TRAP_CASE_STRING(GR_RESOLUTION_1280x1024
);
209 TRAP_CASE_STRING(GR_RESOLUTION_1600x1200
);
210 TRAP_CASE_STRING(GR_RESOLUTION_400x300
);
211 TRAP_CASE_STRING(GR_RESOLUTION_1152x864
);
212 TRAP_CASE_STRING(GR_RESOLUTION_1280x960
);
213 TRAP_CASE_STRING(GR_RESOLUTION_1600x1024
);
214 TRAP_CASE_STRING(GR_RESOLUTION_1792x1344
);
215 TRAP_CASE_STRING(GR_RESOLUTION_1856x1392
);
216 TRAP_CASE_STRING(GR_RESOLUTION_1920x1440
);
217 TRAP_CASE_STRING(GR_RESOLUTION_2048x1536
);
218 TRAP_CASE_STRING(GR_RESOLUTION_2048x2048
);
219 TRAP_CASE_STRING(GR_RESOLUTION_NONE
);
224 const char *TRP_BLEND (GrAlphaBlendFnc_t func
)
227 TRAP_CASE_STRING(GR_BLEND_ZERO
);
228 TRAP_CASE_STRING(GR_BLEND_SRC_ALPHA
);
229 TRAP_CASE_STRING(GR_BLEND_SRC_COLOR
);
230 /*TRAP_CASE_STRING(GR_BLEND_DST_COLOR); ==GR_BLEND_SRC_COLOR*/
231 TRAP_CASE_STRING(GR_BLEND_DST_ALPHA
);
232 TRAP_CASE_STRING(GR_BLEND_ONE
);
233 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_ALPHA
);
234 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_COLOR
);
235 /*TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_COLOR); ==GR_BLEND_ONE_MINUS_SRC_COLOR*/
236 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_ALPHA
);
237 TRAP_CASE_STRING(GR_BLEND_RESERVED_8
);
238 TRAP_CASE_STRING(GR_BLEND_RESERVED_9
);
239 TRAP_CASE_STRING(GR_BLEND_RESERVED_A
);
240 TRAP_CASE_STRING(GR_BLEND_RESERVED_B
);
241 TRAP_CASE_STRING(GR_BLEND_RESERVED_C
);
242 TRAP_CASE_STRING(GR_BLEND_RESERVED_D
);
243 TRAP_CASE_STRING(GR_BLEND_RESERVED_E
);
244 TRAP_CASE_STRING(GR_BLEND_ALPHA_SATURATE
);
245 /*TRAP_CASE_STRING(GR_BLEND_PREFOG_COLOR); ==GR_BLEND_ALPHA_SATURATE*/
250 const char *TRP_CMBFUNC (GrCombineFunction_t cfunc
)
253 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_ZERO
);
254 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_NONE); ==GR_COMBINE_FUNCTION_ZERO*/
255 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL
);
256 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL_ALPHA
);
257 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER
);
258 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_OTHER); ==GR_COMBINE_FUNCTION_SCALE_OTHER*/
259 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL
);
260 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL_ALPHA
);
261 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL
);
262 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL
);
263 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND); ==GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL*/
264 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
265 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL
);
266 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_LOCAL); ==GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL*/
267 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
272 const char *TRP_CMBFACT (GrCombineFactor_t cfactor
)
275 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ZERO
);
276 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_NONE); ==GR_COMBINE_FACTOR_ZERO*/
277 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL
);
278 TRAP_CASE_STRING(GR_COMBINE_FACTOR_OTHER_ALPHA
);
279 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL_ALPHA
);
280 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_ALPHA
);
281 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_RGB
);
282 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_TEXTURE_ALPHA*/
283 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOD_FRACTION); ==GR_COMBINE_FACTOR_TEXTURE_RGB ???*/
284 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE
);
285 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL
);
286 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_OTHER_ALPHA
);
287 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL_ALPHA
);
288 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA
);
289 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA*/
290 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOD_FRACTION
);
295 const char *TRP_CMBLOCAL (GrCombineLocal_t clocal
)
298 TRAP_CASE_STRING(GR_COMBINE_LOCAL_ITERATED
);
299 TRAP_CASE_STRING(GR_COMBINE_LOCAL_CONSTANT
);
300 /*TRAP_CASE_STRING(GR_COMBINE_LOCAL_NONE); ==GR_COMBINE_LOCAL_CONSTANT*/
301 TRAP_CASE_STRING(GR_COMBINE_LOCAL_DEPTH
);
306 const char *TRP_CMBOTHER (GrCombineOther_t cother
)
309 TRAP_CASE_STRING(GR_COMBINE_OTHER_ITERATED
);
310 TRAP_CASE_STRING(GR_COMBINE_OTHER_TEXTURE
);
311 TRAP_CASE_STRING(GR_COMBINE_OTHER_CONSTANT
);
312 /*TRAP_CASE_STRING(GR_COMBINE_OTHER_NONE); ==GR_COMBINE_OTHER_CONSTANT*/
317 const char *TRP_CMPFUNC (GrCmpFnc_t function
)
320 TRAP_CASE_STRING(GR_CMP_NEVER
);
321 TRAP_CASE_STRING(GR_CMP_LESS
);
322 TRAP_CASE_STRING(GR_CMP_EQUAL
);
323 TRAP_CASE_STRING(GR_CMP_LEQUAL
);
324 TRAP_CASE_STRING(GR_CMP_GREATER
);
325 TRAP_CASE_STRING(GR_CMP_NOTEQUAL
);
326 TRAP_CASE_STRING(GR_CMP_GEQUAL
);
327 TRAP_CASE_STRING(GR_CMP_ALWAYS
);
332 const char *TRP_CKMODE (GrChromakeyMode_t mode
)
335 TRAP_CASE_STRING(GR_CHROMAKEY_DISABLE
);
336 TRAP_CASE_STRING(GR_CHROMAKEY_ENABLE
);
341 const char *TRP_CULLMODE (GrCullMode_t mode
)
344 TRAP_CASE_STRING(GR_CULL_DISABLE
);
345 TRAP_CASE_STRING(GR_CULL_NEGATIVE
);
346 TRAP_CASE_STRING(GR_CULL_POSITIVE
);
351 const char *TRP_DEPTHMODE (GrDepthBufferMode_t mode
)
354 TRAP_CASE_STRING(GR_DEPTHBUFFER_DISABLE
);
355 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER
);
356 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER
);
357 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER_COMPARE_TO_BIAS
);
358 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER_COMPARE_TO_BIAS
);
363 const char *TRP_DITHERMODE (GrDitherMode_t mode
)
366 TRAP_CASE_STRING(GR_DITHER_DISABLE
);
367 TRAP_CASE_STRING(GR_DITHER_2x2
);
368 TRAP_CASE_STRING(GR_DITHER_4x4
);
373 const char *TRP_FOGMODE (GrFogMode_t mode
)
376 TRAP_CASE_STRING(GR_FOG_DISABLE
);
377 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_FOGCOORD_EXT
);
378 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_Q
);
379 /*TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_W); ==GR_FOG_WITH_TABLE_ON_Q*/
380 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_Z
);
381 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_ALPHA_EXT
);
382 TRAP_CASE_STRING(GR_FOG_MULT2
);
383 TRAP_CASE_STRING(GR_FOG_ADD2
);
388 const char *TRP_GETNAME (FxU32 pname
)
391 TRAP_CASE_STRING(GR_BITS_DEPTH
);
392 TRAP_CASE_STRING(GR_BITS_RGBA
);
393 TRAP_CASE_STRING(GR_FIFO_FULLNESS
);
394 TRAP_CASE_STRING(GR_FOG_TABLE_ENTRIES
);
395 TRAP_CASE_STRING(GR_GAMMA_TABLE_ENTRIES
);
396 TRAP_CASE_STRING(GR_GLIDE_STATE_SIZE
);
397 TRAP_CASE_STRING(GR_GLIDE_VERTEXLAYOUT_SIZE
);
398 TRAP_CASE_STRING(GR_IS_BUSY
);
399 TRAP_CASE_STRING(GR_LFB_PIXEL_PIPE
);
400 TRAP_CASE_STRING(GR_MAX_TEXTURE_SIZE
);
401 TRAP_CASE_STRING(GR_MAX_TEXTURE_ASPECT_RATIO
);
402 TRAP_CASE_STRING(GR_MEMORY_FB
);
403 TRAP_CASE_STRING(GR_MEMORY_TMU
);
404 TRAP_CASE_STRING(GR_MEMORY_UMA
);
405 TRAP_CASE_STRING(GR_NUM_BOARDS
);
406 TRAP_CASE_STRING(GR_NON_POWER_OF_TWO_TEXTURES
);
407 TRAP_CASE_STRING(GR_NUM_FB
);
408 TRAP_CASE_STRING(GR_NUM_SWAP_HISTORY_BUFFER
);
409 TRAP_CASE_STRING(GR_NUM_TMU
);
410 TRAP_CASE_STRING(GR_PENDING_BUFFERSWAPS
);
411 TRAP_CASE_STRING(GR_REVISION_FB
);
412 TRAP_CASE_STRING(GR_REVISION_TMU
);
413 TRAP_CASE_STRING(GR_STATS_LINES
);
414 TRAP_CASE_STRING(GR_STATS_PIXELS_AFUNC_FAIL
);
415 TRAP_CASE_STRING(GR_STATS_PIXELS_CHROMA_FAIL
);
416 TRAP_CASE_STRING(GR_STATS_PIXELS_DEPTHFUNC_FAIL
);
417 TRAP_CASE_STRING(GR_STATS_PIXELS_IN
);
418 TRAP_CASE_STRING(GR_STATS_PIXELS_OUT
);
419 TRAP_CASE_STRING(GR_STATS_PIXELS
);
420 TRAP_CASE_STRING(GR_STATS_POINTS
);
421 TRAP_CASE_STRING(GR_STATS_TRIANGLES_IN
);
422 TRAP_CASE_STRING(GR_STATS_TRIANGLES_OUT
);
423 TRAP_CASE_STRING(GR_STATS_TRIANGLES
);
424 TRAP_CASE_STRING(GR_SWAP_HISTORY
);
425 TRAP_CASE_STRING(GR_SUPPORTS_PASSTHRU
);
426 TRAP_CASE_STRING(GR_TEXTURE_ALIGN
);
427 TRAP_CASE_STRING(GR_VIDEO_POSITION
);
428 TRAP_CASE_STRING(GR_VIEWPORT
);
429 TRAP_CASE_STRING(GR_WDEPTH_MIN_MAX
);
430 TRAP_CASE_STRING(GR_ZDEPTH_MIN_MAX
);
431 TRAP_CASE_STRING(GR_VERTEX_PARAMETER
);
432 TRAP_CASE_STRING(GR_BITS_GAMMA
);
433 TRAP_CASE_STRING(GR_GET_RESERVED_1
);
438 const char *TRP_GETSTRING (FxU32 pname
)
441 TRAP_CASE_STRING(GR_EXTENSION
);
442 TRAP_CASE_STRING(GR_HARDWARE
);
443 TRAP_CASE_STRING(GR_RENDERER
);
444 TRAP_CASE_STRING(GR_VENDOR
);
445 TRAP_CASE_STRING(GR_VERSION
);
450 const char *TRP_ENABLE (GrEnableMode_t mode
)
453 TRAP_CASE_STRING(GR_AA_ORDERED
);
454 TRAP_CASE_STRING(GR_ALLOW_MIPMAP_DITHER
);
455 TRAP_CASE_STRING(GR_PASSTHRU
);
456 TRAP_CASE_STRING(GR_SHAMELESS_PLUG
);
457 TRAP_CASE_STRING(GR_VIDEO_SMOOTHING
);
458 TRAP_CASE_STRING(GR_TEXTURE_UMA_EXT
);
459 TRAP_CASE_STRING(GR_STENCIL_MODE_EXT
);
460 TRAP_CASE_STRING(GR_OPENGL_MODE_EXT
);
465 const char *TRP_COORD (GrCoordinateSpaceMode_t mode
)
468 TRAP_CASE_STRING(GR_WINDOW_COORDS
);
469 TRAP_CASE_STRING(GR_CLIP_COORDS
);
474 const char *TRP_STIPPLEMODE (GrStippleMode_t mode
)
477 TRAP_CASE_STRING(GR_STIPPLE_DISABLE
);
478 TRAP_CASE_STRING(GR_STIPPLE_PATTERN
);
479 TRAP_CASE_STRING(GR_STIPPLE_ROTATE
);
484 const char *TRP_LODLEVEL (GrLOD_t lod
)
487 TRAP_CASE_STRING(GR_LOD_LOG2_2048
);
488 TRAP_CASE_STRING(GR_LOD_LOG2_1024
);
489 TRAP_CASE_STRING(GR_LOD_LOG2_512
);
490 TRAP_CASE_STRING(GR_LOD_LOG2_256
);
491 TRAP_CASE_STRING(GR_LOD_LOG2_128
);
492 TRAP_CASE_STRING(GR_LOD_LOG2_64
);
493 TRAP_CASE_STRING(GR_LOD_LOG2_32
);
494 TRAP_CASE_STRING(GR_LOD_LOG2_16
);
495 TRAP_CASE_STRING(GR_LOD_LOG2_8
);
496 TRAP_CASE_STRING(GR_LOD_LOG2_4
);
497 TRAP_CASE_STRING(GR_LOD_LOG2_2
);
498 TRAP_CASE_STRING(GR_LOD_LOG2_1
);
503 const char *TRP_ASPECTRATIO (GrAspectRatio_t aspect
)
506 TRAP_CASE_STRING(GR_ASPECT_LOG2_8x1
);
507 TRAP_CASE_STRING(GR_ASPECT_LOG2_4x1
);
508 TRAP_CASE_STRING(GR_ASPECT_LOG2_2x1
);
509 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x1
);
510 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x2
);
511 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x4
);
512 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x8
);
517 const char *TRP_TEXFMT (GrTextureFormat_t fmt
)
520 TRAP_CASE_STRING(GR_TEXFMT_8BIT
);
521 /*TRAP_CASE_STRING(GR_TEXFMT_RGB_332); ==GR_TEXFMT_8BIT*/
522 TRAP_CASE_STRING(GR_TEXFMT_YIQ_422
);
523 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_8
);
524 TRAP_CASE_STRING(GR_TEXFMT_INTENSITY_8
);
525 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_44
);
526 TRAP_CASE_STRING(GR_TEXFMT_P_8
);
527 TRAP_CASE_STRING(GR_TEXFMT_RSVD0
);
528 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666); ==GR_TEXFMT_RSVD0*/
529 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666_EXT); ==GR_TEXFMT_RSVD0*/
530 TRAP_CASE_STRING(GR_TEXFMT_RSVD1
);
531 TRAP_CASE_STRING(GR_TEXFMT_16BIT
);
532 /*TRAP_CASE_STRING(GR_TEXFMT_ARGB_8332); ==GR_TEXFMT_16BIT*/
533 TRAP_CASE_STRING(GR_TEXFMT_AYIQ_8422
);
534 TRAP_CASE_STRING(GR_TEXFMT_RGB_565
);
535 TRAP_CASE_STRING(GR_TEXFMT_ARGB_1555
);
536 TRAP_CASE_STRING(GR_TEXFMT_ARGB_4444
);
537 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_88
);
538 TRAP_CASE_STRING(GR_TEXFMT_AP_88
);
539 TRAP_CASE_STRING(GR_TEXFMT_RSVD2
);
540 /*TRAP_CASE_STRING(GR_TEXFMT_RSVD4); ==GR_TEXFMT_RSVD2*/
541 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_FXT1
);
542 TRAP_CASE_STRING(GR_TEXFMT_ARGB_8888
);
543 TRAP_CASE_STRING(GR_TEXFMT_YUYV_422
);
544 TRAP_CASE_STRING(GR_TEXFMT_UYVY_422
);
545 TRAP_CASE_STRING(GR_TEXFMT_AYUV_444
);
546 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT1
);
547 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT2
);
548 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT3
);
549 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT4
);
550 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT5
);
551 TRAP_CASE_STRING(GR_TEXTFMT_RGB_888
);
556 const char *TRP_EVENODD (FxU32 evenOdd
)
559 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_EVEN
);
560 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_ODD
);
561 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_BOTH
);
566 const char *TRP_NCC (GrNCCTable_t table
)
569 TRAP_CASE_STRING(GR_NCCTABLE_NCC0
);
570 TRAP_CASE_STRING(GR_NCCTABLE_NCC1
);
575 const char *TRP_CLAMPMODE (GrTextureClampMode_t clampmode
)
578 TRAP_CASE_STRING(GR_TEXTURECLAMP_WRAP
);
579 TRAP_CASE_STRING(GR_TEXTURECLAMP_CLAMP
);
580 TRAP_CASE_STRING(GR_TEXTURECLAMP_MIRROR_EXT
);
585 const char *TRP_TEXFILTER (GrTextureFilterMode_t filter_mode
)
587 switch (filter_mode
) {
588 TRAP_CASE_STRING(GR_TEXTUREFILTER_POINT_SAMPLED
);
589 TRAP_CASE_STRING(GR_TEXTUREFILTER_BILINEAR
);
594 const char *TRP_TABLE (GrTexTable_t type
)
597 TRAP_CASE_STRING(GR_TEXTABLE_NCC0
);
598 TRAP_CASE_STRING(GR_TEXTABLE_NCC1
);
599 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE
);
600 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE_6666_EXT
);
605 const char *TRP_MIPMODE (GrMipMapMode_t mode
)
608 TRAP_CASE_STRING(GR_MIPMAP_DISABLE
);
609 TRAP_CASE_STRING(GR_MIPMAP_NEAREST
);
610 TRAP_CASE_STRING(GR_MIPMAP_NEAREST_DITHER
);
615 const char *TRP_TEXBASERANGE (GrTexBaseRange_t range
)
618 TRAP_CASE_STRING(GR_TEXBASE_2048
);
619 TRAP_CASE_STRING(GR_TEXBASE_1024
);
620 TRAP_CASE_STRING(GR_TEXBASE_512
);
621 TRAP_CASE_STRING(GR_TEXBASE_256_TO_1
);
622 TRAP_CASE_STRING(GR_TEXBASE_256
);
623 TRAP_CASE_STRING(GR_TEXBASE_128
);
624 TRAP_CASE_STRING(GR_TEXBASE_64
);
625 TRAP_CASE_STRING(GR_TEXBASE_32_TO_1
);
630 const char *TRP_LOCKTYPE (GrLock_t type
)
633 TRAP_CASE_STRING(GR_LFB_READ_ONLY
);
634 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY
);
635 /*TRAP_CASE_STRING(GR_LFB_IDLE); ==GR_LFB_READ_ONLY*/
636 TRAP_CASE_STRING(GR_LFB_NOIDLE
);
637 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY_EXPLICIT_EXT
);
642 const char *TRP_WRITEMODE (GrLfbWriteMode_t writeMode
)
645 TRAP_CASE_STRING(GR_LFBWRITEMODE_565
);
646 TRAP_CASE_STRING(GR_LFBWRITEMODE_555
);
647 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555
);
648 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED1
);
649 TRAP_CASE_STRING(GR_LFBWRITEMODE_888
);
650 TRAP_CASE_STRING(GR_LFBWRITEMODE_8888
);
651 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED2
);
652 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED3
);
653 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
);
654 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED5
);
655 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED6
);
656 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED7
);
657 TRAP_CASE_STRING(GR_LFBWRITEMODE_565_DEPTH
);
658 TRAP_CASE_STRING(GR_LFBWRITEMODE_555_DEPTH
);
659 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555_DEPTH
);
660 TRAP_CASE_STRING(GR_LFBWRITEMODE_ZA16
);
661 TRAP_CASE_STRING(GR_LFBWRITEMODE_ANY
);
666 const char *TRP_SRCFMT (GrLfbSrcFmt_t src_format
)
668 switch (src_format
) {
669 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565
);
670 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555
);
671 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555
);
672 TRAP_CASE_STRING(GR_LFB_SRC_FMT_888
);
673 TRAP_CASE_STRING(GR_LFB_SRC_FMT_8888
);
674 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565_DEPTH
);
675 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555_DEPTH
);
676 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555_DEPTH
);
677 TRAP_CASE_STRING(GR_LFB_SRC_FMT_ZA16
);
678 TRAP_CASE_STRING(GR_LFB_SRC_FMT_RLE16
);
679 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
); /*???*/
684 const char *TRP_CRMODE (GrChromaRangeMode_t mode
)
687 TRAP_CASE_STRING(GR_CHROMARANGE_DISABLE_EXT
);
688 /*TRAP_CASE_STRING(GR_CHROMARANGE_RGB_ALL_EXT); ==GR_CHROMARANGE_DISABLE_EXT*/
689 TRAP_CASE_STRING(GR_CHROMARANGE_ENABLE_EXT
);
694 const char *TRP_PIXFMT (GrPixelFormat_t pixelformat
)
696 switch (pixelformat
) {
697 TRAP_CASE_STRING(GR_PIXFMT_I_8
);
698 TRAP_CASE_STRING(GR_PIXFMT_AI_88
);
699 TRAP_CASE_STRING(GR_PIXFMT_RGB_565
);
700 TRAP_CASE_STRING(GR_PIXFMT_ARGB_1555
);
701 TRAP_CASE_STRING(GR_PIXFMT_ARGB_8888
);
702 TRAP_CASE_STRING(GR_PIXFMT_AA_2_RGB_565
);
703 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_1555
);
704 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_8888
);
705 TRAP_CASE_STRING(GR_PIXFMT_AA_4_RGB_565
);
706 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_1555
);
707 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_8888
);
708 TRAP_CASE_STRING(GR_PIXFMT_AA_8_RGB_565
);
709 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_1555
);
710 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_8888
);
715 const char *TRP_STENCILOP (GrStencilOp_t op
)
718 TRAP_CASE_STRING(GR_STENCILOP_KEEP
);
719 TRAP_CASE_STRING(GR_STENCILOP_ZERO
);
720 TRAP_CASE_STRING(GR_STENCILOP_REPLACE
);
721 TRAP_CASE_STRING(GR_STENCILOP_INCR_CLAMP
);
722 TRAP_CASE_STRING(GR_STENCILOP_DECR_CLAMP
);
723 TRAP_CASE_STRING(GR_STENCILOP_INVERT
);
724 TRAP_CASE_STRING(GR_STENCILOP_INCR_WRAP
);
725 TRAP_CASE_STRING(GR_STENCILOP_DECR_WRAP
);
730 const char *TRP_BLENDOP (GrAlphaBlendOp_t op
)
733 TRAP_CASE_STRING(GR_BLEND_OP_ADD
);
734 TRAP_CASE_STRING(GR_BLEND_OP_SUB
);
735 TRAP_CASE_STRING(GR_BLEND_OP_REVSUB
);
736 TRAP_CASE_STRING(GR_BLEND_SAME_COLOR_EXT
);
737 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SAME_COLOR_EXT
);
742 const char *TRP_CU (GrCCUColor_t a
)
745 TRAP_CASE_STRING(GR_CMBX_ZERO
);
746 TRAP_CASE_STRING(GR_CMBX_TEXTURE_ALPHA
);
747 TRAP_CASE_STRING(GR_CMBX_ALOCAL
);
748 TRAP_CASE_STRING(GR_CMBX_AOTHER
);
749 TRAP_CASE_STRING(GR_CMBX_B
);
750 TRAP_CASE_STRING(GR_CMBX_CONSTANT_ALPHA
);
751 TRAP_CASE_STRING(GR_CMBX_CONSTANT_COLOR
);
752 TRAP_CASE_STRING(GR_CMBX_DETAIL_FACTOR
);
753 TRAP_CASE_STRING(GR_CMBX_ITALPHA
);
754 TRAP_CASE_STRING(GR_CMBX_ITRGB
);
755 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_ALPHA
);
756 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_RGB
);
757 TRAP_CASE_STRING(GR_CMBX_LOD_FRAC
);
758 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_ALPHA
);
759 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_RGB
);
760 TRAP_CASE_STRING(GR_CMBX_TEXTURE_RGB
);
761 TRAP_CASE_STRING(GR_CMBX_TMU_CALPHA
);
762 TRAP_CASE_STRING(GR_CMBX_TMU_CCOLOR
);
767 const char *TRP_CMBMODE (GrCombineMode_t a_mode
)
770 TRAP_CASE_STRING(GR_FUNC_MODE_ZERO
);
771 TRAP_CASE_STRING(GR_FUNC_MODE_X
);
772 TRAP_CASE_STRING(GR_FUNC_MODE_ONE_MINUS_X
);
773 TRAP_CASE_STRING(GR_FUNC_MODE_NEGATIVE_X
);
774 TRAP_CASE_STRING(GR_FUNC_MODE_X_MINUS_HALF
);
779 const char *TRP_TMU (GrChipID_t tmu
)
782 TRAP_CASE_STRING(GR_TMU0
);
783 TRAP_CASE_STRING(GR_TMU1
);
790 /****************************************************************************\
792 \****************************************************************************/
797 char * (FX_CALL
*real_grGetRegistryOrEnvironmentStringExt
) (char *theEntry
);
798 void (FX_CALL
*real_grGetGammaTableExt
) (FxU32 nentries
, FxU32
*red
, FxU32
*green
, FxU32
*blue
);
799 void (FX_CALL
*real_grChromaRangeModeExt
) (GrChromakeyMode_t mode
);
800 void (FX_CALL
*real_grChromaRangeExt
) (GrColor_t color
, GrColor_t range
, GrChromaRangeMode_t match_mode
);
801 void (FX_CALL
*real_grTexChromaModeExt
) (GrChipID_t tmu
, GrChromakeyMode_t mode
);
802 void (FX_CALL
*real_grTexChromaRangeExt
) (GrChipID_t tmu
, GrColor_t min
, GrColor_t max
, GrTexChromakeyMode_t mode
);
805 void (FX_CALL
*real_grTextureBufferExt
) (GrChipID_t tmu
, FxU32 startAddress
, GrLOD_t thisLOD
, GrLOD_t largeLOD
, GrAspectRatio_t aspectRatio
, GrTextureFormat_t format
, FxU32 odd_even_mask
);
806 void (FX_CALL
*real_grTextureAuxBufferExt
) (GrChipID_t tmu
, FxU32 startAddress
, GrLOD_t thisLOD
, GrLOD_t largeLOD
, GrAspectRatio_t aspectRatio
, GrTextureFormat_t format
, FxU32 odd_even_mask
);
807 void (FX_CALL
*real_grAuxBufferExt
) (GrBuffer_t buffer
);
810 GrContext_t (FX_CALL
*real_grSstWinOpenExt
) (FxU32 hWnd
, GrScreenResolution_t resolution
, GrScreenRefresh_t refresh
, GrColorFormat_t format
, GrOriginLocation_t origin
, GrPixelFormat_t pixelformat
, int nColBuffers
, int nAuxBuffers
);
811 void (FX_CALL
*real_grStencilFuncExt
) (GrCmpFnc_t fnc
, GrStencil_t ref
, GrStencil_t mask
);
812 void (FX_CALL
*real_grStencilMaskExt
) (GrStencil_t value
);
813 void (FX_CALL
*real_grStencilOpExt
) (GrStencilOp_t stencil_fail
, GrStencilOp_t depth_fail
, GrStencilOp_t depth_pass
);
814 void (FX_CALL
*real_grLfbConstantStencilExt
) (GrStencil_t value
);
815 void (FX_CALL
*real_grBufferClearExt
) (GrColor_t color
, GrAlpha_t alpha
, FxU32 depth
, GrStencil_t stencil
);
816 void (FX_CALL
*real_grColorCombineExt
) (GrCCUColor_t a
, GrCombineMode_t a_mode
, GrCCUColor_t b
, GrCombineMode_t b_mode
, GrCCUColor_t c
, FxBool c_invert
, GrCCUColor_t d
, FxBool d_invert
, FxU32 shift
, FxBool invert
);
817 void (FX_CALL
*real_grAlphaCombineExt
) (GrACUColor_t a
, GrCombineMode_t a_mode
, GrACUColor_t b
, GrCombineMode_t b_mode
, GrACUColor_t c
, FxBool c_invert
, GrACUColor_t d
, FxBool d_invert
, FxU32 shift
, FxBool invert
);
818 void (FX_CALL
*real_grTexColorCombineExt
) (GrChipID_t tmu
, GrTCCUColor_t a
, GrCombineMode_t a_mode
, GrTCCUColor_t b
, GrCombineMode_t b_mode
, GrTCCUColor_t c
, FxBool c_invert
, GrTCCUColor_t d
, FxBool d_invert
, FxU32 shift
, FxBool invert
);
819 void (FX_CALL
*real_grTexAlphaCombineExt
) (GrChipID_t tmu
, GrTACUColor_t a
, GrCombineMode_t a_mode
, GrTACUColor_t b
, GrCombineMode_t b_mode
, GrTACUColor_t c
, FxBool c_invert
, GrTACUColor_t d
, FxBool d_invert
, FxU32 shift
, FxBool invert
);
820 void (FX_CALL
*real_grConstantColorValueExt
) (GrChipID_t tmu
, GrColor_t value
);
821 void (FX_CALL
*real_grColorMaskExt
) (FxBool r
, FxBool g
, FxBool b
, FxBool a
);
822 void (FX_CALL
*real_grAlphaBlendFunctionExt
) (GrAlphaBlendFnc_t rgb_sf
, GrAlphaBlendFnc_t rgb_df
, GrAlphaBlendOp_t rgb_op
, GrAlphaBlendFnc_t alpha_sf
, GrAlphaBlendFnc_t alpha_df
, GrAlphaBlendOp_t alpha_op
);
823 void (FX_CALL
*real_grTBufferWriteMaskExt
) (FxU32 tmask
);
827 /****************************************************************************\
829 \****************************************************************************/
832 ** rendering functions
834 void FX_CALL
trap_grDrawPoint (const void *pt
)
836 #define FN_NAME "grDrawPoint"
837 TRAP_LOG("%s(%p)\n", FN_NAME
, pt
);
842 void FX_CALL
trap_grDrawLine (const void *v1
,
845 #define FN_NAME "grDrawLine"
846 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, v1
, v2
);
851 void FX_CALL
trap_grDrawTriangle (const void *a
,
855 #define FN_NAME "grDrawTriangle"
856 TRAP_LOG("%s(%p, %p, %p)\n", FN_NAME
, a
, b
, c
);
857 grDrawTriangle(a
, b
, c
);
861 void FX_CALL
trap_grVertexLayout (FxU32 param
,
865 #define FN_NAME "grVertexLayout"
866 TRAP_LOG("%s(%s, %ld, %s)\n", FN_NAME
, TRP_VTX(param
), offset
, TRP_PARAM(mode
));
867 grVertexLayout(param
, offset
, mode
);
871 void FX_CALL
trap_grDrawVertexArray (FxU32 mode
,
875 #define FN_NAME "grDrawVertexArray"
876 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
);
877 grDrawVertexArray(mode
, Count
, pointers
);
881 void FX_CALL
trap_grDrawVertexArrayContiguous (FxU32 mode
,
886 #define FN_NAME "grDrawVertexArrayContiguous"
887 TRAP_LOG("%s(%s, %lu, %p, %lu)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
, stride
);
888 grDrawVertexArrayContiguous(mode
, Count
, pointers
, stride
);
893 ** Antialiasing Functions
895 void FX_CALL
trap_grAADrawTriangle (const void *a
,
902 #define FN_NAME "grAADrawTriangle"
903 TRAP_LOG("%s(%p, %p, %p, %s, %s, %s)\n", FN_NAME
, a
, b
, c
, TRP_BOOL(ab_antialias
), TRP_BOOL(bc_antialias
), TRP_BOOL(ca_antialias
));
904 grAADrawTriangle(a
, b
, c
, ab_antialias
, bc_antialias
, ca_antialias
);
911 void FX_CALL
trap_grBufferClear (GrColor_t color
,
915 #define FN_NAME "grBufferClear"
916 TRAP_LOG("%s(%08lx, %02x, %08lx)\n", FN_NAME
, color
, alpha
, depth
);
917 grBufferClear(color
, alpha
, depth
);
921 void FX_CALL
trap_grBufferSwap (FxU32 swap_interval
)
923 #define FN_NAME "grBufferSwap"
924 TRAP_LOG("%s(%lu)\n", FN_NAME
, swap_interval
);
925 grBufferSwap(swap_interval
);
929 void FX_CALL
trap_grRenderBuffer (GrBuffer_t buffer
)
931 #define FN_NAME "grRenderBuffer"
932 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
933 grRenderBuffer(buffer
);
940 void FX_CALL
trap_grErrorSetCallback (GrErrorCallbackFnc_t fnc
)
942 #define FN_NAME "grErrorSetCallback"
943 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)fnc
);
944 grErrorSetCallback(fnc
);
951 void FX_CALL
trap_grFinish (void)
953 #define FN_NAME "grFinish"
954 TRAP_LOG("%s()\n", FN_NAME
);
959 void FX_CALL
trap_grFlush (void)
961 #define FN_NAME "grFlush"
962 TRAP_LOG("%s()\n", FN_NAME
);
967 GrContext_t FX_CALL
trap_grSstWinOpen (FxU32 hWnd
,
968 GrScreenResolution_t screen_resolution
,
969 GrScreenRefresh_t refresh_rate
,
970 GrColorFormat_t color_format
,
971 GrOriginLocation_t origin_location
,
975 #define FN_NAME "grSstWinOpen"
977 TRAP_LOG("%s(%08lx, %s, %s, %s, %s, %d, %d)\n", FN_NAME
, hWnd
, TRP_RESOLUTION(screen_resolution
), TRP_REFRESH(refresh_rate
), TRP_COLFMT(color_format
), TRP_ORIGIN(origin_location
), nColBuffers
, nAuxBuffers
);
978 rv
= grSstWinOpen(hWnd
, screen_resolution
, refresh_rate
, color_format
, origin_location
, nColBuffers
, nAuxBuffers
);
979 TRAP_LOG(GOT
"%p\n", (void *)rv
);
984 FxBool FX_CALL
trap_grSstWinClose (GrContext_t context
)
986 #define FN_NAME "grSstWinClose"
988 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
989 rv
= grSstWinClose(context
);
990 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
995 void FX_CALL
trap_grSetNumPendingBuffers (FxI32 NumPendingBuffers
)
997 #define FN_NAME "grSetNumPendingBuffers"
998 TRAP_LOG("%s(%ld)\n", FN_NAME
, NumPendingBuffers
);
999 grSetNumPendingBuffers(NumPendingBuffers
);
1003 FxBool FX_CALL
trap_grSelectContext (GrContext_t context
)
1005 #define FN_NAME "grSelectContext"
1007 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
1008 rv
= grSelectContext(context
);
1009 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1014 void FX_CALL
trap_grSstOrigin (GrOriginLocation_t origin
)
1016 #define FN_NAME "grSstOrigin"
1017 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ORIGIN(origin
));
1018 grSstOrigin(origin
);
1022 void FX_CALL
trap_grSstSelect (int which_sst
)
1024 #define FN_NAME "grSstSelect"
1025 TRAP_LOG("%s(%d)\n", FN_NAME
, which_sst
);
1026 grSstSelect(which_sst
);
1031 ** Glide configuration and special effect maintenance functions
1033 void FX_CALL
trap_grAlphaBlendFunction (GrAlphaBlendFnc_t rgb_sf
,
1034 GrAlphaBlendFnc_t rgb_df
,
1035 GrAlphaBlendFnc_t alpha_sf
,
1036 GrAlphaBlendFnc_t alpha_df
)
1038 #define FN_NAME "grAlphaBlendFunction"
1039 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_BLEND(rgb_sf
), TRP_BLEND(rgb_df
), TRP_BLEND(alpha_sf
), TRP_BLEND(alpha_df
));
1040 grAlphaBlendFunction(rgb_sf
, rgb_df
, alpha_sf
, alpha_df
);
1044 void FX_CALL
trap_grAlphaCombine (GrCombineFunction_t function
,
1045 GrCombineFactor_t factor
,
1046 GrCombineLocal_t local
,
1047 GrCombineOther_t other
,
1050 #define FN_NAME "grAlphaCombine"
1051 TRAP_LOG("%s(%s, %s, %s, %s, %s)\n", FN_NAME
, TRP_CMBFUNC(function
), TRP_CMBFACT(factor
), TRP_CMBLOCAL(local
), TRP_CMBOTHER(other
), TRP_BOOL(invert
));
1052 grAlphaCombine(function
, factor
, local
, other
, invert
);
1056 void FX_CALL
trap_grAlphaControlsITRGBLighting (FxBool enable
)
1058 #define FN_NAME "grAlphaControlsITRGBLighting"
1059 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(enable
));
1060 grAlphaControlsITRGBLighting(enable
);
1064 void FX_CALL
trap_grAlphaTestFunction (GrCmpFnc_t function
)
1066 #define FN_NAME "grAlphaTestFunction"
1067 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1068 grAlphaTestFunction(function
);
1072 void FX_CALL
trap_grAlphaTestReferenceValue (GrAlpha_t value
)
1074 #define FN_NAME "grAlphaTestReferenceValue"
1075 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
1076 grAlphaTestReferenceValue(value
);
1080 void FX_CALL
trap_grChromakeyMode (GrChromakeyMode_t mode
)
1082 #define FN_NAME "grChromakeyMode"
1083 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1084 grChromakeyMode(mode
);
1088 void FX_CALL
trap_grChromakeyValue (GrColor_t value
)
1090 #define FN_NAME "grChromakeyValue"
1091 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1092 grChromakeyValue(value
);
1096 void FX_CALL
trap_grClipWindow (FxU32 minx
,
1101 #define FN_NAME "grClipWindow"
1102 TRAP_LOG("%s(%lu, %lu, %lu, %lu)\n", FN_NAME
, minx
, miny
, maxx
, maxy
);
1103 grClipWindow(minx
, miny
, maxx
, maxy
);
1107 void FX_CALL
trap_grColorCombine (GrCombineFunction_t function
,
1108 GrCombineFactor_t factor
,
1109 GrCombineLocal_t local
,
1110 GrCombineOther_t other
,
1113 #define FN_NAME "grColorCombine"
1114 TRAP_LOG("%s(%s, %s, %s, %s, %s)\n", FN_NAME
, TRP_CMBFUNC(function
), TRP_CMBFACT(factor
), TRP_CMBLOCAL(local
), TRP_CMBOTHER(other
), TRP_BOOL(invert
));
1115 grColorCombine(function
, factor
, local
, other
, invert
);
1119 void FX_CALL
trap_grColorMask (FxBool rgb
,
1122 #define FN_NAME "grColorMask"
1123 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(rgb
), TRP_BOOL(a
));
1124 grColorMask(rgb
, a
);
1128 void FX_CALL
trap_grCullMode (GrCullMode_t mode
)
1130 #define FN_NAME "grCullMode"
1131 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CULLMODE(mode
));
1136 void FX_CALL
trap_grConstantColorValue (GrColor_t value
)
1138 #define FN_NAME "grConstantColorValue"
1139 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1140 grConstantColorValue(value
);
1144 void FX_CALL
trap_grDepthBiasLevel (FxI32 level
)
1146 #define FN_NAME "grDepthBiasLevel"
1147 TRAP_LOG("%s(%ld)\n", FN_NAME
, level
);
1148 grDepthBiasLevel(level
);
1152 void FX_CALL
trap_grDepthBufferFunction (GrCmpFnc_t function
)
1154 #define FN_NAME "grDepthBufferFunction"
1155 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1156 grDepthBufferFunction(function
);
1160 void FX_CALL
trap_grDepthBufferMode (GrDepthBufferMode_t mode
)
1162 #define FN_NAME "grDepthBufferMode"
1163 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DEPTHMODE(mode
));
1164 grDepthBufferMode(mode
);
1168 void FX_CALL
trap_grDepthMask (FxBool mask
)
1170 #define FN_NAME "grDepthMask"
1171 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(mask
));
1176 void FX_CALL
trap_grDisableAllEffects (void)
1178 #define FN_NAME "grDisableAllEffects"
1179 TRAP_LOG("%s()\n", FN_NAME
);
1180 grDisableAllEffects();
1184 void FX_CALL
trap_grDitherMode (GrDitherMode_t mode
)
1186 #define FN_NAME "grDitherMode"
1187 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DITHERMODE(mode
));
1192 void FX_CALL
trap_grFogColorValue (GrColor_t fogcolor
)
1194 #define FN_NAME "grFogColorValue"
1195 TRAP_LOG("%s(%08lx)\n", FN_NAME
, fogcolor
);
1196 grFogColorValue(fogcolor
);
1200 void FX_CALL
trap_grFogMode (GrFogMode_t mode
)
1202 #define FN_NAME "grFogMode"
1203 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_FOGMODE(mode
));
1208 void FX_CALL
trap_grFogTable (const GrFog_t ft
[])
1210 #define FN_NAME "grFogTable"
1211 TRAP_LOG("%s(%p)\n", FN_NAME
, ft
);
1216 void FX_CALL
trap_grLoadGammaTable (FxU32 nentries
,
1221 #define FN_NAME "grLoadGammaTable"
1222 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1223 grLoadGammaTable(nentries
, red
, green
, blue
);
1227 void FX_CALL
trap_grSplash (float x
,
1233 #define FN_NAME "grSplash"
1234 TRAP_LOG("%s(%f, %f, %f, %f, %lu)\n", FN_NAME
, x
, y
, width
, height
, frame
);
1235 grSplash(x
, y
, width
, height
, frame
);
1239 FxU32 FX_CALL
trap_grGet (FxU32 pname
,
1243 #define FN_NAME "grGet"
1245 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_GETNAME(pname
), plength
, (void *)params
);
1246 rv
= grGet(pname
, plength
, params
);
1248 for (i
= 0; i
< (rv
/sizeof(FxI32
)); i
++) {
1249 TRAP_LOG("%s%ld", i
? ", " : "", params
[i
]);
1256 const char *FX_CALL
trap_grGetString (FxU32 pname
)
1258 #define FN_NAME "grGetString"
1260 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETSTRING(pname
));
1261 rv
= grGetString(pname
);
1263 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1265 TRAP_LOG(GOT
"NULL\n");
1271 FxI32 FX_CALL
trap_grQueryResolutions (const GrResolution
*resTemplate
,
1272 GrResolution
*output
)
1274 #define FN_NAME "grQueryResolutions"
1276 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)resTemplate
, (void *)output
);
1277 rv
= grQueryResolutions(resTemplate
, output
);
1278 TRAP_LOG(GOT
"%ld\n", rv
);
1283 FxBool FX_CALL
trap_grReset (FxU32 what
)
1285 #define FN_NAME "grReset"
1287 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETNAME(what
));
1289 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1294 GrProc FX_CALL
trap_grGetProcAddress (char *procName
)
1296 #define FN_NAME "grGetProcAddress"
1298 TRAP_LOG("%s(%s)\n", FN_NAME
, procName
);
1299 rv
= grGetProcAddress(procName
);
1300 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1305 void FX_CALL
trap_grEnable (GrEnableMode_t mode
)
1307 #define FN_NAME "grEnable"
1308 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1313 void FX_CALL
trap_grDisable (GrEnableMode_t mode
)
1315 #define FN_NAME "grDisable"
1316 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1321 void FX_CALL
trap_grCoordinateSpace (GrCoordinateSpaceMode_t mode
)
1323 #define FN_NAME "grCoordinateSpace"
1324 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COORD(mode
));
1325 grCoordinateSpace(mode
);
1329 void FX_CALL
trap_grDepthRange (FxFloat n
,
1332 #define FN_NAME "grDepthRange"
1333 TRAP_LOG("%s(%f, %f)\n", FN_NAME
, n
, f
);
1338 void FX_CALL
trap_grStippleMode (GrStippleMode_t mode
)
1340 #define FN_NAME "grStippleMode"
1341 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_STIPPLEMODE(mode
));
1342 grStippleMode(mode
);
1346 void FX_CALL
trap_grStipplePattern (GrStipplePattern_t mode
)
1348 #define FN_NAME "grStipplePattern"
1349 TRAP_LOG("%s(%08lx)\n", FN_NAME
, mode
);
1350 grStipplePattern(mode
);
1354 void FX_CALL
trap_grViewport (FxI32 x
,
1359 #define FN_NAME "grViewport"
1360 TRAP_LOG("%s(%ld, %ld, %ld, %ld)\n", FN_NAME
, x
, y
, width
, height
);
1361 grViewport(x
, y
, width
, height
);
1366 ** texture mapping control functions
1368 FxU32 FX_CALL
trap_grTexCalcMemRequired (GrLOD_t lodmin
,
1370 GrAspectRatio_t aspect
,
1371 GrTextureFormat_t fmt
)
1373 #define FN_NAME "grTexCalcMemRequired"
1375 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_LODLEVEL(lodmin
), TRP_LODLEVEL(lodmax
), TRP_ASPECTRATIO(aspect
), TRP_TEXFMT(fmt
));
1376 rv
= grTexCalcMemRequired(lodmin
, lodmax
, aspect
, fmt
);
1377 TRAP_LOG(GOT
"%lu\n", rv
);
1382 FxU32 FX_CALL
trap_grTexTextureMemRequired (FxU32 evenOdd
,
1385 #define FN_NAME "grTexTextureMemRequired"
1387 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_EVENODD(evenOdd
), (void *)info
);
1388 rv
= grTexTextureMemRequired(evenOdd
, info
);
1389 TRAP_LOG(GOT
"%lu\n", rv
);
1394 FxU32 FX_CALL
trap_grTexMinAddress (GrChipID_t tmu
)
1396 #define FN_NAME "grTexMinAddress"
1398 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1399 rv
= grTexMinAddress(tmu
);
1400 TRAP_LOG(GOT
"%lu\n", rv
);
1405 FxU32 FX_CALL
trap_grTexMaxAddress (GrChipID_t tmu
)
1407 #define FN_NAME "grTexMaxAddress"
1409 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1410 rv
= grTexMaxAddress(tmu
);
1411 TRAP_LOG(GOT
"%lu\n", rv
);
1416 void FX_CALL
trap_grTexNCCTable (GrNCCTable_t table
)
1418 #define FN_NAME "grTexNCCTable"
1419 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_NCC(table
));
1420 grTexNCCTable(table
);
1424 void FX_CALL
trap_grTexSource (GrChipID_t tmu
,
1429 #define FN_NAME "grTexSource"
1430 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1431 grTexSource(tmu
, startAddress
, evenOdd
, info
);
1435 void FX_CALL
trap_grTexClampMode (GrChipID_t tmu
,
1436 GrTextureClampMode_t s_clampmode
,
1437 GrTextureClampMode_t t_clampmode
)
1439 #define FN_NAME "grTexClampMode"
1440 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CLAMPMODE(s_clampmode
), TRP_CLAMPMODE(t_clampmode
));
1441 grTexClampMode(tmu
, s_clampmode
, t_clampmode
);
1445 void FX_CALL
trap_grTexCombine (GrChipID_t tmu
,
1446 GrCombineFunction_t rgb_function
,
1447 GrCombineFactor_t rgb_factor
,
1448 GrCombineFunction_t alpha_function
,
1449 GrCombineFactor_t alpha_factor
,
1451 FxBool alpha_invert
)
1453 #define FN_NAME "grTexCombine"
1454 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CMBFUNC(rgb_function
), TRP_CMBFACT(rgb_factor
), TRP_CMBFUNC(alpha_function
), TRP_CMBFACT(alpha_factor
), TRP_BOOL(rgb_invert
), TRP_BOOL(alpha_invert
));
1455 grTexCombine(tmu
, rgb_function
, rgb_factor
, alpha_function
, alpha_factor
, rgb_invert
, alpha_invert
);
1459 void FX_CALL
trap_grTexDetailControl (GrChipID_t tmu
,
1464 #define FN_NAME "grTexDetailControl"
1465 TRAP_LOG("%s(%s, %u, %d, %f)\n", FN_NAME
, TRP_TMU(tmu
), lod_bias
, detail_scale
, detail_max
);
1466 grTexDetailControl(tmu
, lod_bias
, detail_scale
, detail_max
);
1470 void FX_CALL
trap_grTexFilterMode (GrChipID_t tmu
,
1471 GrTextureFilterMode_t minfilter_mode
,
1472 GrTextureFilterMode_t magfilter_mode
)
1474 #define FN_NAME "grTexFilterMode"
1475 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXFILTER(minfilter_mode
), TRP_TEXFILTER(magfilter_mode
));
1476 grTexFilterMode(tmu
, minfilter_mode
, magfilter_mode
);
1480 void FX_CALL
trap_grTexLodBiasValue (GrChipID_t tmu
,
1483 #define FN_NAME "grTexLodBiasValue"
1484 TRAP_LOG("%s(%s, %f)\n", FN_NAME
, TRP_TMU(tmu
), bias
);
1485 grTexLodBiasValue(tmu
, bias
);
1489 void FX_CALL
trap_grTexDownloadMipMap (GrChipID_t tmu
,
1494 #define FN_NAME "grTexDownloadMipMap"
1495 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1496 grTexDownloadMipMap(tmu
, startAddress
, evenOdd
, info
);
1500 void FX_CALL
trap_grTexDownloadMipMapLevel (GrChipID_t tmu
,
1504 GrAspectRatio_t aspectRatio
,
1505 GrTextureFormat_t format
,
1509 #define FN_NAME "grTexDownloadMipMapLevel"
1510 TRAP_LOG("%s(%s, %08lx, %s, %s, %s, %s, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_LODLEVEL(thisLod
), TRP_LODLEVEL(largeLod
), TRP_ASPECTRATIO(aspectRatio
), TRP_TEXFMT(format
), TRP_EVENODD(evenOdd
), data
);
1511 grTexDownloadMipMapLevel(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
);
1515 FxBool FX_CALL
trap_grTexDownloadMipMapLevelPartial (GrChipID_t tmu
,
1519 GrAspectRatio_t aspectRatio
,
1520 GrTextureFormat_t format
,
1526 #define FN_NAME "grTexDownloadMipMapLevelPartial"
1528 TRAP_LOG("%s(%s, %08lx, %s, %s, %s, %s, %s, %p, %d, %d)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_LODLEVEL(thisLod
), TRP_LODLEVEL(largeLod
), TRP_ASPECTRATIO(aspectRatio
), TRP_TEXFMT(format
), TRP_EVENODD(evenOdd
), data
, start
, end
);
1529 rv
= grTexDownloadMipMapLevelPartial(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
, start
, end
);
1530 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1535 void FX_CALL
trap_grTexDownloadTable (GrTexTable_t type
,
1538 #define FN_NAME "grTexDownloadTable"
1539 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_TABLE(type
), data
);
1540 grTexDownloadTable(type
, data
);
1544 void FX_CALL
trap_grTexDownloadTablePartial (GrTexTable_t type
,
1549 #define FN_NAME "grTexDownloadTablePartial"
1550 TRAP_LOG("%s(%s, %p, %d, %d)\n", FN_NAME
, TRP_TABLE(type
), data
, start
, end
);
1551 grTexDownloadTablePartial(type
, data
, start
, end
);
1555 void FX_CALL
trap_grTexMipMapMode (GrChipID_t tmu
,
1556 GrMipMapMode_t mode
,
1559 #define FN_NAME "grTexMipMapMode"
1560 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_MIPMODE(mode
), TRP_BOOL(lodBlend
));
1561 grTexMipMapMode(tmu
, mode
, lodBlend
);
1565 void FX_CALL
trap_grTexMultibase (GrChipID_t tmu
,
1568 #define FN_NAME "grTexMultibase"
1569 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_BOOL(enable
));
1570 grTexMultibase(tmu
, enable
);
1574 void FX_CALL
trap_grTexMultibaseAddress (GrChipID_t tmu
,
1575 GrTexBaseRange_t range
,
1580 #define FN_NAME "grTexMultibaseAddress"
1581 TRAP_LOG("%s(%s, %s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXBASERANGE(range
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1582 grTexMultibaseAddress(tmu
, range
, startAddress
, evenOdd
, info
);
1587 ** linear frame buffer functions
1589 FxBool FX_CALL
trap_grLfbLock (GrLock_t type
,
1591 GrLfbWriteMode_t writeMode
,
1592 GrOriginLocation_t origin
,
1593 FxBool pixelPipeline
,
1596 #define FN_NAME "grLfbLock"
1598 TRAP_LOG("%s(%s, %s, %s, %s, %s, %p)\n", FN_NAME
, TRP_LOCKTYPE(type
), TRP_BUFFER(buffer
), TRP_WRITEMODE(writeMode
), TRP_ORIGIN(origin
), TRP_BOOL(pixelPipeline
), (void *)info
);
1599 rv
= grLfbLock(type
, buffer
, writeMode
, origin
, pixelPipeline
, info
);
1600 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1605 FxBool FX_CALL
trap_grLfbUnlock (GrLock_t type
,
1608 #define FN_NAME "grLfbUnlock"
1610 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_LOCKTYPE(type
), TRP_BUFFER(buffer
));
1611 rv
= grLfbUnlock(type
, buffer
);
1612 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1617 void FX_CALL
trap_grLfbConstantAlpha (GrAlpha_t alpha
)
1619 #define FN_NAME "grLfbConstantAlpha"
1620 TRAP_LOG("%s(%02x)\n", FN_NAME
, alpha
);
1621 grLfbConstantAlpha(alpha
);
1625 void FX_CALL
trap_grLfbConstantDepth (FxU32 depth
)
1627 #define FN_NAME "grLfbConstantDepth"
1628 TRAP_LOG("%s(%08lx)\n", FN_NAME
, depth
);
1629 grLfbConstantDepth(depth
);
1633 void FX_CALL
trap_grLfbWriteColorSwizzle (FxBool swizzleBytes
,
1636 #define FN_NAME "grLfbWriteColorSwizzle"
1637 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(swizzleBytes
), TRP_BOOL(swapWords
));
1638 grLfbWriteColorSwizzle(swizzleBytes
, swapWords
);
1642 void FX_CALL
trap_grLfbWriteColorFormat (GrColorFormat_t colorFormat
)
1644 #define FN_NAME "grLfbWriteColorFormat"
1645 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COLFMT(colorFormat
));
1646 grLfbWriteColorFormat(colorFormat
);
1650 FxBool FX_CALL
trap_grLfbWriteRegion (GrBuffer_t dst_buffer
,
1653 GrLfbSrcFmt_t src_format
,
1656 FxBool pixelPipeline
,
1660 #define FN_NAME "grLfbWriteRegion"
1662 TRAP_LOG("%s(%s, %lu, %lu, %s, %lu, %lu, %s, %ld, %p)\n", FN_NAME
, TRP_BUFFER(dst_buffer
), dst_x
, dst_y
, TRP_SRCFMT(src_format
), src_width
, src_height
, TRP_BOOL(pixelPipeline
), src_stride
, src_data
);
1663 rv
= grLfbWriteRegion(dst_buffer
, dst_x
, dst_y
, src_format
, src_width
, src_height
, pixelPipeline
, src_stride
, src_data
);
1664 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1669 FxBool FX_CALL
trap_grLfbReadRegion (GrBuffer_t src_buffer
,
1677 #define FN_NAME "grLfbReadRegion"
1679 TRAP_LOG("%s(%s, %lu, %lu, %lu, %lu, %ld, %p)\n", FN_NAME
, TRP_BUFFER(src_buffer
), src_x
, src_y
, src_width
, src_height
, dst_stride
, dst_data
);
1680 rv
= grLfbReadRegion(src_buffer
, src_x
, src_y
, src_width
, src_height
, dst_stride
, dst_data
);
1681 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1687 ** glide management functions
1689 void FX_CALL
trap_grGlideInit (void)
1691 #define FN_NAME "grGlideInit"
1692 TRAP_LOG("%s()\n", FN_NAME
);
1697 void FX_CALL
trap_grGlideShutdown (void)
1699 #define FN_NAME "grGlideShutdown"
1700 TRAP_LOG("%s()\n", FN_NAME
);
1705 void FX_CALL
trap_grGlideGetState (void *state
)
1707 #define FN_NAME "grGlideGetState"
1708 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1709 grGlideGetState(state
);
1713 void FX_CALL
trap_grGlideSetState (const void *state
)
1715 #define FN_NAME "grGlideSetState"
1716 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1717 grGlideSetState(state
);
1721 void FX_CALL
trap_grGlideGetVertexLayout (void *layout
)
1723 #define FN_NAME "grGlideGetVertexLayout"
1724 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1725 grGlideGetVertexLayout(layout
);
1729 void FX_CALL
trap_grGlideSetVertexLayout (const void *layout
)
1731 #define FN_NAME "grGlideSetVertexLayout"
1732 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1733 grGlideSetVertexLayout(layout
);
1738 ** glide utility functions
1740 void FX_CALL
trap_guGammaCorrectionRGB (FxFloat red
,
1744 #define FN_NAME "guGammaCorrectionRGB"
1745 TRAP_LOG("%s(%f, %f, %f)\n", FN_NAME
, red
, green
, blue
);
1746 guGammaCorrectionRGB(red
, green
, blue
);
1750 float FX_CALL
trap_guFogTableIndexToW (int i
)
1752 #define FN_NAME "guFogTableIndexToW"
1754 TRAP_LOG("%s(%d)\n", FN_NAME
, i
);
1755 rv
= guFogTableIndexToW(i
);
1756 TRAP_LOG(GOT
"%f\n", rv
);
1761 void FX_CALL
trap_guFogGenerateExp (GrFog_t
*fogtable
,
1764 #define FN_NAME "guFogGenerateExp"
1765 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1766 guFogGenerateExp(fogtable
, density
);
1770 void FX_CALL
trap_guFogGenerateExp2 (GrFog_t
*fogtable
,
1773 #define FN_NAME "guFogGenerateExp2"
1774 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1775 guFogGenerateExp2(fogtable
, density
);
1779 void FX_CALL
trap_guFogGenerateLinear (GrFog_t
*fogtable
,
1783 #define FN_NAME "guFogGenerateLinear"
1784 TRAP_LOG("%s(%p, %f, %f)\n", FN_NAME
, fogtable
, nearZ
, farZ
);
1785 guFogGenerateLinear(fogtable
, nearZ
, farZ
);
1792 char *FX_CALL
trap_grGetRegistryOrEnvironmentStringExt (char *theEntry
)
1794 #define FN_NAME "grGetRegistryOrEnvironmentStringExt"
1796 TRAP_LOG("%s(\"%s\")\n", FN_NAME
, theEntry
);
1797 assert(real_grGetRegistryOrEnvironmentStringExt
);
1798 rv
= (*real_grGetRegistryOrEnvironmentStringExt
)(theEntry
);
1800 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1802 TRAP_LOG(GOT
"NULL\n");
1808 void FX_CALL
trap_grGetGammaTableExt (FxU32 nentries
,
1813 #define FN_NAME "grGetGammaTableExt"
1814 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1815 assert(real_grGetGammaTableExt
);
1816 (*real_grGetGammaTableExt
)(nentries
, red
, green
, blue
);
1820 void FX_CALL
trap_grChromaRangeModeExt (GrChromakeyMode_t mode
)
1822 #define FN_NAME "grChromaRangeModeExt"
1823 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1824 assert(real_grChromaRangeModeExt
);
1825 (*real_grChromaRangeModeExt
)(mode
);
1829 void FX_CALL
trap_grChromaRangeExt (GrColor_t color
,
1831 GrChromaRangeMode_t match_mode
)
1833 #define FN_NAME "grChromaRangeExt"
1834 TRAP_LOG("%s(%08lx, %08lx, %s)\n", FN_NAME
, color
, range
, TRP_CRMODE(match_mode
));
1835 assert(real_grChromaRangeExt
);
1836 (*real_grChromaRangeExt
)(color
, range
, match_mode
);
1840 void FX_CALL
trap_grTexChromaModeExt (GrChipID_t tmu
,
1841 GrChromakeyMode_t mode
)
1843 #define FN_NAME "grTexChromaModeExt"
1844 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CKMODE(mode
));
1845 assert(real_grTexChromaModeExt
);
1846 (*real_grTexChromaModeExt
)(tmu
, mode
);
1850 void FX_CALL
trap_grTexChromaRangeExt (GrChipID_t tmu
,
1853 GrTexChromakeyMode_t mode
)
1855 #define FN_NAME "grTexChromaRangeExt"
1856 TRAP_LOG("%s(%s, %08lx, %08lx, %s)\n", FN_NAME
, TRP_TMU(tmu
), min
, max
, TRP_CRMODE(mode
));
1857 assert(real_grTexChromaRangeExt
);
1858 (*real_grTexChromaRangeExt
)(tmu
, min
, max
, mode
);
1863 void FX_CALL
trap_grTextureBufferExt (GrChipID_t tmu
,
1867 GrAspectRatio_t aspectRatio
,
1868 GrTextureFormat_t format
,
1869 FxU32 odd_even_mask
)
1871 #define FN_NAME "grTextureBufferExt"
1872 TRAP_LOG("%s(%s, %08lx, %s, %s, %s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_LODLEVEL(thisLOD
), TRP_LODLEVEL(largeLOD
), TRP_ASPECTRATIO(aspectRatio
), TRP_TEXFMT(format
), TRP_EVENODD(odd_even_mask
));
1873 assert(real_grTextureBufferExt
);
1874 (*real_grTextureBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1878 void FX_CALL
trap_grTextureAuxBufferExt (GrChipID_t tmu
,
1882 GrAspectRatio_t aspectRatio
,
1883 GrTextureFormat_t format
,
1884 FxU32 odd_even_mask
)
1886 #define FN_NAME "grTextureAuxBufferExt"
1887 TRAP_LOG("%s(%s, %08lx, %s, %s, %s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_LODLEVEL(thisLOD
), TRP_LODLEVEL(largeLOD
), TRP_ASPECTRATIO(aspectRatio
), TRP_TEXFMT(format
), TRP_EVENODD(odd_even_mask
));
1888 assert(real_grTextureAuxBufferExt
);
1889 (*real_grTextureAuxBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1893 void FX_CALL
trap_grAuxBufferExt (GrBuffer_t buffer
)
1895 #define FN_NAME "grAuxBufferExt"
1896 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
1897 assert(real_grAuxBufferExt
);
1898 (*real_grAuxBufferExt
)(buffer
);
1903 GrContext_t FX_CALL
trap_grSstWinOpenExt (FxU32 hWnd
,
1904 GrScreenResolution_t resolution
,
1905 GrScreenRefresh_t refresh
,
1906 GrColorFormat_t format
,
1907 GrOriginLocation_t origin
,
1908 GrPixelFormat_t pixelformat
,
1912 #define FN_NAME "grSstWinOpenExt"
1914 TRAP_LOG("%s(%08lx, %s, %s, %s, %s, %s, %d, %d)\n", FN_NAME
, hWnd
, TRP_RESOLUTION(resolution
), TRP_REFRESH(refresh
), TRP_COLFMT(format
), TRP_ORIGIN(origin
), TRP_PIXFMT(pixelformat
), nColBuffers
, nAuxBuffers
);
1915 assert(real_grSstWinOpenExt
);
1916 rv
= (*real_grSstWinOpenExt
)(hWnd
, resolution
, refresh
, format
, origin
, pixelformat
, nColBuffers
, nAuxBuffers
);
1917 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1922 void FX_CALL
trap_grStencilFuncExt (GrCmpFnc_t fnc
,
1926 #define FN_NAME "grStencilFuncExt"
1927 TRAP_LOG("%s(%s, %02x, %02x)\n", FN_NAME
, TRP_CMPFUNC(fnc
), ref
, mask
);
1928 assert(real_grStencilFuncExt
);
1929 (*real_grStencilFuncExt
)(fnc
, ref
, mask
);
1933 void FX_CALL
trap_grStencilMaskExt (GrStencil_t value
)
1935 #define FN_NAME "grStencilMaskExt"
1936 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
1937 assert(real_grStencilMaskExt
);
1938 (*real_grStencilMaskExt
)(value
);
1942 void FX_CALL
trap_grStencilOpExt (GrStencilOp_t stencil_fail
,
1943 GrStencilOp_t depth_fail
,
1944 GrStencilOp_t depth_pass
)
1946 #define FN_NAME "grStencilOpExt"
1947 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_STENCILOP(stencil_fail
), TRP_STENCILOP(depth_fail
), TRP_STENCILOP(depth_pass
));
1948 assert(real_grStencilOpExt
);
1949 (*real_grStencilOpExt
)(stencil_fail
, depth_fail
, depth_pass
);
1953 void FX_CALL
trap_grLfbConstantStencilExt (GrStencil_t value
)
1955 #define FN_NAME "grLfbConstantStencilExt"
1956 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
1957 assert(real_grLfbConstantStencilExt
);
1958 (*real_grLfbConstantStencilExt
)(value
);
1962 void FX_CALL
trap_grBufferClearExt (GrColor_t color
,
1965 GrStencil_t stencil
)
1967 #define FN_NAME "grBufferClearExt"
1968 TRAP_LOG("%s(%08lx, %02x, %08lx, %02x)\n", FN_NAME
, color
, alpha
, depth
, stencil
);
1969 assert(real_grBufferClearExt
);
1970 (*real_grBufferClearExt
)(color
, alpha
, depth
, stencil
);
1974 void FX_CALL
trap_grColorCombineExt (GrCCUColor_t a
,
1975 GrCombineMode_t a_mode
,
1977 GrCombineMode_t b_mode
,
1985 #define FN_NAME "grColorCombineExt"
1986 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s, %s, %s, %lu, %s)\n", FN_NAME
, TRP_CU(a
), TRP_CMBMODE(a_mode
), TRP_CU(b
), TRP_CMBMODE(b_mode
), TRP_CU(c
), TRP_BOOL(c_invert
), TRP_CU(d
), TRP_BOOL(d_invert
), shift
, TRP_BOOL(invert
));
1987 assert(real_grColorCombineExt
);
1988 (*real_grColorCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
1992 void FX_CALL
trap_grAlphaCombineExt (GrACUColor_t a
,
1993 GrCombineMode_t a_mode
,
1995 GrCombineMode_t b_mode
,
2003 #define FN_NAME "grAlphaCombineExt"
2004 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s, %s, %s, %lu, %s)\n", FN_NAME
, TRP_CU(a
), TRP_CMBMODE(a_mode
), TRP_CU(b
), TRP_CMBMODE(b_mode
), TRP_CU(c
), TRP_BOOL(c_invert
), TRP_CU(d
), TRP_BOOL(d_invert
), shift
, TRP_BOOL(invert
));
2005 assert(real_grAlphaCombineExt
);
2006 (*real_grAlphaCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2010 void FX_CALL
trap_grTexColorCombineExt (GrChipID_t tmu
,
2012 GrCombineMode_t a_mode
,
2014 GrCombineMode_t b_mode
,
2022 #define FN_NAME "grTexColorCombineExt"
2023 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s, %s, %s, %s, %lu, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CU(a
), TRP_CMBMODE(a_mode
), TRP_CU(b
), TRP_CMBMODE(b_mode
), TRP_CU(c
), TRP_BOOL(c_invert
), TRP_CU(d
), TRP_BOOL(d_invert
), shift
, TRP_BOOL(invert
));
2024 assert(real_grTexColorCombineExt
);
2025 (*real_grTexColorCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2029 void FX_CALL
trap_grTexAlphaCombineExt (GrChipID_t tmu
,
2031 GrCombineMode_t a_mode
,
2033 GrCombineMode_t b_mode
,
2041 #define FN_NAME "grTexAlphaCombineExt"
2042 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s, %s, %s, %s, %lu, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CU(a
), TRP_CMBMODE(a_mode
), TRP_CU(b
), TRP_CMBMODE(b_mode
), TRP_CU(c
), TRP_BOOL(c_invert
), TRP_CU(d
), TRP_BOOL(d_invert
), shift
, TRP_BOOL(invert
));
2043 assert(real_grTexAlphaCombineExt
);
2044 (*real_grTexAlphaCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2048 void FX_CALL
trap_grConstantColorValueExt (GrChipID_t tmu
,
2051 #define FN_NAME "grConstantColorValueExt"
2052 TRAP_LOG("%s(%s, %08lx)\n", FN_NAME
, TRP_TMU(tmu
), value
);
2053 assert(real_grConstantColorValueExt
);
2054 (*real_grConstantColorValueExt
)(tmu
, value
);
2058 void FX_CALL
trap_grColorMaskExt (FxBool r
,
2063 #define FN_NAME "grColorMaskExt"
2064 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_BOOL(r
), TRP_BOOL(g
), TRP_BOOL(b
), TRP_BOOL(a
));
2065 assert(real_grColorMaskExt
);
2066 (*real_grColorMaskExt
)(r
, g
, b
, a
);
2070 void FX_CALL
trap_grAlphaBlendFunctionExt (GrAlphaBlendFnc_t rgb_sf
,
2071 GrAlphaBlendFnc_t rgb_df
,
2072 GrAlphaBlendOp_t rgb_op
,
2073 GrAlphaBlendFnc_t alpha_sf
,
2074 GrAlphaBlendFnc_t alpha_df
,
2075 GrAlphaBlendOp_t alpha_op
)
2077 #define FN_NAME "grAlphaBlendFunctionExt"
2078 TRAP_LOG("%s(%s, %s, %s, %s, %s, %s)\n", FN_NAME
, TRP_BLEND(rgb_sf
), TRP_BLEND(rgb_df
), TRP_BLENDOP(rgb_op
), TRP_BLEND(alpha_sf
), TRP_BLEND(alpha_df
), TRP_BLENDOP(alpha_op
));
2079 assert(real_grAlphaBlendFunctionExt
);
2080 (*real_grAlphaBlendFunctionExt
)(rgb_sf
, rgb_df
, rgb_op
, alpha_sf
, alpha_df
, alpha_op
);
2084 void FX_CALL
trap_grTBufferWriteMaskExt (FxU32 tmask
)
2086 #define FN_NAME "grTBufferWriteMaskExt"
2087 TRAP_LOG("%s(%08lx)\n", FN_NAME
, tmask
);
2088 assert(real_grTBufferWriteMaskExt
);
2089 (*real_grTBufferWriteMaskExt
)(tmask
);
2096 /****************************************************************************\
2098 \****************************************************************************/
2099 void tdfx_hook_glide (struct tdfx_glide
*Glide
)
2102 #define GET_EXT_ADDR(name) *(GrProc *)&real_##name = grGetProcAddress(#name), Glide->name = trap_##name
2103 #else /* DEBUG_TRAP */
2104 #define GET_EXT_ADDR(name) *(GrProc *)&Glide->name = grGetProcAddress(#name)
2105 #endif /* DEBUG_TRAP */
2110 GET_EXT_ADDR(grGetRegistryOrEnvironmentStringExt
);
2111 GET_EXT_ADDR(grGetGammaTableExt
);
2112 GET_EXT_ADDR(grChromaRangeModeExt
);
2113 GET_EXT_ADDR(grChromaRangeExt
);
2114 GET_EXT_ADDR(grTexChromaModeExt
);
2115 GET_EXT_ADDR(grTexChromaRangeExt
);
2117 GET_EXT_ADDR(grTextureBufferExt
);
2118 GET_EXT_ADDR(grTextureAuxBufferExt
);
2119 GET_EXT_ADDR(grAuxBufferExt
);
2121 GET_EXT_ADDR(grSstWinOpenExt
);
2122 GET_EXT_ADDR(grStencilFuncExt
);
2123 GET_EXT_ADDR(grStencilMaskExt
);
2124 GET_EXT_ADDR(grStencilOpExt
);
2125 GET_EXT_ADDR(grLfbConstantStencilExt
);
2126 GET_EXT_ADDR(grBufferClearExt
);
2127 GET_EXT_ADDR(grColorCombineExt
);
2128 GET_EXT_ADDR(grAlphaCombineExt
);
2129 GET_EXT_ADDR(grTexColorCombineExt
);
2130 GET_EXT_ADDR(grTexAlphaCombineExt
);
2131 GET_EXT_ADDR(grConstantColorValueExt
);
2132 GET_EXT_ADDR(grColorMaskExt
);
2133 GET_EXT_ADDR(grAlphaBlendFunctionExt
);
2134 GET_EXT_ADDR(grTBufferWriteMaskExt
);