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
44 FX_ENTRY
int FX_CALL
txBitsPerPixel (GrTextureFormat_t format
);
45 FX_ENTRY
void FX_CALL
txImgQuantize (char *dst
, char *src
, int w
, int h
, FxU32 format
, FxU32 dither
);
46 FX_ENTRY
void FX_CALL
txMipQuantize (TxMip
*pxMip
, TxMip
*txMip
, int fmt
, FxU32 d
, FxU32 comp
);
47 FX_ENTRY
void FX_CALL
txPalToNcc (GuNccTable
*ncc_table
, const FxU32
*pal
);
48 FX_ENTRY
void FX_CALL
txErrorSetCallback (TxErrorCallbackFnc_t fnc
, TxErrorCallbackFnc_t
*old_fnc
);
53 /****************************************************************************\
55 \****************************************************************************/
57 #define TRAP_LOG trp_printf
59 __attribute__ ((format(printf
, 1, 2)))
61 int trp_printf (const char *format
, ...)
66 va_start(arg
, format
);
67 trap_file
= fopen("trap.log", "a");
68 if (trap_file
== NULL
) {
71 n
= vfprintf(trap_file
, format
, arg
);
76 #else /* DEBUG_TRAP */
78 #define TRAP_LOG(format, ...) do {} while (0)
80 #define TRAP_LOG 0 && (unsigned long)
82 #endif /* DEBUG_TRAP */
87 /****************************************************************************\
89 \****************************************************************************/
93 const char *TRP_BOOL (FxBool b
)
95 return b
? "FXTRUE" : "FXFALSE";
98 #define TRAP_CASE_STRING(name) case name: return #name
99 #define TRAP_NODEFAULT default: assert(0)
101 const char *TRP_PARAM (FxU32 mode
)
104 TRAP_CASE_STRING(GR_PARAM_DISABLE
);
105 TRAP_CASE_STRING(GR_PARAM_ENABLE
);
110 const char *TRP_VTX (FxU32 param
)
113 TRAP_CASE_STRING(GR_PARAM_XY
);
114 TRAP_CASE_STRING(GR_PARAM_Z
);
115 TRAP_CASE_STRING(GR_PARAM_W
);
116 TRAP_CASE_STRING(GR_PARAM_Q
);
117 TRAP_CASE_STRING(GR_PARAM_FOG_EXT
);
118 TRAP_CASE_STRING(GR_PARAM_A
);
119 TRAP_CASE_STRING(GR_PARAM_RGB
);
120 TRAP_CASE_STRING(GR_PARAM_PARGB
);
121 TRAP_CASE_STRING(GR_PARAM_ST0
);
122 TRAP_CASE_STRING(GR_PARAM_ST1
);
123 TRAP_CASE_STRING(GR_PARAM_ST2
);
124 TRAP_CASE_STRING(GR_PARAM_Q0
);
125 TRAP_CASE_STRING(GR_PARAM_Q1
);
126 TRAP_CASE_STRING(GR_PARAM_Q2
);
131 const char *TRP_ARRAY (FxU32 mode
)
134 TRAP_CASE_STRING(GR_POINTS
);
135 TRAP_CASE_STRING(GR_LINE_STRIP
);
136 TRAP_CASE_STRING(GR_LINES
);
137 TRAP_CASE_STRING(GR_POLYGON
);
138 TRAP_CASE_STRING(GR_TRIANGLE_STRIP
);
139 TRAP_CASE_STRING(GR_TRIANGLE_FAN
);
140 TRAP_CASE_STRING(GR_TRIANGLES
);
141 TRAP_CASE_STRING(GR_TRIANGLE_STRIP_CONTINUE
);
142 TRAP_CASE_STRING(GR_TRIANGLE_FAN_CONTINUE
);
147 const char *TRP_BUFFER (GrBuffer_t buffer
)
150 TRAP_CASE_STRING(GR_BUFFER_FRONTBUFFER
);
151 TRAP_CASE_STRING(GR_BUFFER_BACKBUFFER
);
152 TRAP_CASE_STRING(GR_BUFFER_AUXBUFFER
);
153 TRAP_CASE_STRING(GR_BUFFER_DEPTHBUFFER
);
154 TRAP_CASE_STRING(GR_BUFFER_ALPHABUFFER
);
155 TRAP_CASE_STRING(GR_BUFFER_TRIPLEBUFFER
);
156 TRAP_CASE_STRING(GR_BUFFER_TEXTUREBUFFER_EXT
);
157 TRAP_CASE_STRING(GR_BUFFER_TEXTUREAUXBUFFER_EXT
);
162 const char *TRP_ORIGIN (GrOriginLocation_t origin_location
)
164 switch (origin_location
) {
165 TRAP_CASE_STRING(GR_ORIGIN_UPPER_LEFT
);
166 TRAP_CASE_STRING(GR_ORIGIN_LOWER_LEFT
);
167 TRAP_CASE_STRING(GR_ORIGIN_ANY
);
172 const char *TRP_REFRESH (GrScreenRefresh_t refresh_rate
)
174 switch (refresh_rate
) {
175 TRAP_CASE_STRING(GR_REFRESH_60Hz
);
176 TRAP_CASE_STRING(GR_REFRESH_70Hz
);
177 TRAP_CASE_STRING(GR_REFRESH_72Hz
);
178 TRAP_CASE_STRING(GR_REFRESH_75Hz
);
179 TRAP_CASE_STRING(GR_REFRESH_80Hz
);
180 TRAP_CASE_STRING(GR_REFRESH_90Hz
);
181 TRAP_CASE_STRING(GR_REFRESH_100Hz
);
182 TRAP_CASE_STRING(GR_REFRESH_85Hz
);
183 TRAP_CASE_STRING(GR_REFRESH_120Hz
);
184 TRAP_CASE_STRING(GR_REFRESH_NONE
);
189 const char *TRP_COLFMT (GrColorFormat_t color_format
)
191 switch (color_format
) {
192 TRAP_CASE_STRING(GR_COLORFORMAT_ARGB
);
193 TRAP_CASE_STRING(GR_COLORFORMAT_ABGR
);
194 TRAP_CASE_STRING(GR_COLORFORMAT_RGBA
);
195 TRAP_CASE_STRING(GR_COLORFORMAT_BGRA
);
200 const char *TRP_RESOLUTION (GrScreenResolution_t screen_resolution
)
202 switch (screen_resolution
) {
203 TRAP_CASE_STRING(GR_RESOLUTION_320x200
);
204 TRAP_CASE_STRING(GR_RESOLUTION_320x240
);
205 TRAP_CASE_STRING(GR_RESOLUTION_400x256
);
206 TRAP_CASE_STRING(GR_RESOLUTION_512x384
);
207 TRAP_CASE_STRING(GR_RESOLUTION_640x200
);
208 TRAP_CASE_STRING(GR_RESOLUTION_640x350
);
209 TRAP_CASE_STRING(GR_RESOLUTION_640x400
);
210 TRAP_CASE_STRING(GR_RESOLUTION_640x480
);
211 TRAP_CASE_STRING(GR_RESOLUTION_800x600
);
212 TRAP_CASE_STRING(GR_RESOLUTION_960x720
);
213 TRAP_CASE_STRING(GR_RESOLUTION_856x480
);
214 TRAP_CASE_STRING(GR_RESOLUTION_512x256
);
215 TRAP_CASE_STRING(GR_RESOLUTION_1024x768
);
216 TRAP_CASE_STRING(GR_RESOLUTION_1280x1024
);
217 TRAP_CASE_STRING(GR_RESOLUTION_1600x1200
);
218 TRAP_CASE_STRING(GR_RESOLUTION_400x300
);
219 TRAP_CASE_STRING(GR_RESOLUTION_1152x864
);
220 TRAP_CASE_STRING(GR_RESOLUTION_1280x960
);
221 TRAP_CASE_STRING(GR_RESOLUTION_1600x1024
);
222 TRAP_CASE_STRING(GR_RESOLUTION_1792x1344
);
223 TRAP_CASE_STRING(GR_RESOLUTION_1856x1392
);
224 TRAP_CASE_STRING(GR_RESOLUTION_1920x1440
);
225 TRAP_CASE_STRING(GR_RESOLUTION_2048x1536
);
226 TRAP_CASE_STRING(GR_RESOLUTION_2048x2048
);
227 TRAP_CASE_STRING(GR_RESOLUTION_NONE
);
232 const char *TRP_BLEND (GrAlphaBlendFnc_t func
)
235 TRAP_CASE_STRING(GR_BLEND_ZERO
);
236 TRAP_CASE_STRING(GR_BLEND_SRC_ALPHA
);
237 TRAP_CASE_STRING(GR_BLEND_SRC_COLOR
);
238 /*TRAP_CASE_STRING(GR_BLEND_DST_COLOR); ==GR_BLEND_SRC_COLOR*/
239 TRAP_CASE_STRING(GR_BLEND_DST_ALPHA
);
240 TRAP_CASE_STRING(GR_BLEND_ONE
);
241 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_ALPHA
);
242 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_COLOR
);
243 /*TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_COLOR); ==GR_BLEND_ONE_MINUS_SRC_COLOR*/
244 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_ALPHA
);
245 TRAP_CASE_STRING(GR_BLEND_SAME_COLOR_EXT
);
246 /*TRAP_CASE_STRING(GR_BLEND_RESERVED_8); ==GR_BLEND_SAME_COLOR_EXT*/
247 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SAME_COLOR_EXT
);
248 /*TRAP_CASE_STRING(GR_BLEND_RESERVED_9); ==GR_BLEND_ONE_MINUS_SAME_COLOR_EXT*/
249 TRAP_CASE_STRING(GR_BLEND_RESERVED_A
);
250 TRAP_CASE_STRING(GR_BLEND_RESERVED_B
);
251 TRAP_CASE_STRING(GR_BLEND_RESERVED_C
);
252 TRAP_CASE_STRING(GR_BLEND_RESERVED_D
);
253 TRAP_CASE_STRING(GR_BLEND_RESERVED_E
);
254 TRAP_CASE_STRING(GR_BLEND_ALPHA_SATURATE
);
255 /*TRAP_CASE_STRING(GR_BLEND_PREFOG_COLOR); ==GR_BLEND_ALPHA_SATURATE*/
260 const char *TRP_CMBFUNC (GrCombineFunction_t cfunc
)
263 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_ZERO
);
264 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_NONE); ==GR_COMBINE_FUNCTION_ZERO*/
265 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL
);
266 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL_ALPHA
);
267 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER
);
268 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_OTHER); ==GR_COMBINE_FUNCTION_SCALE_OTHER*/
269 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL
);
270 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL_ALPHA
);
271 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL
);
272 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL
);
273 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND); ==GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL*/
274 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
275 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL
);
276 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_LOCAL); ==GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL*/
277 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
282 const char *TRP_CMBFACT (GrCombineFactor_t cfactor
)
285 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ZERO
);
286 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_NONE); ==GR_COMBINE_FACTOR_ZERO*/
287 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL
);
288 TRAP_CASE_STRING(GR_COMBINE_FACTOR_OTHER_ALPHA
);
289 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL_ALPHA
);
290 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_ALPHA
);
291 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_RGB
);
292 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_TEXTURE_ALPHA*/
293 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOD_FRACTION); ==GR_COMBINE_FACTOR_TEXTURE_RGB ???*/
294 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE
);
295 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL
);
296 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_OTHER_ALPHA
);
297 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL_ALPHA
);
298 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA
);
299 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA*/
300 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOD_FRACTION
);
305 const char *TRP_CMBLOCAL (GrCombineLocal_t clocal
)
308 TRAP_CASE_STRING(GR_COMBINE_LOCAL_ITERATED
);
309 TRAP_CASE_STRING(GR_COMBINE_LOCAL_CONSTANT
);
310 /*TRAP_CASE_STRING(GR_COMBINE_LOCAL_NONE); ==GR_COMBINE_LOCAL_CONSTANT*/
311 TRAP_CASE_STRING(GR_COMBINE_LOCAL_DEPTH
);
316 const char *TRP_CMBOTHER (GrCombineOther_t cother
)
319 TRAP_CASE_STRING(GR_COMBINE_OTHER_ITERATED
);
320 TRAP_CASE_STRING(GR_COMBINE_OTHER_TEXTURE
);
321 TRAP_CASE_STRING(GR_COMBINE_OTHER_CONSTANT
);
322 /*TRAP_CASE_STRING(GR_COMBINE_OTHER_NONE); ==GR_COMBINE_OTHER_CONSTANT*/
327 const char *TRP_CMPFUNC (GrCmpFnc_t function
)
330 TRAP_CASE_STRING(GR_CMP_NEVER
);
331 TRAP_CASE_STRING(GR_CMP_LESS
);
332 TRAP_CASE_STRING(GR_CMP_EQUAL
);
333 TRAP_CASE_STRING(GR_CMP_LEQUAL
);
334 TRAP_CASE_STRING(GR_CMP_GREATER
);
335 TRAP_CASE_STRING(GR_CMP_NOTEQUAL
);
336 TRAP_CASE_STRING(GR_CMP_GEQUAL
);
337 TRAP_CASE_STRING(GR_CMP_ALWAYS
);
342 const char *TRP_CKMODE (GrChromakeyMode_t mode
)
345 TRAP_CASE_STRING(GR_CHROMAKEY_DISABLE
);
346 TRAP_CASE_STRING(GR_CHROMAKEY_ENABLE
);
351 const char *TRP_CULLMODE (GrCullMode_t mode
)
354 TRAP_CASE_STRING(GR_CULL_DISABLE
);
355 TRAP_CASE_STRING(GR_CULL_NEGATIVE
);
356 TRAP_CASE_STRING(GR_CULL_POSITIVE
);
361 const char *TRP_DEPTHMODE (GrDepthBufferMode_t mode
)
364 TRAP_CASE_STRING(GR_DEPTHBUFFER_DISABLE
);
365 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER
);
366 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER
);
367 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER_COMPARE_TO_BIAS
);
368 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER_COMPARE_TO_BIAS
);
373 const char *TRP_DITHERMODE (GrDitherMode_t mode
)
376 TRAP_CASE_STRING(GR_DITHER_DISABLE
);
377 TRAP_CASE_STRING(GR_DITHER_2x2
);
378 TRAP_CASE_STRING(GR_DITHER_4x4
);
383 const char *TRP_FOGMODE (GrFogMode_t mode
)
386 TRAP_CASE_STRING(GR_FOG_DISABLE
);
387 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_FOGCOORD_EXT
);
388 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_Q
);
389 /*TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_W); ==GR_FOG_WITH_TABLE_ON_Q*/
390 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_Z
);
391 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_ALPHA_EXT
);
392 TRAP_CASE_STRING(GR_FOG_MULT2
);
393 TRAP_CASE_STRING(GR_FOG_ADD2
);
398 const char *TRP_GETNAME (FxU32 pname
)
401 TRAP_CASE_STRING(GR_BITS_DEPTH
);
402 TRAP_CASE_STRING(GR_BITS_RGBA
);
403 TRAP_CASE_STRING(GR_FIFO_FULLNESS
);
404 TRAP_CASE_STRING(GR_FOG_TABLE_ENTRIES
);
405 TRAP_CASE_STRING(GR_GAMMA_TABLE_ENTRIES
);
406 TRAP_CASE_STRING(GR_GLIDE_STATE_SIZE
);
407 TRAP_CASE_STRING(GR_GLIDE_VERTEXLAYOUT_SIZE
);
408 TRAP_CASE_STRING(GR_IS_BUSY
);
409 TRAP_CASE_STRING(GR_LFB_PIXEL_PIPE
);
410 TRAP_CASE_STRING(GR_MAX_TEXTURE_SIZE
);
411 TRAP_CASE_STRING(GR_MAX_TEXTURE_ASPECT_RATIO
);
412 TRAP_CASE_STRING(GR_MEMORY_FB
);
413 TRAP_CASE_STRING(GR_MEMORY_TMU
);
414 TRAP_CASE_STRING(GR_MEMORY_UMA
);
415 TRAP_CASE_STRING(GR_NUM_BOARDS
);
416 TRAP_CASE_STRING(GR_NON_POWER_OF_TWO_TEXTURES
);
417 TRAP_CASE_STRING(GR_NUM_FB
);
418 TRAP_CASE_STRING(GR_NUM_SWAP_HISTORY_BUFFER
);
419 TRAP_CASE_STRING(GR_NUM_TMU
);
420 TRAP_CASE_STRING(GR_PENDING_BUFFERSWAPS
);
421 TRAP_CASE_STRING(GR_REVISION_FB
);
422 TRAP_CASE_STRING(GR_REVISION_TMU
);
423 TRAP_CASE_STRING(GR_STATS_LINES
);
424 TRAP_CASE_STRING(GR_STATS_PIXELS_AFUNC_FAIL
);
425 TRAP_CASE_STRING(GR_STATS_PIXELS_CHROMA_FAIL
);
426 TRAP_CASE_STRING(GR_STATS_PIXELS_DEPTHFUNC_FAIL
);
427 TRAP_CASE_STRING(GR_STATS_PIXELS_IN
);
428 TRAP_CASE_STRING(GR_STATS_PIXELS_OUT
);
429 TRAP_CASE_STRING(GR_STATS_PIXELS
);
430 TRAP_CASE_STRING(GR_STATS_POINTS
);
431 TRAP_CASE_STRING(GR_STATS_TRIANGLES_IN
);
432 TRAP_CASE_STRING(GR_STATS_TRIANGLES_OUT
);
433 TRAP_CASE_STRING(GR_STATS_TRIANGLES
);
434 TRAP_CASE_STRING(GR_SWAP_HISTORY
);
435 TRAP_CASE_STRING(GR_SUPPORTS_PASSTHRU
);
436 TRAP_CASE_STRING(GR_TEXTURE_ALIGN
);
437 TRAP_CASE_STRING(GR_VIDEO_POSITION
);
438 TRAP_CASE_STRING(GR_VIEWPORT
);
439 TRAP_CASE_STRING(GR_WDEPTH_MIN_MAX
);
440 TRAP_CASE_STRING(GR_ZDEPTH_MIN_MAX
);
441 TRAP_CASE_STRING(GR_VERTEX_PARAMETER
);
442 TRAP_CASE_STRING(GR_BITS_GAMMA
);
443 TRAP_CASE_STRING(GR_GET_RESERVED_1
);
448 const char *TRP_GETSTRING (FxU32 pname
)
451 TRAP_CASE_STRING(GR_EXTENSION
);
452 TRAP_CASE_STRING(GR_HARDWARE
);
453 TRAP_CASE_STRING(GR_RENDERER
);
454 TRAP_CASE_STRING(GR_VENDOR
);
455 TRAP_CASE_STRING(GR_VERSION
);
460 const char *TRP_ENABLE (GrEnableMode_t mode
)
463 TRAP_CASE_STRING(GR_AA_ORDERED
);
464 TRAP_CASE_STRING(GR_ALLOW_MIPMAP_DITHER
);
465 TRAP_CASE_STRING(GR_PASSTHRU
);
466 TRAP_CASE_STRING(GR_SHAMELESS_PLUG
);
467 TRAP_CASE_STRING(GR_VIDEO_SMOOTHING
);
468 TRAP_CASE_STRING(GR_TEXTURE_UMA_EXT
);
469 TRAP_CASE_STRING(GR_STENCIL_MODE_EXT
);
470 TRAP_CASE_STRING(GR_OPENGL_MODE_EXT
);
475 const char *TRP_COORD (GrCoordinateSpaceMode_t mode
)
478 TRAP_CASE_STRING(GR_WINDOW_COORDS
);
479 TRAP_CASE_STRING(GR_CLIP_COORDS
);
484 const char *TRP_STIPPLEMODE (GrStippleMode_t mode
)
487 TRAP_CASE_STRING(GR_STIPPLE_DISABLE
);
488 TRAP_CASE_STRING(GR_STIPPLE_PATTERN
);
489 TRAP_CASE_STRING(GR_STIPPLE_ROTATE
);
494 const char *TRP_LODLEVEL (GrLOD_t lod
)
497 TRAP_CASE_STRING(GR_LOD_LOG2_2048
);
498 TRAP_CASE_STRING(GR_LOD_LOG2_1024
);
499 TRAP_CASE_STRING(GR_LOD_LOG2_512
);
500 TRAP_CASE_STRING(GR_LOD_LOG2_256
);
501 TRAP_CASE_STRING(GR_LOD_LOG2_128
);
502 TRAP_CASE_STRING(GR_LOD_LOG2_64
);
503 TRAP_CASE_STRING(GR_LOD_LOG2_32
);
504 TRAP_CASE_STRING(GR_LOD_LOG2_16
);
505 TRAP_CASE_STRING(GR_LOD_LOG2_8
);
506 TRAP_CASE_STRING(GR_LOD_LOG2_4
);
507 TRAP_CASE_STRING(GR_LOD_LOG2_2
);
508 TRAP_CASE_STRING(GR_LOD_LOG2_1
);
513 const char *TRP_ASPECTRATIO (GrAspectRatio_t aspect
)
516 TRAP_CASE_STRING(GR_ASPECT_LOG2_8x1
);
517 TRAP_CASE_STRING(GR_ASPECT_LOG2_4x1
);
518 TRAP_CASE_STRING(GR_ASPECT_LOG2_2x1
);
519 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x1
);
520 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x2
);
521 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x4
);
522 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x8
);
527 const char *TRP_TEXFMT (GrTextureFormat_t fmt
)
530 TRAP_CASE_STRING(GR_TEXFMT_8BIT
);
531 /*TRAP_CASE_STRING(GR_TEXFMT_RGB_332); ==GR_TEXFMT_8BIT*/
532 TRAP_CASE_STRING(GR_TEXFMT_YIQ_422
);
533 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_8
);
534 TRAP_CASE_STRING(GR_TEXFMT_INTENSITY_8
);
535 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_44
);
536 TRAP_CASE_STRING(GR_TEXFMT_P_8
);
537 TRAP_CASE_STRING(GR_TEXFMT_RSVD0
);
538 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666); ==GR_TEXFMT_RSVD0*/
539 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666_EXT); ==GR_TEXFMT_RSVD0*/
540 TRAP_CASE_STRING(GR_TEXFMT_RSVD1
);
541 TRAP_CASE_STRING(GR_TEXFMT_16BIT
);
542 /*TRAP_CASE_STRING(GR_TEXFMT_ARGB_8332); ==GR_TEXFMT_16BIT*/
543 TRAP_CASE_STRING(GR_TEXFMT_AYIQ_8422
);
544 TRAP_CASE_STRING(GR_TEXFMT_RGB_565
);
545 TRAP_CASE_STRING(GR_TEXFMT_ARGB_1555
);
546 TRAP_CASE_STRING(GR_TEXFMT_ARGB_4444
);
547 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_88
);
548 TRAP_CASE_STRING(GR_TEXFMT_AP_88
);
549 TRAP_CASE_STRING(GR_TEXFMT_RSVD2
);
550 /*TRAP_CASE_STRING(GR_TEXFMT_RSVD4); ==GR_TEXFMT_RSVD2*/
551 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_FXT1
);
552 TRAP_CASE_STRING(GR_TEXFMT_ARGB_8888
);
553 TRAP_CASE_STRING(GR_TEXFMT_YUYV_422
);
554 TRAP_CASE_STRING(GR_TEXFMT_UYVY_422
);
555 TRAP_CASE_STRING(GR_TEXFMT_AYUV_444
);
556 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT1
);
557 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT2
);
558 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT3
);
559 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT4
);
560 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT5
);
561 TRAP_CASE_STRING(GR_TEXTFMT_RGB_888
);
566 const char *TRP_EVENODD (FxU32 evenOdd
)
569 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_EVEN
);
570 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_ODD
);
571 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_BOTH
);
576 const char *TRP_NCC (GrNCCTable_t table
)
579 TRAP_CASE_STRING(GR_NCCTABLE_NCC0
);
580 TRAP_CASE_STRING(GR_NCCTABLE_NCC1
);
585 const char *TRP_CLAMPMODE (GrTextureClampMode_t clampmode
)
588 TRAP_CASE_STRING(GR_TEXTURECLAMP_WRAP
);
589 TRAP_CASE_STRING(GR_TEXTURECLAMP_CLAMP
);
590 TRAP_CASE_STRING(GR_TEXTURECLAMP_MIRROR_EXT
);
595 const char *TRP_TEXFILTER (GrTextureFilterMode_t filter_mode
)
597 switch (filter_mode
) {
598 TRAP_CASE_STRING(GR_TEXTUREFILTER_POINT_SAMPLED
);
599 TRAP_CASE_STRING(GR_TEXTUREFILTER_BILINEAR
);
604 const char *TRP_TABLE (GrTexTable_t type
)
607 TRAP_CASE_STRING(GR_TEXTABLE_NCC0
);
608 TRAP_CASE_STRING(GR_TEXTABLE_NCC1
);
609 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE
);
610 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE_6666_EXT
);
615 const char *TRP_MIPMODE (GrMipMapMode_t mode
)
618 TRAP_CASE_STRING(GR_MIPMAP_DISABLE
);
619 TRAP_CASE_STRING(GR_MIPMAP_NEAREST
);
620 TRAP_CASE_STRING(GR_MIPMAP_NEAREST_DITHER
);
625 const char *TRP_TEXBASERANGE (GrTexBaseRange_t range
)
628 TRAP_CASE_STRING(GR_TEXBASE_2048
);
629 TRAP_CASE_STRING(GR_TEXBASE_1024
);
630 TRAP_CASE_STRING(GR_TEXBASE_512
);
631 TRAP_CASE_STRING(GR_TEXBASE_256_TO_1
);
632 TRAP_CASE_STRING(GR_TEXBASE_256
);
633 TRAP_CASE_STRING(GR_TEXBASE_128
);
634 TRAP_CASE_STRING(GR_TEXBASE_64
);
635 TRAP_CASE_STRING(GR_TEXBASE_32_TO_1
);
640 const char *TRP_LOCKTYPE (GrLock_t type
)
643 TRAP_CASE_STRING(GR_LFB_READ_ONLY
);
644 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY
);
645 /*TRAP_CASE_STRING(GR_LFB_IDLE); ==GR_LFB_READ_ONLY*/
646 TRAP_CASE_STRING(GR_LFB_NOIDLE
);
647 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY_EXPLICIT_EXT
);
652 const char *TRP_WRITEMODE (GrLfbWriteMode_t writeMode
)
655 TRAP_CASE_STRING(GR_LFBWRITEMODE_565
);
656 TRAP_CASE_STRING(GR_LFBWRITEMODE_555
);
657 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555
);
658 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED1
);
659 TRAP_CASE_STRING(GR_LFBWRITEMODE_888
);
660 TRAP_CASE_STRING(GR_LFBWRITEMODE_8888
);
661 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED2
);
662 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED3
);
663 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
);
664 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED5
);
665 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED6
);
666 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED7
);
667 TRAP_CASE_STRING(GR_LFBWRITEMODE_565_DEPTH
);
668 TRAP_CASE_STRING(GR_LFBWRITEMODE_555_DEPTH
);
669 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555_DEPTH
);
670 TRAP_CASE_STRING(GR_LFBWRITEMODE_ZA16
);
671 TRAP_CASE_STRING(GR_LFBWRITEMODE_ANY
);
676 const char *TRP_SRCFMT (GrLfbSrcFmt_t src_format
)
678 switch (src_format
) {
679 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565
);
680 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555
);
681 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555
);
682 TRAP_CASE_STRING(GR_LFB_SRC_FMT_888
);
683 TRAP_CASE_STRING(GR_LFB_SRC_FMT_8888
);
684 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565_DEPTH
);
685 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555_DEPTH
);
686 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555_DEPTH
);
687 TRAP_CASE_STRING(GR_LFB_SRC_FMT_ZA16
);
688 TRAP_CASE_STRING(GR_LFB_SRC_FMT_RLE16
);
689 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
); /*???*/
694 const char *TRP_CRMODE (GrChromaRangeMode_t mode
)
697 TRAP_CASE_STRING(GR_CHROMARANGE_DISABLE_EXT
);
698 /*TRAP_CASE_STRING(GR_CHROMARANGE_RGB_ALL_EXT); ==GR_CHROMARANGE_DISABLE_EXT*/
699 TRAP_CASE_STRING(GR_CHROMARANGE_ENABLE_EXT
);
704 const char *TRP_PIXFMT (GrPixelFormat_t pixelformat
)
706 switch (pixelformat
) {
707 TRAP_CASE_STRING(GR_PIXFMT_I_8
);
708 TRAP_CASE_STRING(GR_PIXFMT_AI_88
);
709 TRAP_CASE_STRING(GR_PIXFMT_RGB_565
);
710 TRAP_CASE_STRING(GR_PIXFMT_ARGB_1555
);
711 TRAP_CASE_STRING(GR_PIXFMT_ARGB_8888
);
712 TRAP_CASE_STRING(GR_PIXFMT_AA_2_RGB_565
);
713 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_1555
);
714 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_8888
);
715 TRAP_CASE_STRING(GR_PIXFMT_AA_4_RGB_565
);
716 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_1555
);
717 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_8888
);
718 TRAP_CASE_STRING(GR_PIXFMT_AA_8_RGB_565
);
719 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_1555
);
720 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_8888
);
725 const char *TRP_STENCILOP (GrStencilOp_t op
)
728 TRAP_CASE_STRING(GR_STENCILOP_KEEP
);
729 TRAP_CASE_STRING(GR_STENCILOP_ZERO
);
730 TRAP_CASE_STRING(GR_STENCILOP_REPLACE
);
731 TRAP_CASE_STRING(GR_STENCILOP_INCR_CLAMP
);
732 TRAP_CASE_STRING(GR_STENCILOP_DECR_CLAMP
);
733 TRAP_CASE_STRING(GR_STENCILOP_INVERT
);
734 TRAP_CASE_STRING(GR_STENCILOP_INCR_WRAP
);
735 TRAP_CASE_STRING(GR_STENCILOP_DECR_WRAP
);
740 const char *TRP_BLENDOP (GrAlphaBlendOp_t op
)
743 TRAP_CASE_STRING(GR_BLEND_OP_ADD
);
744 TRAP_CASE_STRING(GR_BLEND_OP_SUB
);
745 TRAP_CASE_STRING(GR_BLEND_OP_REVSUB
);
750 const char *TRP_CU (GrCCUColor_t a
)
753 TRAP_CASE_STRING(GR_CMBX_ZERO
);
754 TRAP_CASE_STRING(GR_CMBX_TEXTURE_ALPHA
);
755 TRAP_CASE_STRING(GR_CMBX_ALOCAL
);
756 TRAP_CASE_STRING(GR_CMBX_AOTHER
);
757 TRAP_CASE_STRING(GR_CMBX_B
);
758 TRAP_CASE_STRING(GR_CMBX_CONSTANT_ALPHA
);
759 TRAP_CASE_STRING(GR_CMBX_CONSTANT_COLOR
);
760 TRAP_CASE_STRING(GR_CMBX_DETAIL_FACTOR
);
761 TRAP_CASE_STRING(GR_CMBX_ITALPHA
);
762 TRAP_CASE_STRING(GR_CMBX_ITRGB
);
763 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_ALPHA
);
764 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_RGB
);
765 TRAP_CASE_STRING(GR_CMBX_LOD_FRAC
);
766 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_ALPHA
);
767 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_RGB
);
768 TRAP_CASE_STRING(GR_CMBX_TEXTURE_RGB
);
769 TRAP_CASE_STRING(GR_CMBX_TMU_CALPHA
);
770 TRAP_CASE_STRING(GR_CMBX_TMU_CCOLOR
);
775 const char *TRP_CMBMODE (GrCombineMode_t a_mode
)
778 TRAP_CASE_STRING(GR_FUNC_MODE_ZERO
);
779 TRAP_CASE_STRING(GR_FUNC_MODE_X
);
780 TRAP_CASE_STRING(GR_FUNC_MODE_ONE_MINUS_X
);
781 TRAP_CASE_STRING(GR_FUNC_MODE_NEGATIVE_X
);
782 TRAP_CASE_STRING(GR_FUNC_MODE_X_MINUS_HALF
);
787 const char *TRP_TMU (GrChipID_t tmu
)
790 TRAP_CASE_STRING(GR_TMU0
);
791 TRAP_CASE_STRING(GR_TMU1
);
796 const char *TRP_TXDITHER (FxU32 dither
)
799 TRAP_CASE_STRING(TX_DITHER_NONE
);
800 TRAP_CASE_STRING(TX_DITHER_4x4
);
801 TRAP_CASE_STRING(TX_DITHER_ERR
);
806 const char *TRP_TXCOMPRESS (FxU32 compress
)
809 TRAP_CASE_STRING(TX_COMPRESSION_STATISTICAL
);
810 TRAP_CASE_STRING(TX_COMPRESSION_HEURISTIC
);
817 /****************************************************************************\
819 \****************************************************************************/
824 char * (FX_CALL
*real_grGetRegistryOrEnvironmentStringExt
) (char *theEntry
);
825 void (FX_CALL
*real_grGetGammaTableExt
) (FxU32 nentries
, FxU32
*red
, FxU32
*green
, FxU32
*blue
);
826 void (FX_CALL
*real_grChromaRangeModeExt
) (GrChromakeyMode_t mode
);
827 void (FX_CALL
*real_grChromaRangeExt
) (GrColor_t color
, GrColor_t range
, GrChromaRangeMode_t match_mode
);
828 void (FX_CALL
*real_grTexChromaModeExt
) (GrChipID_t tmu
, GrChromakeyMode_t mode
);
829 void (FX_CALL
*real_grTexChromaRangeExt
) (GrChipID_t tmu
, GrColor_t min
, GrColor_t max
, GrTexChromakeyMode_t mode
);
832 void (FX_CALL
*real_grTexDownloadTableExt
) (GrChipID_t tmu
, GrTexTable_t type
, void *data
);
833 void (FX_CALL
*real_grTexDownloadTablePartialExt
) (GrChipID_t tmu
, GrTexTable_t type
, void *data
, int start
, int end
);
834 void (FX_CALL
*real_grTexNCCTableExt
) (GrChipID_t tmu
, GrNCCTable_t table
);
837 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
);
838 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
);
839 void (FX_CALL
*real_grAuxBufferExt
) (GrBuffer_t buffer
);
842 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
);
843 void (FX_CALL
*real_grStencilFuncExt
) (GrCmpFnc_t fnc
, GrStencil_t ref
, GrStencil_t mask
);
844 void (FX_CALL
*real_grStencilMaskExt
) (GrStencil_t value
);
845 void (FX_CALL
*real_grStencilOpExt
) (GrStencilOp_t stencil_fail
, GrStencilOp_t depth_fail
, GrStencilOp_t depth_pass
);
846 void (FX_CALL
*real_grLfbConstantStencilExt
) (GrStencil_t value
);
847 void (FX_CALL
*real_grBufferClearExt
) (GrColor_t color
, GrAlpha_t alpha
, FxU32 depth
, GrStencil_t stencil
);
848 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
);
849 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
);
850 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
);
851 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
);
852 void (FX_CALL
*real_grConstantColorValueExt
) (GrChipID_t tmu
, GrColor_t value
);
853 void (FX_CALL
*real_grColorMaskExt
) (FxBool r
, FxBool g
, FxBool b
, FxBool a
);
854 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
);
855 void (FX_CALL
*real_grTBufferWriteMaskExt
) (FxU32 tmask
);
859 /****************************************************************************\
861 \****************************************************************************/
864 ** rendering functions
866 void FX_CALL
trap_grDrawPoint (const void *pt
)
868 #define FN_NAME "grDrawPoint"
869 TRAP_LOG("%s(%p)\n", FN_NAME
, pt
);
874 void FX_CALL
trap_grDrawLine (const void *v1
,
877 #define FN_NAME "grDrawLine"
878 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, v1
, v2
);
883 void FX_CALL
trap_grDrawTriangle (const void *a
,
887 #define FN_NAME "grDrawTriangle"
888 TRAP_LOG("%s(%p, %p, %p)\n", FN_NAME
, a
, b
, c
);
889 grDrawTriangle(a
, b
, c
);
893 void FX_CALL
trap_grVertexLayout (FxU32 param
,
897 #define FN_NAME "grVertexLayout"
898 TRAP_LOG("%s(%s, %ld, %s)\n", FN_NAME
, TRP_VTX(param
), offset
, TRP_PARAM(mode
));
899 grVertexLayout(param
, offset
, mode
);
903 void FX_CALL
trap_grDrawVertexArray (FxU32 mode
,
907 #define FN_NAME "grDrawVertexArray"
908 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
);
909 grDrawVertexArray(mode
, Count
, pointers
);
913 void FX_CALL
trap_grDrawVertexArrayContiguous (FxU32 mode
,
918 #define FN_NAME "grDrawVertexArrayContiguous"
919 TRAP_LOG("%s(%s, %lu, %p, %lu)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
, stride
);
920 grDrawVertexArrayContiguous(mode
, Count
, pointers
, stride
);
925 ** Antialiasing Functions
927 void FX_CALL
trap_grAADrawTriangle (const void *a
,
934 #define FN_NAME "grAADrawTriangle"
935 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
));
936 grAADrawTriangle(a
, b
, c
, ab_antialias
, bc_antialias
, ca_antialias
);
943 void FX_CALL
trap_grBufferClear (GrColor_t color
,
947 #define FN_NAME "grBufferClear"
948 TRAP_LOG("%s(%08lx, %02x, %08lx)\n", FN_NAME
, color
, alpha
, depth
);
949 grBufferClear(color
, alpha
, depth
);
953 void FX_CALL
trap_grBufferSwap (FxU32 swap_interval
)
955 #define FN_NAME "grBufferSwap"
956 TRAP_LOG("%s(%lu)\n", FN_NAME
, swap_interval
);
957 grBufferSwap(swap_interval
);
961 void FX_CALL
trap_grRenderBuffer (GrBuffer_t buffer
)
963 #define FN_NAME "grRenderBuffer"
964 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
965 grRenderBuffer(buffer
);
972 void FX_CALL
trap_grErrorSetCallback (GrErrorCallbackFnc_t fnc
)
974 #define FN_NAME "grErrorSetCallback"
975 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)fnc
);
976 grErrorSetCallback(fnc
);
983 void FX_CALL
trap_grFinish (void)
985 #define FN_NAME "grFinish"
986 TRAP_LOG("%s()\n", FN_NAME
);
991 void FX_CALL
trap_grFlush (void)
993 #define FN_NAME "grFlush"
994 TRAP_LOG("%s()\n", FN_NAME
);
999 GrContext_t FX_CALL
trap_grSstWinOpen (FxU32 hWnd
,
1000 GrScreenResolution_t screen_resolution
,
1001 GrScreenRefresh_t refresh_rate
,
1002 GrColorFormat_t color_format
,
1003 GrOriginLocation_t origin_location
,
1007 #define FN_NAME "grSstWinOpen"
1009 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
);
1010 rv
= grSstWinOpen(hWnd
, screen_resolution
, refresh_rate
, color_format
, origin_location
, nColBuffers
, nAuxBuffers
);
1011 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1016 FxBool FX_CALL
trap_grSstWinClose (GrContext_t context
)
1018 #define FN_NAME "grSstWinClose"
1020 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
1021 rv
= grSstWinClose(context
);
1022 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1027 void FX_CALL
trap_grSetNumPendingBuffers (FxI32 NumPendingBuffers
)
1029 #define FN_NAME "grSetNumPendingBuffers"
1030 TRAP_LOG("%s(%ld)\n", FN_NAME
, NumPendingBuffers
);
1031 grSetNumPendingBuffers(NumPendingBuffers
);
1035 FxBool FX_CALL
trap_grSelectContext (GrContext_t context
)
1037 #define FN_NAME "grSelectContext"
1039 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
1040 rv
= grSelectContext(context
);
1041 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1046 void FX_CALL
trap_grSstOrigin (GrOriginLocation_t origin
)
1048 #define FN_NAME "grSstOrigin"
1049 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ORIGIN(origin
));
1050 grSstOrigin(origin
);
1054 void FX_CALL
trap_grSstSelect (int which_sst
)
1056 #define FN_NAME "grSstSelect"
1057 TRAP_LOG("%s(%d)\n", FN_NAME
, which_sst
);
1058 grSstSelect(which_sst
);
1063 ** Glide configuration and special effect maintenance functions
1065 void FX_CALL
trap_grAlphaBlendFunction (GrAlphaBlendFnc_t rgb_sf
,
1066 GrAlphaBlendFnc_t rgb_df
,
1067 GrAlphaBlendFnc_t alpha_sf
,
1068 GrAlphaBlendFnc_t alpha_df
)
1070 #define FN_NAME "grAlphaBlendFunction"
1071 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
));
1072 grAlphaBlendFunction(rgb_sf
, rgb_df
, alpha_sf
, alpha_df
);
1076 void FX_CALL
trap_grAlphaCombine (GrCombineFunction_t function
,
1077 GrCombineFactor_t factor
,
1078 GrCombineLocal_t local
,
1079 GrCombineOther_t other
,
1082 #define FN_NAME "grAlphaCombine"
1083 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
));
1084 grAlphaCombine(function
, factor
, local
, other
, invert
);
1088 void FX_CALL
trap_grAlphaControlsITRGBLighting (FxBool enable
)
1090 #define FN_NAME "grAlphaControlsITRGBLighting"
1091 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(enable
));
1092 grAlphaControlsITRGBLighting(enable
);
1096 void FX_CALL
trap_grAlphaTestFunction (GrCmpFnc_t function
)
1098 #define FN_NAME "grAlphaTestFunction"
1099 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1100 grAlphaTestFunction(function
);
1104 void FX_CALL
trap_grAlphaTestReferenceValue (GrAlpha_t value
)
1106 #define FN_NAME "grAlphaTestReferenceValue"
1107 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
1108 grAlphaTestReferenceValue(value
);
1112 void FX_CALL
trap_grChromakeyMode (GrChromakeyMode_t mode
)
1114 #define FN_NAME "grChromakeyMode"
1115 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1116 grChromakeyMode(mode
);
1120 void FX_CALL
trap_grChromakeyValue (GrColor_t value
)
1122 #define FN_NAME "grChromakeyValue"
1123 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1124 grChromakeyValue(value
);
1128 void FX_CALL
trap_grClipWindow (FxU32 minx
,
1133 #define FN_NAME "grClipWindow"
1134 TRAP_LOG("%s(%lu, %lu, %lu, %lu)\n", FN_NAME
, minx
, miny
, maxx
, maxy
);
1135 grClipWindow(minx
, miny
, maxx
, maxy
);
1139 void FX_CALL
trap_grColorCombine (GrCombineFunction_t function
,
1140 GrCombineFactor_t factor
,
1141 GrCombineLocal_t local
,
1142 GrCombineOther_t other
,
1145 #define FN_NAME "grColorCombine"
1146 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
));
1147 grColorCombine(function
, factor
, local
, other
, invert
);
1151 void FX_CALL
trap_grColorMask (FxBool rgb
,
1154 #define FN_NAME "grColorMask"
1155 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(rgb
), TRP_BOOL(a
));
1156 grColorMask(rgb
, a
);
1160 void FX_CALL
trap_grCullMode (GrCullMode_t mode
)
1162 #define FN_NAME "grCullMode"
1163 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CULLMODE(mode
));
1168 void FX_CALL
trap_grConstantColorValue (GrColor_t value
)
1170 #define FN_NAME "grConstantColorValue"
1171 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1172 grConstantColorValue(value
);
1176 void FX_CALL
trap_grDepthBiasLevel (FxI32 level
)
1178 #define FN_NAME "grDepthBiasLevel"
1179 TRAP_LOG("%s(%ld)\n", FN_NAME
, level
);
1180 grDepthBiasLevel(level
);
1184 void FX_CALL
trap_grDepthBufferFunction (GrCmpFnc_t function
)
1186 #define FN_NAME "grDepthBufferFunction"
1187 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1188 grDepthBufferFunction(function
);
1192 void FX_CALL
trap_grDepthBufferMode (GrDepthBufferMode_t mode
)
1194 #define FN_NAME "grDepthBufferMode"
1195 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DEPTHMODE(mode
));
1196 grDepthBufferMode(mode
);
1200 void FX_CALL
trap_grDepthMask (FxBool mask
)
1202 #define FN_NAME "grDepthMask"
1203 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(mask
));
1208 void FX_CALL
trap_grDisableAllEffects (void)
1210 #define FN_NAME "grDisableAllEffects"
1211 TRAP_LOG("%s()\n", FN_NAME
);
1212 grDisableAllEffects();
1216 void FX_CALL
trap_grDitherMode (GrDitherMode_t mode
)
1218 #define FN_NAME "grDitherMode"
1219 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DITHERMODE(mode
));
1224 void FX_CALL
trap_grFogColorValue (GrColor_t fogcolor
)
1226 #define FN_NAME "grFogColorValue"
1227 TRAP_LOG("%s(%08lx)\n", FN_NAME
, fogcolor
);
1228 grFogColorValue(fogcolor
);
1232 void FX_CALL
trap_grFogMode (GrFogMode_t mode
)
1234 #define FN_NAME "grFogMode"
1235 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_FOGMODE(mode
));
1240 void FX_CALL
trap_grFogTable (const GrFog_t ft
[])
1242 #define FN_NAME "grFogTable"
1243 TRAP_LOG("%s(%p)\n", FN_NAME
, ft
);
1248 void FX_CALL
trap_grLoadGammaTable (FxU32 nentries
,
1253 #define FN_NAME "grLoadGammaTable"
1254 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1255 grLoadGammaTable(nentries
, red
, green
, blue
);
1259 void FX_CALL
trap_grSplash (float x
,
1265 #define FN_NAME "grSplash"
1266 TRAP_LOG("%s(%f, %f, %f, %f, %lu)\n", FN_NAME
, x
, y
, width
, height
, frame
);
1267 grSplash(x
, y
, width
, height
, frame
);
1271 FxU32 FX_CALL
trap_grGet (FxU32 pname
,
1275 #define FN_NAME "grGet"
1277 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_GETNAME(pname
), plength
, (void *)params
);
1278 rv
= grGet(pname
, plength
, params
);
1280 for (i
= 0; i
< (rv
/sizeof(FxI32
)); i
++) {
1281 TRAP_LOG("%s%ld", i
? ", " : "", params
[i
]);
1288 const char *FX_CALL
trap_grGetString (FxU32 pname
)
1290 #define FN_NAME "grGetString"
1292 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETSTRING(pname
));
1293 rv
= grGetString(pname
);
1295 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1297 TRAP_LOG(GOT
"NULL\n");
1303 FxI32 FX_CALL
trap_grQueryResolutions (const GrResolution
*resTemplate
,
1304 GrResolution
*output
)
1306 #define FN_NAME "grQueryResolutions"
1308 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)resTemplate
, (void *)output
);
1309 rv
= grQueryResolutions(resTemplate
, output
);
1310 TRAP_LOG(GOT
"%ld\n", rv
);
1315 FxBool FX_CALL
trap_grReset (FxU32 what
)
1317 #define FN_NAME "grReset"
1319 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETNAME(what
));
1321 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1326 GrProc FX_CALL
trap_grGetProcAddress (char *procName
)
1328 #define FN_NAME "grGetProcAddress"
1330 TRAP_LOG("%s(%s)\n", FN_NAME
, procName
);
1331 rv
= grGetProcAddress(procName
);
1332 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1337 void FX_CALL
trap_grEnable (GrEnableMode_t mode
)
1339 #define FN_NAME "grEnable"
1340 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1345 void FX_CALL
trap_grDisable (GrEnableMode_t mode
)
1347 #define FN_NAME "grDisable"
1348 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1353 void FX_CALL
trap_grCoordinateSpace (GrCoordinateSpaceMode_t mode
)
1355 #define FN_NAME "grCoordinateSpace"
1356 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COORD(mode
));
1357 grCoordinateSpace(mode
);
1361 void FX_CALL
trap_grDepthRange (FxFloat n
,
1364 #define FN_NAME "grDepthRange"
1365 TRAP_LOG("%s(%f, %f)\n", FN_NAME
, n
, f
);
1370 void FX_CALL
trap_grStippleMode (GrStippleMode_t mode
)
1372 #define FN_NAME "grStippleMode"
1373 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_STIPPLEMODE(mode
));
1374 grStippleMode(mode
);
1378 void FX_CALL
trap_grStipplePattern (GrStipplePattern_t mode
)
1380 #define FN_NAME "grStipplePattern"
1381 TRAP_LOG("%s(%08lx)\n", FN_NAME
, mode
);
1382 grStipplePattern(mode
);
1386 void FX_CALL
trap_grViewport (FxI32 x
,
1391 #define FN_NAME "grViewport"
1392 TRAP_LOG("%s(%ld, %ld, %ld, %ld)\n", FN_NAME
, x
, y
, width
, height
);
1393 grViewport(x
, y
, width
, height
);
1398 ** texture mapping control functions
1400 FxU32 FX_CALL
trap_grTexCalcMemRequired (GrLOD_t lodmin
,
1402 GrAspectRatio_t aspect
,
1403 GrTextureFormat_t fmt
)
1405 #define FN_NAME "grTexCalcMemRequired"
1407 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_LODLEVEL(lodmin
), TRP_LODLEVEL(lodmax
), TRP_ASPECTRATIO(aspect
), TRP_TEXFMT(fmt
));
1408 rv
= grTexCalcMemRequired(lodmin
, lodmax
, aspect
, fmt
);
1409 TRAP_LOG(GOT
"%lu\n", rv
);
1414 FxU32 FX_CALL
trap_grTexTextureMemRequired (FxU32 evenOdd
,
1417 #define FN_NAME "grTexTextureMemRequired"
1419 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_EVENODD(evenOdd
), (void *)info
);
1420 rv
= grTexTextureMemRequired(evenOdd
, info
);
1421 TRAP_LOG(GOT
"%lu\n", rv
);
1426 FxU32 FX_CALL
trap_grTexMinAddress (GrChipID_t tmu
)
1428 #define FN_NAME "grTexMinAddress"
1430 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1431 rv
= grTexMinAddress(tmu
);
1432 TRAP_LOG(GOT
"%lu\n", rv
);
1437 FxU32 FX_CALL
trap_grTexMaxAddress (GrChipID_t tmu
)
1439 #define FN_NAME "grTexMaxAddress"
1441 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1442 rv
= grTexMaxAddress(tmu
);
1443 TRAP_LOG(GOT
"%lu\n", rv
);
1448 void FX_CALL
trap_grTexNCCTable (GrNCCTable_t table
)
1450 #define FN_NAME "grTexNCCTable"
1451 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_NCC(table
));
1452 grTexNCCTable(table
);
1456 void FX_CALL
trap_grTexSource (GrChipID_t tmu
,
1461 #define FN_NAME "grTexSource"
1462 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1463 grTexSource(tmu
, startAddress
, evenOdd
, info
);
1467 void FX_CALL
trap_grTexClampMode (GrChipID_t tmu
,
1468 GrTextureClampMode_t s_clampmode
,
1469 GrTextureClampMode_t t_clampmode
)
1471 #define FN_NAME "grTexClampMode"
1472 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CLAMPMODE(s_clampmode
), TRP_CLAMPMODE(t_clampmode
));
1473 grTexClampMode(tmu
, s_clampmode
, t_clampmode
);
1477 void FX_CALL
trap_grTexCombine (GrChipID_t tmu
,
1478 GrCombineFunction_t rgb_function
,
1479 GrCombineFactor_t rgb_factor
,
1480 GrCombineFunction_t alpha_function
,
1481 GrCombineFactor_t alpha_factor
,
1483 FxBool alpha_invert
)
1485 #define FN_NAME "grTexCombine"
1486 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
));
1487 grTexCombine(tmu
, rgb_function
, rgb_factor
, alpha_function
, alpha_factor
, rgb_invert
, alpha_invert
);
1491 void FX_CALL
trap_grTexDetailControl (GrChipID_t tmu
,
1496 #define FN_NAME "grTexDetailControl"
1497 TRAP_LOG("%s(%s, %u, %d, %f)\n", FN_NAME
, TRP_TMU(tmu
), lod_bias
, detail_scale
, detail_max
);
1498 grTexDetailControl(tmu
, lod_bias
, detail_scale
, detail_max
);
1502 void FX_CALL
trap_grTexFilterMode (GrChipID_t tmu
,
1503 GrTextureFilterMode_t minfilter_mode
,
1504 GrTextureFilterMode_t magfilter_mode
)
1506 #define FN_NAME "grTexFilterMode"
1507 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXFILTER(minfilter_mode
), TRP_TEXFILTER(magfilter_mode
));
1508 grTexFilterMode(tmu
, minfilter_mode
, magfilter_mode
);
1512 void FX_CALL
trap_grTexLodBiasValue (GrChipID_t tmu
,
1515 #define FN_NAME "grTexLodBiasValue"
1516 TRAP_LOG("%s(%s, %f)\n", FN_NAME
, TRP_TMU(tmu
), bias
);
1517 grTexLodBiasValue(tmu
, bias
);
1521 void FX_CALL
trap_grTexDownloadMipMap (GrChipID_t tmu
,
1526 #define FN_NAME "grTexDownloadMipMap"
1527 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1528 grTexDownloadMipMap(tmu
, startAddress
, evenOdd
, info
);
1532 void FX_CALL
trap_grTexDownloadMipMapLevel (GrChipID_t tmu
,
1536 GrAspectRatio_t aspectRatio
,
1537 GrTextureFormat_t format
,
1541 #define FN_NAME "grTexDownloadMipMapLevel"
1542 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
);
1543 grTexDownloadMipMapLevel(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
);
1547 FxBool FX_CALL
trap_grTexDownloadMipMapLevelPartial (GrChipID_t tmu
,
1551 GrAspectRatio_t aspectRatio
,
1552 GrTextureFormat_t format
,
1558 #define FN_NAME "grTexDownloadMipMapLevelPartial"
1560 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
);
1561 rv
= grTexDownloadMipMapLevelPartial(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
, start
, end
);
1562 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1567 void FX_CALL
trap_grTexDownloadTable (GrTexTable_t type
,
1570 #define FN_NAME "grTexDownloadTable"
1571 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_TABLE(type
), data
);
1572 grTexDownloadTable(type
, data
);
1576 void FX_CALL
trap_grTexDownloadTablePartial (GrTexTable_t type
,
1581 #define FN_NAME "grTexDownloadTablePartial"
1582 TRAP_LOG("%s(%s, %p, %d, %d)\n", FN_NAME
, TRP_TABLE(type
), data
, start
, end
);
1583 grTexDownloadTablePartial(type
, data
, start
, end
);
1587 void FX_CALL
trap_grTexMipMapMode (GrChipID_t tmu
,
1588 GrMipMapMode_t mode
,
1591 #define FN_NAME "grTexMipMapMode"
1592 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_MIPMODE(mode
), TRP_BOOL(lodBlend
));
1593 grTexMipMapMode(tmu
, mode
, lodBlend
);
1597 void FX_CALL
trap_grTexMultibase (GrChipID_t tmu
,
1600 #define FN_NAME "grTexMultibase"
1601 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_BOOL(enable
));
1602 grTexMultibase(tmu
, enable
);
1606 void FX_CALL
trap_grTexMultibaseAddress (GrChipID_t tmu
,
1607 GrTexBaseRange_t range
,
1612 #define FN_NAME "grTexMultibaseAddress"
1613 TRAP_LOG("%s(%s, %s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXBASERANGE(range
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1614 grTexMultibaseAddress(tmu
, range
, startAddress
, evenOdd
, info
);
1619 ** linear frame buffer functions
1621 FxBool FX_CALL
trap_grLfbLock (GrLock_t type
,
1623 GrLfbWriteMode_t writeMode
,
1624 GrOriginLocation_t origin
,
1625 FxBool pixelPipeline
,
1628 #define FN_NAME "grLfbLock"
1630 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
);
1631 rv
= grLfbLock(type
, buffer
, writeMode
, origin
, pixelPipeline
, info
);
1632 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1637 FxBool FX_CALL
trap_grLfbUnlock (GrLock_t type
,
1640 #define FN_NAME "grLfbUnlock"
1642 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_LOCKTYPE(type
), TRP_BUFFER(buffer
));
1643 rv
= grLfbUnlock(type
, buffer
);
1644 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1649 void FX_CALL
trap_grLfbConstantAlpha (GrAlpha_t alpha
)
1651 #define FN_NAME "grLfbConstantAlpha"
1652 TRAP_LOG("%s(%02x)\n", FN_NAME
, alpha
);
1653 grLfbConstantAlpha(alpha
);
1657 void FX_CALL
trap_grLfbConstantDepth (FxU32 depth
)
1659 #define FN_NAME "grLfbConstantDepth"
1660 TRAP_LOG("%s(%08lx)\n", FN_NAME
, depth
);
1661 grLfbConstantDepth(depth
);
1665 void FX_CALL
trap_grLfbWriteColorSwizzle (FxBool swizzleBytes
,
1668 #define FN_NAME "grLfbWriteColorSwizzle"
1669 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(swizzleBytes
), TRP_BOOL(swapWords
));
1670 grLfbWriteColorSwizzle(swizzleBytes
, swapWords
);
1674 void FX_CALL
trap_grLfbWriteColorFormat (GrColorFormat_t colorFormat
)
1676 #define FN_NAME "grLfbWriteColorFormat"
1677 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COLFMT(colorFormat
));
1678 grLfbWriteColorFormat(colorFormat
);
1682 FxBool FX_CALL
trap_grLfbWriteRegion (GrBuffer_t dst_buffer
,
1685 GrLfbSrcFmt_t src_format
,
1688 FxBool pixelPipeline
,
1692 #define FN_NAME "grLfbWriteRegion"
1694 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
);
1695 rv
= grLfbWriteRegion(dst_buffer
, dst_x
, dst_y
, src_format
, src_width
, src_height
, pixelPipeline
, src_stride
, src_data
);
1696 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1701 FxBool FX_CALL
trap_grLfbReadRegion (GrBuffer_t src_buffer
,
1709 #define FN_NAME "grLfbReadRegion"
1711 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
);
1712 rv
= grLfbReadRegion(src_buffer
, src_x
, src_y
, src_width
, src_height
, dst_stride
, dst_data
);
1713 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1719 ** glide management functions
1721 void FX_CALL
trap_grGlideInit (void)
1723 #define FN_NAME "grGlideInit"
1724 TRAP_LOG("%s()\n", FN_NAME
);
1729 void FX_CALL
trap_grGlideShutdown (void)
1731 #define FN_NAME "grGlideShutdown"
1732 TRAP_LOG("%s()\n", FN_NAME
);
1737 void FX_CALL
trap_grGlideGetState (void *state
)
1739 #define FN_NAME "grGlideGetState"
1740 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1741 grGlideGetState(state
);
1745 void FX_CALL
trap_grGlideSetState (const void *state
)
1747 #define FN_NAME "grGlideSetState"
1748 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1749 grGlideSetState(state
);
1753 void FX_CALL
trap_grGlideGetVertexLayout (void *layout
)
1755 #define FN_NAME "grGlideGetVertexLayout"
1756 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1757 grGlideGetVertexLayout(layout
);
1761 void FX_CALL
trap_grGlideSetVertexLayout (const void *layout
)
1763 #define FN_NAME "grGlideSetVertexLayout"
1764 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1765 grGlideSetVertexLayout(layout
);
1770 ** glide utility functions
1772 void FX_CALL
trap_guGammaCorrectionRGB (FxFloat red
,
1776 #define FN_NAME "guGammaCorrectionRGB"
1777 TRAP_LOG("%s(%f, %f, %f)\n", FN_NAME
, red
, green
, blue
);
1778 guGammaCorrectionRGB(red
, green
, blue
);
1782 float FX_CALL
trap_guFogTableIndexToW (int i
)
1784 #define FN_NAME "guFogTableIndexToW"
1786 TRAP_LOG("%s(%d)\n", FN_NAME
, i
);
1787 rv
= guFogTableIndexToW(i
);
1788 TRAP_LOG(GOT
"%f\n", rv
);
1793 void FX_CALL
trap_guFogGenerateExp (GrFog_t
*fogtable
,
1796 #define FN_NAME "guFogGenerateExp"
1797 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1798 guFogGenerateExp(fogtable
, density
);
1802 void FX_CALL
trap_guFogGenerateExp2 (GrFog_t
*fogtable
,
1805 #define FN_NAME "guFogGenerateExp2"
1806 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1807 guFogGenerateExp2(fogtable
, density
);
1811 void FX_CALL
trap_guFogGenerateLinear (GrFog_t
*fogtable
,
1815 #define FN_NAME "guFogGenerateLinear"
1816 TRAP_LOG("%s(%p, %f, %f)\n", FN_NAME
, fogtable
, nearZ
, farZ
);
1817 guFogGenerateLinear(fogtable
, nearZ
, farZ
);
1824 char *FX_CALL
trap_grGetRegistryOrEnvironmentStringExt (char *theEntry
)
1826 #define FN_NAME "grGetRegistryOrEnvironmentStringExt"
1828 TRAP_LOG("%s(\"%s\")\n", FN_NAME
, theEntry
);
1829 assert(real_grGetRegistryOrEnvironmentStringExt
);
1830 rv
= (*real_grGetRegistryOrEnvironmentStringExt
)(theEntry
);
1832 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1834 TRAP_LOG(GOT
"NULL\n");
1840 void FX_CALL
trap_grGetGammaTableExt (FxU32 nentries
,
1845 #define FN_NAME "grGetGammaTableExt"
1846 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1847 assert(real_grGetGammaTableExt
);
1848 (*real_grGetGammaTableExt
)(nentries
, red
, green
, blue
);
1852 void FX_CALL
trap_grChromaRangeModeExt (GrChromakeyMode_t mode
)
1854 #define FN_NAME "grChromaRangeModeExt"
1855 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1856 assert(real_grChromaRangeModeExt
);
1857 (*real_grChromaRangeModeExt
)(mode
);
1861 void FX_CALL
trap_grChromaRangeExt (GrColor_t color
,
1863 GrChromaRangeMode_t match_mode
)
1865 #define FN_NAME "grChromaRangeExt"
1866 TRAP_LOG("%s(%08lx, %08lx, %s)\n", FN_NAME
, color
, range
, TRP_CRMODE(match_mode
));
1867 assert(real_grChromaRangeExt
);
1868 (*real_grChromaRangeExt
)(color
, range
, match_mode
);
1872 void FX_CALL
trap_grTexChromaModeExt (GrChipID_t tmu
,
1873 GrChromakeyMode_t mode
)
1875 #define FN_NAME "grTexChromaModeExt"
1876 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CKMODE(mode
));
1877 assert(real_grTexChromaModeExt
);
1878 (*real_grTexChromaModeExt
)(tmu
, mode
);
1882 void FX_CALL
trap_grTexChromaRangeExt (GrChipID_t tmu
,
1885 GrTexChromakeyMode_t mode
)
1887 #define FN_NAME "grTexChromaRangeExt"
1888 TRAP_LOG("%s(%s, %08lx, %08lx, %s)\n", FN_NAME
, TRP_TMU(tmu
), min
, max
, TRP_CRMODE(mode
));
1889 assert(real_grTexChromaRangeExt
);
1890 (*real_grTexChromaRangeExt
)(tmu
, min
, max
, mode
);
1895 void FX_CALL
trap_grTexDownloadTableExt (GrChipID_t tmu
,
1899 #define FN_NAME "grTexDownloadTableExt"
1900 TRAP_LOG("%s(%s, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TABLE(type
), data
);
1901 assert(real_grTexDownloadTableExt
);
1902 (*real_grTexDownloadTableExt
)(tmu
, type
, data
);
1906 void FX_CALL
trap_grTexDownloadTablePartialExt (GrChipID_t tmu
,
1912 #define FN_NAME "grTexDownloadTablePartialExt"
1913 TRAP_LOG("%s(%s, %s, %p, %d, %d)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TABLE(type
), data
, start
, end
);
1914 assert(real_grTexDownloadTablePartialExt
);
1915 (*real_grTexDownloadTablePartialExt
)(tmu
, type
, data
, start
, end
);
1919 void FX_CALL
trap_grTexNCCTableExt (GrChipID_t tmu
,
1922 #define FN_NAME "grTexNCCTableExt"
1923 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_NCC(table
));
1924 assert(real_grTexNCCTableExt
);
1925 (*real_grTexNCCTableExt
)(tmu
, table
);
1930 void FX_CALL
trap_grTextureBufferExt (GrChipID_t tmu
,
1934 GrAspectRatio_t aspectRatio
,
1935 GrTextureFormat_t format
,
1936 FxU32 odd_even_mask
)
1938 #define FN_NAME "grTextureBufferExt"
1939 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
));
1940 assert(real_grTextureBufferExt
);
1941 (*real_grTextureBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1945 void FX_CALL
trap_grTextureAuxBufferExt (GrChipID_t tmu
,
1949 GrAspectRatio_t aspectRatio
,
1950 GrTextureFormat_t format
,
1951 FxU32 odd_even_mask
)
1953 #define FN_NAME "grTextureAuxBufferExt"
1954 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
));
1955 assert(real_grTextureAuxBufferExt
);
1956 (*real_grTextureAuxBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1960 void FX_CALL
trap_grAuxBufferExt (GrBuffer_t buffer
)
1962 #define FN_NAME "grAuxBufferExt"
1963 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
1964 assert(real_grAuxBufferExt
);
1965 (*real_grAuxBufferExt
)(buffer
);
1970 GrContext_t FX_CALL
trap_grSstWinOpenExt (FxU32 hWnd
,
1971 GrScreenResolution_t resolution
,
1972 GrScreenRefresh_t refresh
,
1973 GrColorFormat_t format
,
1974 GrOriginLocation_t origin
,
1975 GrPixelFormat_t pixelformat
,
1979 #define FN_NAME "grSstWinOpenExt"
1981 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
);
1982 assert(real_grSstWinOpenExt
);
1983 rv
= (*real_grSstWinOpenExt
)(hWnd
, resolution
, refresh
, format
, origin
, pixelformat
, nColBuffers
, nAuxBuffers
);
1984 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1989 void FX_CALL
trap_grStencilFuncExt (GrCmpFnc_t fnc
,
1993 #define FN_NAME "grStencilFuncExt"
1994 TRAP_LOG("%s(%s, %02x, %02x)\n", FN_NAME
, TRP_CMPFUNC(fnc
), ref
, mask
);
1995 assert(real_grStencilFuncExt
);
1996 (*real_grStencilFuncExt
)(fnc
, ref
, mask
);
2000 void FX_CALL
trap_grStencilMaskExt (GrStencil_t value
)
2002 #define FN_NAME "grStencilMaskExt"
2003 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
2004 assert(real_grStencilMaskExt
);
2005 (*real_grStencilMaskExt
)(value
);
2009 void FX_CALL
trap_grStencilOpExt (GrStencilOp_t stencil_fail
,
2010 GrStencilOp_t depth_fail
,
2011 GrStencilOp_t depth_pass
)
2013 #define FN_NAME "grStencilOpExt"
2014 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_STENCILOP(stencil_fail
), TRP_STENCILOP(depth_fail
), TRP_STENCILOP(depth_pass
));
2015 assert(real_grStencilOpExt
);
2016 (*real_grStencilOpExt
)(stencil_fail
, depth_fail
, depth_pass
);
2020 void FX_CALL
trap_grLfbConstantStencilExt (GrStencil_t value
)
2022 #define FN_NAME "grLfbConstantStencilExt"
2023 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
2024 assert(real_grLfbConstantStencilExt
);
2025 (*real_grLfbConstantStencilExt
)(value
);
2029 void FX_CALL
trap_grBufferClearExt (GrColor_t color
,
2032 GrStencil_t stencil
)
2034 #define FN_NAME "grBufferClearExt"
2035 TRAP_LOG("%s(%08lx, %02x, %08lx, %02x)\n", FN_NAME
, color
, alpha
, depth
, stencil
);
2036 assert(real_grBufferClearExt
);
2037 (*real_grBufferClearExt
)(color
, alpha
, depth
, stencil
);
2041 void FX_CALL
trap_grColorCombineExt (GrCCUColor_t a
,
2042 GrCombineMode_t a_mode
,
2044 GrCombineMode_t b_mode
,
2052 #define FN_NAME "grColorCombineExt"
2053 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
));
2054 assert(real_grColorCombineExt
);
2055 (*real_grColorCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2059 void FX_CALL
trap_grAlphaCombineExt (GrACUColor_t a
,
2060 GrCombineMode_t a_mode
,
2062 GrCombineMode_t b_mode
,
2070 #define FN_NAME "grAlphaCombineExt"
2071 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
));
2072 assert(real_grAlphaCombineExt
);
2073 (*real_grAlphaCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2077 void FX_CALL
trap_grTexColorCombineExt (GrChipID_t tmu
,
2079 GrCombineMode_t a_mode
,
2081 GrCombineMode_t b_mode
,
2089 #define FN_NAME "grTexColorCombineExt"
2090 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
));
2091 assert(real_grTexColorCombineExt
);
2092 (*real_grTexColorCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2096 void FX_CALL
trap_grTexAlphaCombineExt (GrChipID_t tmu
,
2098 GrCombineMode_t a_mode
,
2100 GrCombineMode_t b_mode
,
2108 #define FN_NAME "grTexAlphaCombineExt"
2109 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
));
2110 assert(real_grTexAlphaCombineExt
);
2111 (*real_grTexAlphaCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2115 void FX_CALL
trap_grConstantColorValueExt (GrChipID_t tmu
,
2118 #define FN_NAME "grConstantColorValueExt"
2119 TRAP_LOG("%s(%s, %08lx)\n", FN_NAME
, TRP_TMU(tmu
), value
);
2120 assert(real_grConstantColorValueExt
);
2121 (*real_grConstantColorValueExt
)(tmu
, value
);
2125 void FX_CALL
trap_grColorMaskExt (FxBool r
,
2130 #define FN_NAME "grColorMaskExt"
2131 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_BOOL(r
), TRP_BOOL(g
), TRP_BOOL(b
), TRP_BOOL(a
));
2132 assert(real_grColorMaskExt
);
2133 (*real_grColorMaskExt
)(r
, g
, b
, a
);
2137 void FX_CALL
trap_grAlphaBlendFunctionExt (GrAlphaBlendFnc_t rgb_sf
,
2138 GrAlphaBlendFnc_t rgb_df
,
2139 GrAlphaBlendOp_t rgb_op
,
2140 GrAlphaBlendFnc_t alpha_sf
,
2141 GrAlphaBlendFnc_t alpha_df
,
2142 GrAlphaBlendOp_t alpha_op
)
2144 #define FN_NAME "grAlphaBlendFunctionExt"
2145 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
));
2146 assert(real_grAlphaBlendFunctionExt
);
2147 (*real_grAlphaBlendFunctionExt
)(rgb_sf
, rgb_df
, rgb_op
, alpha_sf
, alpha_df
, alpha_op
);
2151 void FX_CALL
trap_grTBufferWriteMaskExt (FxU32 tmask
)
2153 #define FN_NAME "grTBufferWriteMaskExt"
2154 TRAP_LOG("%s(%08lx)\n", FN_NAME
, tmask
);
2155 assert(real_grTBufferWriteMaskExt
);
2156 (*real_grTBufferWriteMaskExt
)(tmask
);
2163 int FX_CALL
trap_txBitsPerPixel (GrTextureFormat_t format
)
2165 #define FN_NAME "txBitsPerPixel"
2167 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TEXFMT(format
));
2168 rv
= txBitsPerPixel(format
);
2169 TRAP_LOG(GOT
"%d\n", rv
);
2174 void FX_CALL
trap_txImgQuantize (char *dst
,
2181 #define FN_NAME "txImgQuantize"
2182 TRAP_LOG("%s(%p, %p, %d, %d, %s, %s)\n", FN_NAME
, dst
, src
, w
, h
, TRP_TEXFMT(format
), TRP_TXDITHER(dither
));
2183 txImgQuantize(dst
, src
, w
, h
, format
, dither
);
2187 void FX_CALL
trap_txMipQuantize (TxMip
*pxMip
,
2193 #define FN_NAME "txMipQuantize"
2194 TRAP_LOG("%s(%p, %p, %s, %s, %s)\n", FN_NAME
, (void *)pxMip
, (void *)txMip
, TRP_TEXFMT(fmt
), TRP_TXDITHER(d
), TRP_TXCOMPRESS(comp
));
2195 txMipQuantize(pxMip
, txMip
, fmt
, d
, comp
);
2199 void FX_CALL
trap_txPalToNcc (GuNccTable
*ncc_table
,
2202 #define FN_NAME "txPalToNcc"
2203 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)ncc_table
, (void *)pal
);
2204 txPalToNcc(ncc_table
, pal
);
2208 void FX_CALL
trap_txErrorSetCallback (TxErrorCallbackFnc_t fnc
,
2209 TxErrorCallbackFnc_t
*old_fnc
)
2211 #define FN_NAME "txErrorSetCallback"
2212 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)fnc
, (void *)old_fnc
);
2213 txErrorSetCallback(fnc
, old_fnc
);
2220 /****************************************************************************\
2221 * housekeeping (fake pointers)
2222 \****************************************************************************/
2223 void FX_CALL
fake_grTexDownloadTableExt (GrChipID_t tmu
,
2227 grTexDownloadTable(type
, data
);
2230 void FX_CALL
fake_grTexDownloadTablePartialExt (GrChipID_t tmu
,
2236 grTexDownloadTablePartial(type
, data
, start
, end
);
2239 void FX_CALL
fake_grTexNCCTableExt (GrChipID_t tmu
,
2242 grTexNCCTable(table
);
2247 /****************************************************************************\
2249 \****************************************************************************/
2250 void tdfx_hook_glide (struct tdfx_glide
*Glide
)
2253 #define GET_EXT_ADDR(name) *(GrProc *)&real_##name = grGetProcAddress(#name), Glide->name = trap_##name
2254 #define GET_TXS_ADDR(name) Glide->name = trap_##name
2255 #else /* DEBUG_TRAP */
2256 #define GET_EXT_ADDR(name) *(GrProc *)&Glide->name = grGetProcAddress(#name)
2257 #define GET_TXS_ADDR(name) Glide->name = name
2258 #endif /* DEBUG_TRAP */
2263 GET_EXT_ADDR(grGetRegistryOrEnvironmentStringExt
);
2264 GET_EXT_ADDR(grGetGammaTableExt
);
2265 GET_EXT_ADDR(grChromaRangeModeExt
);
2266 GET_EXT_ADDR(grChromaRangeExt
);
2267 GET_EXT_ADDR(grTexChromaModeExt
);
2268 GET_EXT_ADDR(grTexChromaRangeExt
);
2270 GET_EXT_ADDR(grTexDownloadTableExt
);
2271 GET_EXT_ADDR(grTexDownloadTablePartialExt
);
2272 GET_EXT_ADDR(grTexNCCTableExt
);
2274 GET_EXT_ADDR(grTextureBufferExt
);
2275 GET_EXT_ADDR(grTextureAuxBufferExt
);
2276 GET_EXT_ADDR(grAuxBufferExt
);
2278 GET_EXT_ADDR(grSstWinOpenExt
);
2279 GET_EXT_ADDR(grStencilFuncExt
);
2280 GET_EXT_ADDR(grStencilMaskExt
);
2281 GET_EXT_ADDR(grStencilOpExt
);
2282 GET_EXT_ADDR(grLfbConstantStencilExt
);
2283 GET_EXT_ADDR(grBufferClearExt
);
2284 GET_EXT_ADDR(grColorCombineExt
);
2285 GET_EXT_ADDR(grAlphaCombineExt
);
2286 GET_EXT_ADDR(grTexColorCombineExt
);
2287 GET_EXT_ADDR(grTexAlphaCombineExt
);
2288 GET_EXT_ADDR(grConstantColorValueExt
);
2289 GET_EXT_ADDR(grColorMaskExt
);
2290 GET_EXT_ADDR(grAlphaBlendFunctionExt
);
2291 GET_EXT_ADDR(grTBufferWriteMaskExt
);
2296 GET_TXS_ADDR(txBitsPerPixel
);
2297 GET_TXS_ADDR(txImgQuantize
);
2298 GET_TXS_ADDR(txMipQuantize
);
2299 GET_TXS_ADDR(txPalToNcc
);
2300 GET_TXS_ADDR(txErrorSetCallback
);
2302 /* housekeeping: make sure the pointcast always point to something valid */
2303 if (grGetProcAddress("grTexDownloadTableExt") == NULL
) {
2305 real_grTexDownloadTableExt
= fake_grTexDownloadTableExt
;
2306 real_grTexDownloadTablePartialExt
= fake_grTexDownloadTablePartialExt
;
2307 real_grTexNCCTableExt
= fake_grTexNCCTableExt
;
2309 Glide
->grTexDownloadTableExt
= fake_grTexDownloadTableExt
;
2310 Glide
->grTexDownloadTablePartialExt
= fake_grTexDownloadTablePartialExt
;
2311 Glide
->grTexNCCTableExt
= fake_grTexNCCTableExt
;