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
41 #define FX_TRAP_GLIDE_internal
46 /****************************************************************************\
48 \****************************************************************************/
50 #define TRAP_LOG trp_printf
52 __attribute__ ((format(printf
, 1, 2)))
54 int trp_printf (const char *format
, ...)
59 va_start(arg
, format
);
60 trap_file
= fopen("trap.log", "a");
61 if (trap_file
== NULL
) {
64 n
= vfprintf(trap_file
, format
, arg
);
69 #else /* FX_TRAP_GLIDE */
71 #define TRAP_LOG(format, ...) do {} while (0)
73 #define TRAP_LOG 0 && (unsigned long)
75 #endif /* FX_TRAP_GLIDE */
80 /****************************************************************************\
82 \****************************************************************************/
86 const char *TRP_BOOL (FxBool b
)
88 return b
? "FXTRUE" : "FXFALSE";
91 #define TRAP_CASE_STRING(name) case name: return #name
92 #define TRAP_NODEFAULT default: assert(0)
94 const char *TRP_PARAM (FxU32 mode
)
97 TRAP_CASE_STRING(GR_PARAM_DISABLE
);
98 TRAP_CASE_STRING(GR_PARAM_ENABLE
);
103 const char *TRP_VTX (FxU32 param
)
106 TRAP_CASE_STRING(GR_PARAM_XY
);
107 TRAP_CASE_STRING(GR_PARAM_Z
);
108 TRAP_CASE_STRING(GR_PARAM_W
);
109 TRAP_CASE_STRING(GR_PARAM_Q
);
110 TRAP_CASE_STRING(GR_PARAM_FOG_EXT
);
111 TRAP_CASE_STRING(GR_PARAM_A
);
112 TRAP_CASE_STRING(GR_PARAM_RGB
);
113 TRAP_CASE_STRING(GR_PARAM_PARGB
);
114 TRAP_CASE_STRING(GR_PARAM_ST0
);
115 TRAP_CASE_STRING(GR_PARAM_ST1
);
116 TRAP_CASE_STRING(GR_PARAM_ST2
);
117 TRAP_CASE_STRING(GR_PARAM_Q0
);
118 TRAP_CASE_STRING(GR_PARAM_Q1
);
119 TRAP_CASE_STRING(GR_PARAM_Q2
);
124 const char *TRP_ARRAY (FxU32 mode
)
127 TRAP_CASE_STRING(GR_POINTS
);
128 TRAP_CASE_STRING(GR_LINE_STRIP
);
129 TRAP_CASE_STRING(GR_LINES
);
130 TRAP_CASE_STRING(GR_POLYGON
);
131 TRAP_CASE_STRING(GR_TRIANGLE_STRIP
);
132 TRAP_CASE_STRING(GR_TRIANGLE_FAN
);
133 TRAP_CASE_STRING(GR_TRIANGLES
);
134 TRAP_CASE_STRING(GR_TRIANGLE_STRIP_CONTINUE
);
135 TRAP_CASE_STRING(GR_TRIANGLE_FAN_CONTINUE
);
140 const char *TRP_BUFFER (GrBuffer_t buffer
)
143 TRAP_CASE_STRING(GR_BUFFER_FRONTBUFFER
);
144 TRAP_CASE_STRING(GR_BUFFER_BACKBUFFER
);
145 TRAP_CASE_STRING(GR_BUFFER_AUXBUFFER
);
146 TRAP_CASE_STRING(GR_BUFFER_DEPTHBUFFER
);
147 TRAP_CASE_STRING(GR_BUFFER_ALPHABUFFER
);
148 TRAP_CASE_STRING(GR_BUFFER_TRIPLEBUFFER
);
149 TRAP_CASE_STRING(GR_BUFFER_TEXTUREBUFFER_EXT
);
150 TRAP_CASE_STRING(GR_BUFFER_TEXTUREAUXBUFFER_EXT
);
155 const char *TRP_ORIGIN (GrOriginLocation_t origin_location
)
157 switch (origin_location
) {
158 TRAP_CASE_STRING(GR_ORIGIN_UPPER_LEFT
);
159 TRAP_CASE_STRING(GR_ORIGIN_LOWER_LEFT
);
160 TRAP_CASE_STRING(GR_ORIGIN_ANY
);
165 const char *TRP_REFRESH (GrScreenRefresh_t refresh_rate
)
167 switch (refresh_rate
) {
168 TRAP_CASE_STRING(GR_REFRESH_60Hz
);
169 TRAP_CASE_STRING(GR_REFRESH_70Hz
);
170 TRAP_CASE_STRING(GR_REFRESH_72Hz
);
171 TRAP_CASE_STRING(GR_REFRESH_75Hz
);
172 TRAP_CASE_STRING(GR_REFRESH_80Hz
);
173 TRAP_CASE_STRING(GR_REFRESH_90Hz
);
174 TRAP_CASE_STRING(GR_REFRESH_100Hz
);
175 TRAP_CASE_STRING(GR_REFRESH_85Hz
);
176 TRAP_CASE_STRING(GR_REFRESH_120Hz
);
177 TRAP_CASE_STRING(GR_REFRESH_NONE
);
182 const char *TRP_COLFMT (GrColorFormat_t color_format
)
184 switch (color_format
) {
185 TRAP_CASE_STRING(GR_COLORFORMAT_ARGB
);
186 TRAP_CASE_STRING(GR_COLORFORMAT_ABGR
);
187 TRAP_CASE_STRING(GR_COLORFORMAT_RGBA
);
188 TRAP_CASE_STRING(GR_COLORFORMAT_BGRA
);
193 const char *TRP_RESOLUTION (GrScreenResolution_t screen_resolution
)
195 switch (screen_resolution
) {
196 TRAP_CASE_STRING(GR_RESOLUTION_320x200
);
197 TRAP_CASE_STRING(GR_RESOLUTION_320x240
);
198 TRAP_CASE_STRING(GR_RESOLUTION_400x256
);
199 TRAP_CASE_STRING(GR_RESOLUTION_512x384
);
200 TRAP_CASE_STRING(GR_RESOLUTION_640x200
);
201 TRAP_CASE_STRING(GR_RESOLUTION_640x350
);
202 TRAP_CASE_STRING(GR_RESOLUTION_640x400
);
203 TRAP_CASE_STRING(GR_RESOLUTION_640x480
);
204 TRAP_CASE_STRING(GR_RESOLUTION_800x600
);
205 TRAP_CASE_STRING(GR_RESOLUTION_960x720
);
206 TRAP_CASE_STRING(GR_RESOLUTION_856x480
);
207 TRAP_CASE_STRING(GR_RESOLUTION_512x256
);
208 TRAP_CASE_STRING(GR_RESOLUTION_1024x768
);
209 TRAP_CASE_STRING(GR_RESOLUTION_1280x1024
);
210 TRAP_CASE_STRING(GR_RESOLUTION_1600x1200
);
211 TRAP_CASE_STRING(GR_RESOLUTION_400x300
);
212 TRAP_CASE_STRING(GR_RESOLUTION_1152x864
);
213 TRAP_CASE_STRING(GR_RESOLUTION_1280x960
);
214 TRAP_CASE_STRING(GR_RESOLUTION_1600x1024
);
215 TRAP_CASE_STRING(GR_RESOLUTION_1792x1344
);
216 TRAP_CASE_STRING(GR_RESOLUTION_1856x1392
);
217 TRAP_CASE_STRING(GR_RESOLUTION_1920x1440
);
218 TRAP_CASE_STRING(GR_RESOLUTION_2048x1536
);
219 TRAP_CASE_STRING(GR_RESOLUTION_2048x2048
);
220 TRAP_CASE_STRING(GR_RESOLUTION_NONE
);
225 const char *TRP_BLEND (GrAlphaBlendFnc_t func
)
228 TRAP_CASE_STRING(GR_BLEND_ZERO
);
229 TRAP_CASE_STRING(GR_BLEND_SRC_ALPHA
);
230 TRAP_CASE_STRING(GR_BLEND_SRC_COLOR
);
231 /*TRAP_CASE_STRING(GR_BLEND_DST_COLOR); ==GR_BLEND_SRC_COLOR*/
232 TRAP_CASE_STRING(GR_BLEND_DST_ALPHA
);
233 TRAP_CASE_STRING(GR_BLEND_ONE
);
234 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_ALPHA
);
235 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SRC_COLOR
);
236 /*TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_COLOR); ==GR_BLEND_ONE_MINUS_SRC_COLOR*/
237 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_DST_ALPHA
);
238 TRAP_CASE_STRING(GR_BLEND_SAME_COLOR_EXT
);
239 /*TRAP_CASE_STRING(GR_BLEND_RESERVED_8); ==GR_BLEND_SAME_COLOR_EXT*/
240 TRAP_CASE_STRING(GR_BLEND_ONE_MINUS_SAME_COLOR_EXT
);
241 /*TRAP_CASE_STRING(GR_BLEND_RESERVED_9); ==GR_BLEND_ONE_MINUS_SAME_COLOR_EXT*/
242 TRAP_CASE_STRING(GR_BLEND_RESERVED_A
);
243 TRAP_CASE_STRING(GR_BLEND_RESERVED_B
);
244 TRAP_CASE_STRING(GR_BLEND_RESERVED_C
);
245 TRAP_CASE_STRING(GR_BLEND_RESERVED_D
);
246 TRAP_CASE_STRING(GR_BLEND_RESERVED_E
);
247 TRAP_CASE_STRING(GR_BLEND_ALPHA_SATURATE
);
248 /*TRAP_CASE_STRING(GR_BLEND_PREFOG_COLOR); ==GR_BLEND_ALPHA_SATURATE*/
253 const char *TRP_CMBFUNC (GrCombineFunction_t cfunc
)
256 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_ZERO
);
257 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_NONE); ==GR_COMBINE_FUNCTION_ZERO*/
258 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL
);
259 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_LOCAL_ALPHA
);
260 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER
);
261 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_OTHER); ==GR_COMBINE_FUNCTION_SCALE_OTHER*/
262 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL
);
263 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_ADD_LOCAL_ALPHA
);
264 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL
);
265 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL
);
266 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND); ==GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL*/
267 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_OTHER_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
268 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL
);
269 /*TRAP_CASE_STRING(GR_COMBINE_FUNCTION_BLEND_LOCAL); ==GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL*/
270 TRAP_CASE_STRING(GR_COMBINE_FUNCTION_SCALE_MINUS_LOCAL_ADD_LOCAL_ALPHA
);
275 const char *TRP_CMBFACT (GrCombineFactor_t cfactor
)
278 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ZERO
);
279 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_NONE); ==GR_COMBINE_FACTOR_ZERO*/
280 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL
);
281 TRAP_CASE_STRING(GR_COMBINE_FACTOR_OTHER_ALPHA
);
282 TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOCAL_ALPHA
);
283 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_ALPHA
);
284 TRAP_CASE_STRING(GR_COMBINE_FACTOR_TEXTURE_RGB
);
285 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_TEXTURE_ALPHA*/
286 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_LOD_FRACTION); ==GR_COMBINE_FACTOR_TEXTURE_RGB ???*/
287 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE
);
288 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL
);
289 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_OTHER_ALPHA
);
290 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOCAL_ALPHA
);
291 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA
);
292 /*TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_DETAIL_FACTOR); ==GR_COMBINE_FACTOR_ONE_MINUS_TEXTURE_ALPHA*/
293 TRAP_CASE_STRING(GR_COMBINE_FACTOR_ONE_MINUS_LOD_FRACTION
);
298 const char *TRP_CMBLOCAL (GrCombineLocal_t clocal
)
301 TRAP_CASE_STRING(GR_COMBINE_LOCAL_ITERATED
);
302 TRAP_CASE_STRING(GR_COMBINE_LOCAL_CONSTANT
);
303 /*TRAP_CASE_STRING(GR_COMBINE_LOCAL_NONE); ==GR_COMBINE_LOCAL_CONSTANT*/
304 TRAP_CASE_STRING(GR_COMBINE_LOCAL_DEPTH
);
309 const char *TRP_CMBOTHER (GrCombineOther_t cother
)
312 TRAP_CASE_STRING(GR_COMBINE_OTHER_ITERATED
);
313 TRAP_CASE_STRING(GR_COMBINE_OTHER_TEXTURE
);
314 TRAP_CASE_STRING(GR_COMBINE_OTHER_CONSTANT
);
315 /*TRAP_CASE_STRING(GR_COMBINE_OTHER_NONE); ==GR_COMBINE_OTHER_CONSTANT*/
320 const char *TRP_CMPFUNC (GrCmpFnc_t function
)
323 TRAP_CASE_STRING(GR_CMP_NEVER
);
324 TRAP_CASE_STRING(GR_CMP_LESS
);
325 TRAP_CASE_STRING(GR_CMP_EQUAL
);
326 TRAP_CASE_STRING(GR_CMP_LEQUAL
);
327 TRAP_CASE_STRING(GR_CMP_GREATER
);
328 TRAP_CASE_STRING(GR_CMP_NOTEQUAL
);
329 TRAP_CASE_STRING(GR_CMP_GEQUAL
);
330 TRAP_CASE_STRING(GR_CMP_ALWAYS
);
335 const char *TRP_CKMODE (GrChromakeyMode_t mode
)
338 TRAP_CASE_STRING(GR_CHROMAKEY_DISABLE
);
339 TRAP_CASE_STRING(GR_CHROMAKEY_ENABLE
);
344 const char *TRP_CULLMODE (GrCullMode_t mode
)
347 TRAP_CASE_STRING(GR_CULL_DISABLE
);
348 TRAP_CASE_STRING(GR_CULL_NEGATIVE
);
349 TRAP_CASE_STRING(GR_CULL_POSITIVE
);
354 const char *TRP_DEPTHMODE (GrDepthBufferMode_t mode
)
357 TRAP_CASE_STRING(GR_DEPTHBUFFER_DISABLE
);
358 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER
);
359 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER
);
360 TRAP_CASE_STRING(GR_DEPTHBUFFER_ZBUFFER_COMPARE_TO_BIAS
);
361 TRAP_CASE_STRING(GR_DEPTHBUFFER_WBUFFER_COMPARE_TO_BIAS
);
366 const char *TRP_DITHERMODE (GrDitherMode_t mode
)
369 TRAP_CASE_STRING(GR_DITHER_DISABLE
);
370 TRAP_CASE_STRING(GR_DITHER_2x2
);
371 TRAP_CASE_STRING(GR_DITHER_4x4
);
376 const char *TRP_FOGMODE (GrFogMode_t mode
)
379 TRAP_CASE_STRING(GR_FOG_DISABLE
);
380 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_FOGCOORD_EXT
);
381 TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_Q
);
382 /*TRAP_CASE_STRING(GR_FOG_WITH_TABLE_ON_W); ==GR_FOG_WITH_TABLE_ON_Q*/
383 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_Z
);
384 TRAP_CASE_STRING(GR_FOG_WITH_ITERATED_ALPHA_EXT
);
385 TRAP_CASE_STRING(GR_FOG_MULT2
);
386 TRAP_CASE_STRING(GR_FOG_ADD2
);
391 const char *TRP_GETNAME (FxU32 pname
)
394 TRAP_CASE_STRING(GR_BITS_DEPTH
);
395 TRAP_CASE_STRING(GR_BITS_RGBA
);
396 TRAP_CASE_STRING(GR_FIFO_FULLNESS
);
397 TRAP_CASE_STRING(GR_FOG_TABLE_ENTRIES
);
398 TRAP_CASE_STRING(GR_GAMMA_TABLE_ENTRIES
);
399 TRAP_CASE_STRING(GR_GLIDE_STATE_SIZE
);
400 TRAP_CASE_STRING(GR_GLIDE_VERTEXLAYOUT_SIZE
);
401 TRAP_CASE_STRING(GR_IS_BUSY
);
402 TRAP_CASE_STRING(GR_LFB_PIXEL_PIPE
);
403 TRAP_CASE_STRING(GR_MAX_TEXTURE_SIZE
);
404 TRAP_CASE_STRING(GR_MAX_TEXTURE_ASPECT_RATIO
);
405 TRAP_CASE_STRING(GR_MEMORY_FB
);
406 TRAP_CASE_STRING(GR_MEMORY_TMU
);
407 TRAP_CASE_STRING(GR_MEMORY_UMA
);
408 TRAP_CASE_STRING(GR_NUM_BOARDS
);
409 TRAP_CASE_STRING(GR_NON_POWER_OF_TWO_TEXTURES
);
410 TRAP_CASE_STRING(GR_NUM_FB
);
411 TRAP_CASE_STRING(GR_NUM_SWAP_HISTORY_BUFFER
);
412 TRAP_CASE_STRING(GR_NUM_TMU
);
413 TRAP_CASE_STRING(GR_PENDING_BUFFERSWAPS
);
414 TRAP_CASE_STRING(GR_REVISION_FB
);
415 TRAP_CASE_STRING(GR_REVISION_TMU
);
416 TRAP_CASE_STRING(GR_STATS_LINES
);
417 TRAP_CASE_STRING(GR_STATS_PIXELS_AFUNC_FAIL
);
418 TRAP_CASE_STRING(GR_STATS_PIXELS_CHROMA_FAIL
);
419 TRAP_CASE_STRING(GR_STATS_PIXELS_DEPTHFUNC_FAIL
);
420 TRAP_CASE_STRING(GR_STATS_PIXELS_IN
);
421 TRAP_CASE_STRING(GR_STATS_PIXELS_OUT
);
422 TRAP_CASE_STRING(GR_STATS_PIXELS
);
423 TRAP_CASE_STRING(GR_STATS_POINTS
);
424 TRAP_CASE_STRING(GR_STATS_TRIANGLES_IN
);
425 TRAP_CASE_STRING(GR_STATS_TRIANGLES_OUT
);
426 TRAP_CASE_STRING(GR_STATS_TRIANGLES
);
427 TRAP_CASE_STRING(GR_SWAP_HISTORY
);
428 TRAP_CASE_STRING(GR_SUPPORTS_PASSTHRU
);
429 TRAP_CASE_STRING(GR_TEXTURE_ALIGN
);
430 TRAP_CASE_STRING(GR_VIDEO_POSITION
);
431 TRAP_CASE_STRING(GR_VIEWPORT
);
432 TRAP_CASE_STRING(GR_WDEPTH_MIN_MAX
);
433 TRAP_CASE_STRING(GR_ZDEPTH_MIN_MAX
);
434 TRAP_CASE_STRING(GR_VERTEX_PARAMETER
);
435 TRAP_CASE_STRING(GR_BITS_GAMMA
);
436 TRAP_CASE_STRING(GR_GET_RESERVED_1
);
441 const char *TRP_GETSTRING (FxU32 pname
)
444 TRAP_CASE_STRING(GR_EXTENSION
);
445 TRAP_CASE_STRING(GR_HARDWARE
);
446 TRAP_CASE_STRING(GR_RENDERER
);
447 TRAP_CASE_STRING(GR_VENDOR
);
448 TRAP_CASE_STRING(GR_VERSION
);
453 const char *TRP_ENABLE (GrEnableMode_t mode
)
456 TRAP_CASE_STRING(GR_AA_ORDERED
);
457 TRAP_CASE_STRING(GR_ALLOW_MIPMAP_DITHER
);
458 TRAP_CASE_STRING(GR_PASSTHRU
);
459 TRAP_CASE_STRING(GR_SHAMELESS_PLUG
);
460 TRAP_CASE_STRING(GR_VIDEO_SMOOTHING
);
461 TRAP_CASE_STRING(GR_TEXTURE_UMA_EXT
);
462 TRAP_CASE_STRING(GR_STENCIL_MODE_EXT
);
463 TRAP_CASE_STRING(GR_OPENGL_MODE_EXT
);
468 const char *TRP_COORD (GrCoordinateSpaceMode_t mode
)
471 TRAP_CASE_STRING(GR_WINDOW_COORDS
);
472 TRAP_CASE_STRING(GR_CLIP_COORDS
);
477 const char *TRP_STIPPLEMODE (GrStippleMode_t mode
)
480 TRAP_CASE_STRING(GR_STIPPLE_DISABLE
);
481 TRAP_CASE_STRING(GR_STIPPLE_PATTERN
);
482 TRAP_CASE_STRING(GR_STIPPLE_ROTATE
);
487 const char *TRP_LODLEVEL (GrLOD_t lod
)
490 TRAP_CASE_STRING(GR_LOD_LOG2_2048
);
491 TRAP_CASE_STRING(GR_LOD_LOG2_1024
);
492 TRAP_CASE_STRING(GR_LOD_LOG2_512
);
493 TRAP_CASE_STRING(GR_LOD_LOG2_256
);
494 TRAP_CASE_STRING(GR_LOD_LOG2_128
);
495 TRAP_CASE_STRING(GR_LOD_LOG2_64
);
496 TRAP_CASE_STRING(GR_LOD_LOG2_32
);
497 TRAP_CASE_STRING(GR_LOD_LOG2_16
);
498 TRAP_CASE_STRING(GR_LOD_LOG2_8
);
499 TRAP_CASE_STRING(GR_LOD_LOG2_4
);
500 TRAP_CASE_STRING(GR_LOD_LOG2_2
);
501 TRAP_CASE_STRING(GR_LOD_LOG2_1
);
506 const char *TRP_ASPECTRATIO (GrAspectRatio_t aspect
)
509 TRAP_CASE_STRING(GR_ASPECT_LOG2_8x1
);
510 TRAP_CASE_STRING(GR_ASPECT_LOG2_4x1
);
511 TRAP_CASE_STRING(GR_ASPECT_LOG2_2x1
);
512 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x1
);
513 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x2
);
514 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x4
);
515 TRAP_CASE_STRING(GR_ASPECT_LOG2_1x8
);
520 const char *TRP_TEXFMT (GrTextureFormat_t fmt
)
523 TRAP_CASE_STRING(GR_TEXFMT_8BIT
);
524 /*TRAP_CASE_STRING(GR_TEXFMT_RGB_332); ==GR_TEXFMT_8BIT*/
525 TRAP_CASE_STRING(GR_TEXFMT_YIQ_422
);
526 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_8
);
527 TRAP_CASE_STRING(GR_TEXFMT_INTENSITY_8
);
528 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_44
);
529 TRAP_CASE_STRING(GR_TEXFMT_P_8
);
530 TRAP_CASE_STRING(GR_TEXFMT_RSVD0
);
531 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666); ==GR_TEXFMT_RSVD0*/
532 /*TRAP_CASE_STRING(GR_TEXFMT_P_8_6666_EXT); ==GR_TEXFMT_RSVD0*/
533 TRAP_CASE_STRING(GR_TEXFMT_RSVD1
);
534 TRAP_CASE_STRING(GR_TEXFMT_16BIT
);
535 /*TRAP_CASE_STRING(GR_TEXFMT_ARGB_8332); ==GR_TEXFMT_16BIT*/
536 TRAP_CASE_STRING(GR_TEXFMT_AYIQ_8422
);
537 TRAP_CASE_STRING(GR_TEXFMT_RGB_565
);
538 TRAP_CASE_STRING(GR_TEXFMT_ARGB_1555
);
539 TRAP_CASE_STRING(GR_TEXFMT_ARGB_4444
);
540 TRAP_CASE_STRING(GR_TEXFMT_ALPHA_INTENSITY_88
);
541 TRAP_CASE_STRING(GR_TEXFMT_AP_88
);
542 TRAP_CASE_STRING(GR_TEXFMT_RSVD2
);
543 /*TRAP_CASE_STRING(GR_TEXFMT_RSVD4); ==GR_TEXFMT_RSVD2*/
544 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_FXT1
);
545 TRAP_CASE_STRING(GR_TEXFMT_ARGB_8888
);
546 TRAP_CASE_STRING(GR_TEXFMT_YUYV_422
);
547 TRAP_CASE_STRING(GR_TEXFMT_UYVY_422
);
548 TRAP_CASE_STRING(GR_TEXFMT_AYUV_444
);
549 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT1
);
550 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT2
);
551 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT3
);
552 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT4
);
553 TRAP_CASE_STRING(GR_TEXFMT_ARGB_CMP_DXT5
);
554 TRAP_CASE_STRING(GR_TEXTFMT_RGB_888
);
559 const char *TRP_EVENODD (FxU32 evenOdd
)
562 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_EVEN
);
563 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_ODD
);
564 TRAP_CASE_STRING(GR_MIPMAPLEVELMASK_BOTH
);
569 const char *TRP_NCC (GrNCCTable_t table
)
572 TRAP_CASE_STRING(GR_NCCTABLE_NCC0
);
573 TRAP_CASE_STRING(GR_NCCTABLE_NCC1
);
578 const char *TRP_CLAMPMODE (GrTextureClampMode_t clampmode
)
581 TRAP_CASE_STRING(GR_TEXTURECLAMP_WRAP
);
582 TRAP_CASE_STRING(GR_TEXTURECLAMP_CLAMP
);
583 TRAP_CASE_STRING(GR_TEXTURECLAMP_MIRROR_EXT
);
588 const char *TRP_TEXFILTER (GrTextureFilterMode_t filter_mode
)
590 switch (filter_mode
) {
591 TRAP_CASE_STRING(GR_TEXTUREFILTER_POINT_SAMPLED
);
592 TRAP_CASE_STRING(GR_TEXTUREFILTER_BILINEAR
);
597 const char *TRP_TABLE (GrTexTable_t type
)
600 TRAP_CASE_STRING(GR_TEXTABLE_NCC0
);
601 TRAP_CASE_STRING(GR_TEXTABLE_NCC1
);
602 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE
);
603 TRAP_CASE_STRING(GR_TEXTABLE_PALETTE_6666_EXT
);
608 const char *TRP_MIPMODE (GrMipMapMode_t mode
)
611 TRAP_CASE_STRING(GR_MIPMAP_DISABLE
);
612 TRAP_CASE_STRING(GR_MIPMAP_NEAREST
);
613 TRAP_CASE_STRING(GR_MIPMAP_NEAREST_DITHER
);
618 const char *TRP_TEXBASERANGE (GrTexBaseRange_t range
)
621 TRAP_CASE_STRING(GR_TEXBASE_2048
);
622 TRAP_CASE_STRING(GR_TEXBASE_1024
);
623 TRAP_CASE_STRING(GR_TEXBASE_512
);
624 TRAP_CASE_STRING(GR_TEXBASE_256_TO_1
);
625 TRAP_CASE_STRING(GR_TEXBASE_256
);
626 TRAP_CASE_STRING(GR_TEXBASE_128
);
627 TRAP_CASE_STRING(GR_TEXBASE_64
);
628 TRAP_CASE_STRING(GR_TEXBASE_32_TO_1
);
633 const char *TRP_LOCKTYPE (GrLock_t type
)
636 TRAP_CASE_STRING(GR_LFB_READ_ONLY
);
637 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY
);
638 /*TRAP_CASE_STRING(GR_LFB_IDLE); ==GR_LFB_READ_ONLY*/
639 TRAP_CASE_STRING(GR_LFB_NOIDLE
);
640 TRAP_CASE_STRING(GR_LFB_WRITE_ONLY_EXPLICIT_EXT
);
645 const char *TRP_WRITEMODE (GrLfbWriteMode_t writeMode
)
648 TRAP_CASE_STRING(GR_LFBWRITEMODE_565
);
649 TRAP_CASE_STRING(GR_LFBWRITEMODE_555
);
650 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555
);
651 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED1
);
652 TRAP_CASE_STRING(GR_LFBWRITEMODE_888
);
653 TRAP_CASE_STRING(GR_LFBWRITEMODE_8888
);
654 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED2
);
655 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED3
);
656 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
);
657 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED5
);
658 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED6
);
659 TRAP_CASE_STRING(GR_LFBWRITEMODE_RESERVED7
);
660 TRAP_CASE_STRING(GR_LFBWRITEMODE_565_DEPTH
);
661 TRAP_CASE_STRING(GR_LFBWRITEMODE_555_DEPTH
);
662 TRAP_CASE_STRING(GR_LFBWRITEMODE_1555_DEPTH
);
663 TRAP_CASE_STRING(GR_LFBWRITEMODE_ZA16
);
664 TRAP_CASE_STRING(GR_LFBWRITEMODE_ANY
);
669 const char *TRP_SRCFMT (GrLfbSrcFmt_t src_format
)
671 switch (src_format
) {
672 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565
);
673 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555
);
674 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555
);
675 TRAP_CASE_STRING(GR_LFB_SRC_FMT_888
);
676 TRAP_CASE_STRING(GR_LFB_SRC_FMT_8888
);
677 TRAP_CASE_STRING(GR_LFB_SRC_FMT_565_DEPTH
);
678 TRAP_CASE_STRING(GR_LFB_SRC_FMT_555_DEPTH
);
679 TRAP_CASE_STRING(GR_LFB_SRC_FMT_1555_DEPTH
);
680 TRAP_CASE_STRING(GR_LFB_SRC_FMT_ZA16
);
681 TRAP_CASE_STRING(GR_LFB_SRC_FMT_RLE16
);
682 TRAP_CASE_STRING(GR_LFBWRITEMODE_Z32
); /*???*/
687 const char *TRP_CRMODE (GrChromaRangeMode_t mode
)
690 TRAP_CASE_STRING(GR_CHROMARANGE_DISABLE_EXT
);
691 /*TRAP_CASE_STRING(GR_CHROMARANGE_RGB_ALL_EXT); ==GR_CHROMARANGE_DISABLE_EXT*/
692 TRAP_CASE_STRING(GR_CHROMARANGE_ENABLE_EXT
);
697 const char *TRP_PIXFMT (GrPixelFormat_t pixelformat
)
699 switch (pixelformat
) {
700 TRAP_CASE_STRING(GR_PIXFMT_I_8
);
701 TRAP_CASE_STRING(GR_PIXFMT_AI_88
);
702 TRAP_CASE_STRING(GR_PIXFMT_RGB_565
);
703 TRAP_CASE_STRING(GR_PIXFMT_ARGB_1555
);
704 TRAP_CASE_STRING(GR_PIXFMT_ARGB_8888
);
705 TRAP_CASE_STRING(GR_PIXFMT_AA_2_RGB_565
);
706 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_1555
);
707 TRAP_CASE_STRING(GR_PIXFMT_AA_2_ARGB_8888
);
708 TRAP_CASE_STRING(GR_PIXFMT_AA_4_RGB_565
);
709 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_1555
);
710 TRAP_CASE_STRING(GR_PIXFMT_AA_4_ARGB_8888
);
711 TRAP_CASE_STRING(GR_PIXFMT_AA_8_RGB_565
);
712 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_1555
);
713 TRAP_CASE_STRING(GR_PIXFMT_AA_8_ARGB_8888
);
718 const char *TRP_STENCILOP (GrStencilOp_t op
)
721 TRAP_CASE_STRING(GR_STENCILOP_KEEP
);
722 TRAP_CASE_STRING(GR_STENCILOP_ZERO
);
723 TRAP_CASE_STRING(GR_STENCILOP_REPLACE
);
724 TRAP_CASE_STRING(GR_STENCILOP_INCR_CLAMP
);
725 TRAP_CASE_STRING(GR_STENCILOP_DECR_CLAMP
);
726 TRAP_CASE_STRING(GR_STENCILOP_INVERT
);
727 TRAP_CASE_STRING(GR_STENCILOP_INCR_WRAP
);
728 TRAP_CASE_STRING(GR_STENCILOP_DECR_WRAP
);
733 const char *TRP_BLENDOP (GrAlphaBlendOp_t op
)
736 TRAP_CASE_STRING(GR_BLEND_OP_ADD
);
737 TRAP_CASE_STRING(GR_BLEND_OP_SUB
);
738 TRAP_CASE_STRING(GR_BLEND_OP_REVSUB
);
743 const char *TRP_CU (GrCCUColor_t a
)
746 TRAP_CASE_STRING(GR_CMBX_ZERO
);
747 TRAP_CASE_STRING(GR_CMBX_TEXTURE_ALPHA
);
748 TRAP_CASE_STRING(GR_CMBX_ALOCAL
);
749 TRAP_CASE_STRING(GR_CMBX_AOTHER
);
750 TRAP_CASE_STRING(GR_CMBX_B
);
751 TRAP_CASE_STRING(GR_CMBX_CONSTANT_ALPHA
);
752 TRAP_CASE_STRING(GR_CMBX_CONSTANT_COLOR
);
753 TRAP_CASE_STRING(GR_CMBX_DETAIL_FACTOR
);
754 TRAP_CASE_STRING(GR_CMBX_ITALPHA
);
755 TRAP_CASE_STRING(GR_CMBX_ITRGB
);
756 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_ALPHA
);
757 TRAP_CASE_STRING(GR_CMBX_LOCAL_TEXTURE_RGB
);
758 TRAP_CASE_STRING(GR_CMBX_LOD_FRAC
);
759 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_ALPHA
);
760 TRAP_CASE_STRING(GR_CMBX_OTHER_TEXTURE_RGB
);
761 TRAP_CASE_STRING(GR_CMBX_TEXTURE_RGB
);
762 TRAP_CASE_STRING(GR_CMBX_TMU_CALPHA
);
763 TRAP_CASE_STRING(GR_CMBX_TMU_CCOLOR
);
768 const char *TRP_CMBMODE (GrCombineMode_t a_mode
)
771 TRAP_CASE_STRING(GR_FUNC_MODE_ZERO
);
772 TRAP_CASE_STRING(GR_FUNC_MODE_X
);
773 TRAP_CASE_STRING(GR_FUNC_MODE_ONE_MINUS_X
);
774 TRAP_CASE_STRING(GR_FUNC_MODE_NEGATIVE_X
);
775 TRAP_CASE_STRING(GR_FUNC_MODE_X_MINUS_HALF
);
780 const char *TRP_TMU (GrChipID_t tmu
)
783 TRAP_CASE_STRING(GR_TMU0
);
784 TRAP_CASE_STRING(GR_TMU1
);
789 const char *TRP_TXDITHER (FxU32 dither
)
792 TRAP_CASE_STRING(TX_DITHER_NONE
);
793 TRAP_CASE_STRING(TX_DITHER_4x4
);
794 TRAP_CASE_STRING(TX_DITHER_ERR
);
799 const char *TRP_TXCOMPRESS (FxU32 compress
)
802 TRAP_CASE_STRING(TX_COMPRESSION_STATISTICAL
);
803 TRAP_CASE_STRING(TX_COMPRESSION_HEURISTIC
);
810 /****************************************************************************\
812 \****************************************************************************/
817 void (FX_CALL
*real_grSetNumPendingBuffers
) (FxI32 NumPendingBuffers
);
818 char * (FX_CALL
*real_grGetRegistryOrEnvironmentStringExt
) (char *theEntry
);
819 void (FX_CALL
*real_grGetGammaTableExt
) (FxU32 nentries
, FxU32
*red
, FxU32
*green
, FxU32
*blue
);
820 void (FX_CALL
*real_grChromaRangeModeExt
) (GrChromakeyMode_t mode
);
821 void (FX_CALL
*real_grChromaRangeExt
) (GrColor_t color
, GrColor_t range
, GrChromaRangeMode_t match_mode
);
822 void (FX_CALL
*real_grTexChromaModeExt
) (GrChipID_t tmu
, GrChromakeyMode_t mode
);
823 void (FX_CALL
*real_grTexChromaRangeExt
) (GrChipID_t tmu
, GrColor_t min
, GrColor_t max
, GrTexChromakeyMode_t mode
);
826 void (FX_CALL
*real_grTexDownloadTableExt
) (GrChipID_t tmu
, GrTexTable_t type
, void *data
);
827 void (FX_CALL
*real_grTexDownloadTablePartialExt
) (GrChipID_t tmu
, GrTexTable_t type
, void *data
, int start
, int end
);
828 void (FX_CALL
*real_grTexNCCTableExt
) (GrChipID_t tmu
, GrNCCTable_t table
);
831 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
);
832 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
);
833 void (FX_CALL
*real_grAuxBufferExt
) (GrBuffer_t buffer
);
836 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
);
837 void (FX_CALL
*real_grStencilFuncExt
) (GrCmpFnc_t fnc
, GrStencil_t ref
, GrStencil_t mask
);
838 void (FX_CALL
*real_grStencilMaskExt
) (GrStencil_t value
);
839 void (FX_CALL
*real_grStencilOpExt
) (GrStencilOp_t stencil_fail
, GrStencilOp_t depth_fail
, GrStencilOp_t depth_pass
);
840 void (FX_CALL
*real_grLfbConstantStencilExt
) (GrStencil_t value
);
841 void (FX_CALL
*real_grBufferClearExt
) (GrColor_t color
, GrAlpha_t alpha
, FxU32 depth
, GrStencil_t stencil
);
842 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
);
843 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
);
844 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
);
845 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
);
846 void (FX_CALL
*real_grConstantColorValueExt
) (GrChipID_t tmu
, GrColor_t value
);
847 void (FX_CALL
*real_grColorMaskExt
) (FxBool r
, FxBool g
, FxBool b
, FxBool a
);
848 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
);
849 void (FX_CALL
*real_grTBufferWriteMaskExt
) (FxU32 tmask
);
854 void (FX_CALL
*real_txImgQuantize
) (char *dst
, char *src
, int w
, int h
, FxU32 format
, FxU32 dither
);
855 void (FX_CALL
*real_txMipQuantize
) (TxMip
*pxMip
, TxMip
*txMip
, int fmt
, FxU32 d
, FxU32 comp
);
856 void (FX_CALL
*real_txPalToNcc
) (GuNccTable
*ncc_table
, const FxU32
*pal
);
860 /****************************************************************************\
862 \****************************************************************************/
865 ** rendering functions
867 void FX_CALL
trap_grDrawPoint (const void *pt
)
869 #define FN_NAME "grDrawPoint"
870 TRAP_LOG("%s(%p)\n", FN_NAME
, pt
);
875 void FX_CALL
trap_grDrawLine (const void *v1
,
878 #define FN_NAME "grDrawLine"
879 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, v1
, v2
);
884 void FX_CALL
trap_grDrawTriangle (const void *a
,
888 #define FN_NAME "grDrawTriangle"
889 TRAP_LOG("%s(%p, %p, %p)\n", FN_NAME
, a
, b
, c
);
890 grDrawTriangle(a
, b
, c
);
894 void FX_CALL
trap_grVertexLayout (FxU32 param
,
898 #define FN_NAME "grVertexLayout"
899 TRAP_LOG("%s(%s, %ld, %s)\n", FN_NAME
, TRP_VTX(param
), offset
, TRP_PARAM(mode
));
900 grVertexLayout(param
, offset
, mode
);
904 void FX_CALL
trap_grDrawVertexArray (FxU32 mode
,
908 #define FN_NAME "grDrawVertexArray"
909 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
);
910 grDrawVertexArray(mode
, Count
, pointers
);
914 void FX_CALL
trap_grDrawVertexArrayContiguous (FxU32 mode
,
919 #define FN_NAME "grDrawVertexArrayContiguous"
920 TRAP_LOG("%s(%s, %lu, %p, %lu)\n", FN_NAME
, TRP_ARRAY(mode
), Count
, pointers
, stride
);
921 grDrawVertexArrayContiguous(mode
, Count
, pointers
, stride
);
926 ** Antialiasing Functions
928 void FX_CALL
trap_grAADrawTriangle (const void *a
,
935 #define FN_NAME "grAADrawTriangle"
936 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
));
937 grAADrawTriangle(a
, b
, c
, ab_antialias
, bc_antialias
, ca_antialias
);
944 void FX_CALL
trap_grBufferClear (GrColor_t color
,
948 #define FN_NAME "grBufferClear"
949 TRAP_LOG("%s(%08lx, %02x, %08lx)\n", FN_NAME
, color
, alpha
, depth
);
950 grBufferClear(color
, alpha
, depth
);
954 void FX_CALL
trap_grBufferSwap (FxU32 swap_interval
)
956 #define FN_NAME "grBufferSwap"
957 TRAP_LOG("%s(%lu)\n", FN_NAME
, swap_interval
);
958 grBufferSwap(swap_interval
);
962 void FX_CALL
trap_grRenderBuffer (GrBuffer_t buffer
)
964 #define FN_NAME "grRenderBuffer"
965 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
966 grRenderBuffer(buffer
);
973 void FX_CALL
trap_grErrorSetCallback (GrErrorCallbackFnc_t fnc
)
975 #define FN_NAME "grErrorSetCallback"
976 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)fnc
);
977 grErrorSetCallback(fnc
);
984 void FX_CALL
trap_grFinish (void)
986 #define FN_NAME "grFinish"
987 TRAP_LOG("%s()\n", FN_NAME
);
992 void FX_CALL
trap_grFlush (void)
994 #define FN_NAME "grFlush"
995 TRAP_LOG("%s()\n", FN_NAME
);
1000 GrContext_t FX_CALL
trap_grSstWinOpen (FxU32 hWnd
,
1001 GrScreenResolution_t screen_resolution
,
1002 GrScreenRefresh_t refresh_rate
,
1003 GrColorFormat_t color_format
,
1004 GrOriginLocation_t origin_location
,
1008 #define FN_NAME "grSstWinOpen"
1010 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
);
1011 rv
= grSstWinOpen(hWnd
, screen_resolution
, refresh_rate
, color_format
, origin_location
, nColBuffers
, nAuxBuffers
);
1012 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1017 FxBool FX_CALL
trap_grSstWinClose (GrContext_t context
)
1019 #define FN_NAME "grSstWinClose"
1021 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
1022 rv
= grSstWinClose(context
);
1023 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1028 FxBool FX_CALL
trap_grSelectContext (GrContext_t context
)
1030 #define FN_NAME "grSelectContext"
1032 TRAP_LOG("%s(%p)\n", FN_NAME
, (void *)context
);
1033 rv
= grSelectContext(context
);
1034 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1039 void FX_CALL
trap_grSstOrigin (GrOriginLocation_t origin
)
1041 #define FN_NAME "grSstOrigin"
1042 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ORIGIN(origin
));
1043 grSstOrigin(origin
);
1047 void FX_CALL
trap_grSstSelect (int which_sst
)
1049 #define FN_NAME "grSstSelect"
1050 TRAP_LOG("%s(%d)\n", FN_NAME
, which_sst
);
1051 grSstSelect(which_sst
);
1056 ** Glide configuration and special effect maintenance functions
1058 void FX_CALL
trap_grAlphaBlendFunction (GrAlphaBlendFnc_t rgb_sf
,
1059 GrAlphaBlendFnc_t rgb_df
,
1060 GrAlphaBlendFnc_t alpha_sf
,
1061 GrAlphaBlendFnc_t alpha_df
)
1063 #define FN_NAME "grAlphaBlendFunction"
1064 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
));
1065 grAlphaBlendFunction(rgb_sf
, rgb_df
, alpha_sf
, alpha_df
);
1069 void FX_CALL
trap_grAlphaCombine (GrCombineFunction_t function
,
1070 GrCombineFactor_t factor
,
1071 GrCombineLocal_t local
,
1072 GrCombineOther_t other
,
1075 #define FN_NAME "grAlphaCombine"
1076 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
));
1077 grAlphaCombine(function
, factor
, local
, other
, invert
);
1081 void FX_CALL
trap_grAlphaControlsITRGBLighting (FxBool enable
)
1083 #define FN_NAME "grAlphaControlsITRGBLighting"
1084 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(enable
));
1085 grAlphaControlsITRGBLighting(enable
);
1089 void FX_CALL
trap_grAlphaTestFunction (GrCmpFnc_t function
)
1091 #define FN_NAME "grAlphaTestFunction"
1092 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1093 grAlphaTestFunction(function
);
1097 void FX_CALL
trap_grAlphaTestReferenceValue (GrAlpha_t value
)
1099 #define FN_NAME "grAlphaTestReferenceValue"
1100 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
1101 grAlphaTestReferenceValue(value
);
1105 void FX_CALL
trap_grChromakeyMode (GrChromakeyMode_t mode
)
1107 #define FN_NAME "grChromakeyMode"
1108 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1109 grChromakeyMode(mode
);
1113 void FX_CALL
trap_grChromakeyValue (GrColor_t value
)
1115 #define FN_NAME "grChromakeyValue"
1116 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1117 grChromakeyValue(value
);
1121 void FX_CALL
trap_grClipWindow (FxU32 minx
,
1126 #define FN_NAME "grClipWindow"
1127 TRAP_LOG("%s(%lu, %lu, %lu, %lu)\n", FN_NAME
, minx
, miny
, maxx
, maxy
);
1128 grClipWindow(minx
, miny
, maxx
, maxy
);
1132 void FX_CALL
trap_grColorCombine (GrCombineFunction_t function
,
1133 GrCombineFactor_t factor
,
1134 GrCombineLocal_t local
,
1135 GrCombineOther_t other
,
1138 #define FN_NAME "grColorCombine"
1139 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
));
1140 grColorCombine(function
, factor
, local
, other
, invert
);
1144 void FX_CALL
trap_grColorMask (FxBool rgb
,
1147 #define FN_NAME "grColorMask"
1148 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(rgb
), TRP_BOOL(a
));
1149 grColorMask(rgb
, a
);
1153 void FX_CALL
trap_grCullMode (GrCullMode_t mode
)
1155 #define FN_NAME "grCullMode"
1156 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CULLMODE(mode
));
1161 void FX_CALL
trap_grConstantColorValue (GrColor_t value
)
1163 #define FN_NAME "grConstantColorValue"
1164 TRAP_LOG("%s(%08lx)\n", FN_NAME
, value
);
1165 grConstantColorValue(value
);
1169 void FX_CALL
trap_grDepthBiasLevel (FxI32 level
)
1171 #define FN_NAME "grDepthBiasLevel"
1172 TRAP_LOG("%s(%ld)\n", FN_NAME
, level
);
1173 grDepthBiasLevel(level
);
1177 void FX_CALL
trap_grDepthBufferFunction (GrCmpFnc_t function
)
1179 #define FN_NAME "grDepthBufferFunction"
1180 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CMPFUNC(function
));
1181 grDepthBufferFunction(function
);
1185 void FX_CALL
trap_grDepthBufferMode (GrDepthBufferMode_t mode
)
1187 #define FN_NAME "grDepthBufferMode"
1188 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DEPTHMODE(mode
));
1189 grDepthBufferMode(mode
);
1193 void FX_CALL
trap_grDepthMask (FxBool mask
)
1195 #define FN_NAME "grDepthMask"
1196 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BOOL(mask
));
1201 void FX_CALL
trap_grDisableAllEffects (void)
1203 #define FN_NAME "grDisableAllEffects"
1204 TRAP_LOG("%s()\n", FN_NAME
);
1205 grDisableAllEffects();
1209 void FX_CALL
trap_grDitherMode (GrDitherMode_t mode
)
1211 #define FN_NAME "grDitherMode"
1212 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_DITHERMODE(mode
));
1217 void FX_CALL
trap_grFogColorValue (GrColor_t fogcolor
)
1219 #define FN_NAME "grFogColorValue"
1220 TRAP_LOG("%s(%08lx)\n", FN_NAME
, fogcolor
);
1221 grFogColorValue(fogcolor
);
1225 void FX_CALL
trap_grFogMode (GrFogMode_t mode
)
1227 #define FN_NAME "grFogMode"
1228 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_FOGMODE(mode
));
1233 void FX_CALL
trap_grFogTable (const GrFog_t ft
[])
1235 #define FN_NAME "grFogTable"
1236 TRAP_LOG("%s(%p)\n", FN_NAME
, ft
);
1241 void FX_CALL
trap_grLoadGammaTable (FxU32 nentries
,
1246 #define FN_NAME "grLoadGammaTable"
1247 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1248 grLoadGammaTable(nentries
, red
, green
, blue
);
1252 void FX_CALL
trap_grSplash (float x
,
1258 #define FN_NAME "grSplash"
1259 TRAP_LOG("%s(%f, %f, %f, %f, %lu)\n", FN_NAME
, x
, y
, width
, height
, frame
);
1260 grSplash(x
, y
, width
, height
, frame
);
1264 FxU32 FX_CALL
trap_grGet (FxU32 pname
,
1268 #define FN_NAME "grGet"
1270 TRAP_LOG("%s(%s, %lu, %p)\n", FN_NAME
, TRP_GETNAME(pname
), plength
, (void *)params
);
1271 rv
= grGet(pname
, plength
, params
);
1273 for (i
= 0; i
< (rv
/sizeof(FxI32
)); i
++) {
1274 TRAP_LOG("%s%ld", i
? ", " : "", params
[i
]);
1281 const char *FX_CALL
trap_grGetString (FxU32 pname
)
1283 #define FN_NAME "grGetString"
1285 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETSTRING(pname
));
1286 rv
= grGetString(pname
);
1288 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1290 TRAP_LOG(GOT
"NULL\n");
1296 FxI32 FX_CALL
trap_grQueryResolutions (const GrResolution
*resTemplate
,
1297 GrResolution
*output
)
1299 #define FN_NAME "grQueryResolutions"
1301 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)resTemplate
, (void *)output
);
1302 rv
= grQueryResolutions(resTemplate
, output
);
1303 TRAP_LOG(GOT
"%ld\n", rv
);
1308 FxBool FX_CALL
trap_grReset (FxU32 what
)
1310 #define FN_NAME "grReset"
1312 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_GETNAME(what
));
1314 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1319 GrProc FX_CALL
trap_grGetProcAddress (char *procName
)
1321 #define FN_NAME "grGetProcAddress"
1323 TRAP_LOG("%s(%s)\n", FN_NAME
, procName
);
1324 rv
= grGetProcAddress(procName
);
1325 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1330 void FX_CALL
trap_grEnable (GrEnableMode_t mode
)
1332 #define FN_NAME "grEnable"
1333 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1338 void FX_CALL
trap_grDisable (GrEnableMode_t mode
)
1340 #define FN_NAME "grDisable"
1341 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_ENABLE(mode
));
1346 void FX_CALL
trap_grCoordinateSpace (GrCoordinateSpaceMode_t mode
)
1348 #define FN_NAME "grCoordinateSpace"
1349 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COORD(mode
));
1350 grCoordinateSpace(mode
);
1354 void FX_CALL
trap_grDepthRange (FxFloat n
,
1357 #define FN_NAME "grDepthRange"
1358 TRAP_LOG("%s(%f, %f)\n", FN_NAME
, n
, f
);
1363 void FX_CALL
trap_grStippleMode (GrStippleMode_t mode
)
1365 #define FN_NAME "grStippleMode"
1366 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_STIPPLEMODE(mode
));
1367 grStippleMode(mode
); /* some Glide libs don't have it; not used anyway */
1371 void FX_CALL
trap_grStipplePattern (GrStipplePattern_t mode
)
1373 #define FN_NAME "grStipplePattern"
1374 TRAP_LOG("%s(%08lx)\n", FN_NAME
, mode
);
1375 grStipplePattern(mode
); /* some Glide libs don't have it; not used anyway */
1379 void FX_CALL
trap_grViewport (FxI32 x
,
1384 #define FN_NAME "grViewport"
1385 TRAP_LOG("%s(%ld, %ld, %ld, %ld)\n", FN_NAME
, x
, y
, width
, height
);
1386 grViewport(x
, y
, width
, height
);
1391 ** texture mapping control functions
1393 FxU32 FX_CALL
trap_grTexCalcMemRequired (GrLOD_t lodmin
,
1395 GrAspectRatio_t aspect
,
1396 GrTextureFormat_t fmt
)
1398 #define FN_NAME "grTexCalcMemRequired"
1400 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_LODLEVEL(lodmin
), TRP_LODLEVEL(lodmax
), TRP_ASPECTRATIO(aspect
), TRP_TEXFMT(fmt
));
1401 rv
= grTexCalcMemRequired(lodmin
, lodmax
, aspect
, fmt
);
1402 TRAP_LOG(GOT
"%lu\n", rv
);
1407 FxU32 FX_CALL
trap_grTexTextureMemRequired (FxU32 evenOdd
,
1410 #define FN_NAME "grTexTextureMemRequired"
1412 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_EVENODD(evenOdd
), (void *)info
);
1413 rv
= grTexTextureMemRequired(evenOdd
, info
);
1414 TRAP_LOG(GOT
"%lu\n", rv
);
1419 FxU32 FX_CALL
trap_grTexMinAddress (GrChipID_t tmu
)
1421 #define FN_NAME "grTexMinAddress"
1423 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1424 rv
= grTexMinAddress(tmu
);
1425 TRAP_LOG(GOT
"%lu\n", rv
);
1430 FxU32 FX_CALL
trap_grTexMaxAddress (GrChipID_t tmu
)
1432 #define FN_NAME "grTexMaxAddress"
1434 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_TMU(tmu
));
1435 rv
= grTexMaxAddress(tmu
);
1436 TRAP_LOG(GOT
"%lu\n", rv
);
1441 void FX_CALL
trap_grTexNCCTable (GrNCCTable_t table
)
1443 #define FN_NAME "grTexNCCTable"
1444 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_NCC(table
));
1445 grTexNCCTable(table
);
1449 void FX_CALL
trap_grTexSource (GrChipID_t tmu
,
1454 #define FN_NAME "grTexSource"
1455 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1456 grTexSource(tmu
, startAddress
, evenOdd
, info
);
1460 void FX_CALL
trap_grTexClampMode (GrChipID_t tmu
,
1461 GrTextureClampMode_t s_clampmode
,
1462 GrTextureClampMode_t t_clampmode
)
1464 #define FN_NAME "grTexClampMode"
1465 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CLAMPMODE(s_clampmode
), TRP_CLAMPMODE(t_clampmode
));
1466 grTexClampMode(tmu
, s_clampmode
, t_clampmode
);
1470 void FX_CALL
trap_grTexCombine (GrChipID_t tmu
,
1471 GrCombineFunction_t rgb_function
,
1472 GrCombineFactor_t rgb_factor
,
1473 GrCombineFunction_t alpha_function
,
1474 GrCombineFactor_t alpha_factor
,
1476 FxBool alpha_invert
)
1478 #define FN_NAME "grTexCombine"
1479 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
));
1480 grTexCombine(tmu
, rgb_function
, rgb_factor
, alpha_function
, alpha_factor
, rgb_invert
, alpha_invert
);
1484 void FX_CALL
trap_grTexDetailControl (GrChipID_t tmu
,
1489 #define FN_NAME "grTexDetailControl"
1490 TRAP_LOG("%s(%s, %u, %d, %f)\n", FN_NAME
, TRP_TMU(tmu
), lod_bias
, detail_scale
, detail_max
);
1491 grTexDetailControl(tmu
, lod_bias
, detail_scale
, detail_max
);
1495 void FX_CALL
trap_grTexFilterMode (GrChipID_t tmu
,
1496 GrTextureFilterMode_t minfilter_mode
,
1497 GrTextureFilterMode_t magfilter_mode
)
1499 #define FN_NAME "grTexFilterMode"
1500 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXFILTER(minfilter_mode
), TRP_TEXFILTER(magfilter_mode
));
1501 grTexFilterMode(tmu
, minfilter_mode
, magfilter_mode
);
1505 void FX_CALL
trap_grTexLodBiasValue (GrChipID_t tmu
,
1508 #define FN_NAME "grTexLodBiasValue"
1509 TRAP_LOG("%s(%s, %f)\n", FN_NAME
, TRP_TMU(tmu
), bias
);
1510 grTexLodBiasValue(tmu
, bias
);
1514 void FX_CALL
trap_grTexDownloadMipMap (GrChipID_t tmu
,
1519 #define FN_NAME "grTexDownloadMipMap"
1520 TRAP_LOG("%s(%s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1521 grTexDownloadMipMap(tmu
, startAddress
, evenOdd
, info
);
1525 void FX_CALL
trap_grTexDownloadMipMapLevel (GrChipID_t tmu
,
1529 GrAspectRatio_t aspectRatio
,
1530 GrTextureFormat_t format
,
1534 #define FN_NAME "grTexDownloadMipMapLevel"
1535 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
);
1536 grTexDownloadMipMapLevel(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
);
1540 FxBool FX_CALL
trap_grTexDownloadMipMapLevelPartial (GrChipID_t tmu
,
1544 GrAspectRatio_t aspectRatio
,
1545 GrTextureFormat_t format
,
1551 #define FN_NAME "grTexDownloadMipMapLevelPartial"
1553 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
);
1554 rv
= grTexDownloadMipMapLevelPartial(tmu
, startAddress
, thisLod
, largeLod
, aspectRatio
, format
, evenOdd
, data
, start
, end
);
1555 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1560 void FX_CALL
trap_grTexDownloadTable (GrTexTable_t type
,
1563 #define FN_NAME "grTexDownloadTable"
1564 TRAP_LOG("%s(%s, %p)\n", FN_NAME
, TRP_TABLE(type
), data
);
1565 grTexDownloadTable(type
, data
);
1569 void FX_CALL
trap_grTexDownloadTablePartial (GrTexTable_t type
,
1574 #define FN_NAME "grTexDownloadTablePartial"
1575 TRAP_LOG("%s(%s, %p, %d, %d)\n", FN_NAME
, TRP_TABLE(type
), data
, start
, end
);
1576 grTexDownloadTablePartial(type
, data
, start
, end
);
1580 void FX_CALL
trap_grTexMipMapMode (GrChipID_t tmu
,
1581 GrMipMapMode_t mode
,
1584 #define FN_NAME "grTexMipMapMode"
1585 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_MIPMODE(mode
), TRP_BOOL(lodBlend
));
1586 grTexMipMapMode(tmu
, mode
, lodBlend
);
1590 void FX_CALL
trap_grTexMultibase (GrChipID_t tmu
,
1593 #define FN_NAME "grTexMultibase"
1594 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_BOOL(enable
));
1595 grTexMultibase(tmu
, enable
);
1599 void FX_CALL
trap_grTexMultibaseAddress (GrChipID_t tmu
,
1600 GrTexBaseRange_t range
,
1605 #define FN_NAME "grTexMultibaseAddress"
1606 TRAP_LOG("%s(%s, %s, %08lx, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TEXBASERANGE(range
), startAddress
, TRP_EVENODD(evenOdd
), (void *)info
);
1607 grTexMultibaseAddress(tmu
, range
, startAddress
, evenOdd
, info
);
1612 ** linear frame buffer functions
1614 FxBool FX_CALL
trap_grLfbLock (GrLock_t type
,
1616 GrLfbWriteMode_t writeMode
,
1617 GrOriginLocation_t origin
,
1618 FxBool pixelPipeline
,
1621 #define FN_NAME "grLfbLock"
1623 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
);
1624 rv
= grLfbLock(type
, buffer
, writeMode
, origin
, pixelPipeline
, info
);
1625 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1630 FxBool FX_CALL
trap_grLfbUnlock (GrLock_t type
,
1633 #define FN_NAME "grLfbUnlock"
1635 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_LOCKTYPE(type
), TRP_BUFFER(buffer
));
1636 rv
= grLfbUnlock(type
, buffer
);
1637 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1642 void FX_CALL
trap_grLfbConstantAlpha (GrAlpha_t alpha
)
1644 #define FN_NAME "grLfbConstantAlpha"
1645 TRAP_LOG("%s(%02x)\n", FN_NAME
, alpha
);
1646 grLfbConstantAlpha(alpha
);
1650 void FX_CALL
trap_grLfbConstantDepth (FxU32 depth
)
1652 #define FN_NAME "grLfbConstantDepth"
1653 TRAP_LOG("%s(%08lx)\n", FN_NAME
, depth
);
1654 grLfbConstantDepth(depth
);
1658 void FX_CALL
trap_grLfbWriteColorSwizzle (FxBool swizzleBytes
,
1661 #define FN_NAME "grLfbWriteColorSwizzle"
1662 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_BOOL(swizzleBytes
), TRP_BOOL(swapWords
));
1663 grLfbWriteColorSwizzle(swizzleBytes
, swapWords
);
1667 void FX_CALL
trap_grLfbWriteColorFormat (GrColorFormat_t colorFormat
)
1669 #define FN_NAME "grLfbWriteColorFormat"
1670 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_COLFMT(colorFormat
));
1671 grLfbWriteColorFormat(colorFormat
);
1675 FxBool FX_CALL
trap_grLfbWriteRegion (GrBuffer_t dst_buffer
,
1678 GrLfbSrcFmt_t src_format
,
1681 FxBool pixelPipeline
,
1685 #define FN_NAME "grLfbWriteRegion"
1687 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
);
1688 rv
= grLfbWriteRegion(dst_buffer
, dst_x
, dst_y
, src_format
, src_width
, src_height
, pixelPipeline
, src_stride
, src_data
);
1689 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1694 FxBool FX_CALL
trap_grLfbReadRegion (GrBuffer_t src_buffer
,
1702 #define FN_NAME "grLfbReadRegion"
1704 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
);
1705 rv
= grLfbReadRegion(src_buffer
, src_x
, src_y
, src_width
, src_height
, dst_stride
, dst_data
);
1706 TRAP_LOG(GOT
"%s\n", TRP_BOOL(rv
));
1712 ** glide management functions
1714 void FX_CALL
trap_grGlideInit (void)
1716 #define FN_NAME "grGlideInit"
1717 TRAP_LOG("%s()\n", FN_NAME
);
1722 void FX_CALL
trap_grGlideShutdown (void)
1724 #define FN_NAME "grGlideShutdown"
1725 TRAP_LOG("%s()\n", FN_NAME
);
1730 void FX_CALL
trap_grGlideGetState (void *state
)
1732 #define FN_NAME "grGlideGetState"
1733 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1734 grGlideGetState(state
);
1738 void FX_CALL
trap_grGlideSetState (const void *state
)
1740 #define FN_NAME "grGlideSetState"
1741 TRAP_LOG("%s(%p)\n", FN_NAME
, state
);
1742 grGlideSetState(state
);
1746 void FX_CALL
trap_grGlideGetVertexLayout (void *layout
)
1748 #define FN_NAME "grGlideGetVertexLayout"
1749 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1750 grGlideGetVertexLayout(layout
);
1754 void FX_CALL
trap_grGlideSetVertexLayout (const void *layout
)
1756 #define FN_NAME "grGlideSetVertexLayout"
1757 TRAP_LOG("%s(%p)\n", FN_NAME
, layout
);
1758 grGlideSetVertexLayout(layout
);
1763 ** glide utility functions
1765 void FX_CALL
trap_guGammaCorrectionRGB (FxFloat red
,
1769 #define FN_NAME "guGammaCorrectionRGB"
1770 TRAP_LOG("%s(%f, %f, %f)\n", FN_NAME
, red
, green
, blue
);
1771 guGammaCorrectionRGB(red
, green
, blue
);
1775 float FX_CALL
trap_guFogTableIndexToW (int i
)
1777 #define FN_NAME "guFogTableIndexToW"
1779 TRAP_LOG("%s(%d)\n", FN_NAME
, i
);
1780 rv
= guFogTableIndexToW(i
);
1781 TRAP_LOG(GOT
"%f\n", rv
);
1786 void FX_CALL
trap_guFogGenerateExp (GrFog_t
*fogtable
,
1789 #define FN_NAME "guFogGenerateExp"
1790 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1791 guFogGenerateExp(fogtable
, density
);
1795 void FX_CALL
trap_guFogGenerateExp2 (GrFog_t
*fogtable
,
1798 #define FN_NAME "guFogGenerateExp2"
1799 TRAP_LOG("%s(%p, %f)\n", FN_NAME
, fogtable
, density
);
1800 guFogGenerateExp2(fogtable
, density
);
1804 void FX_CALL
trap_guFogGenerateLinear (GrFog_t
*fogtable
,
1808 #define FN_NAME "guFogGenerateLinear"
1809 TRAP_LOG("%s(%p, %f, %f)\n", FN_NAME
, fogtable
, nearZ
, farZ
);
1810 guFogGenerateLinear(fogtable
, nearZ
, farZ
);
1817 void FX_CALL
trap_grSetNumPendingBuffers (FxI32 NumPendingBuffers
)
1819 #define FN_NAME "grSetNumPendingBuffers"
1820 TRAP_LOG("%s(%ld)\n", FN_NAME
, NumPendingBuffers
);
1821 assert(real_grSetNumPendingBuffers
);
1822 (*real_grSetNumPendingBuffers
)(NumPendingBuffers
);
1826 char *FX_CALL
trap_grGetRegistryOrEnvironmentStringExt (char *theEntry
)
1828 #define FN_NAME "grGetRegistryOrEnvironmentStringExt"
1830 TRAP_LOG("%s(\"%s\")\n", FN_NAME
, theEntry
);
1831 assert(real_grGetRegistryOrEnvironmentStringExt
);
1832 rv
= (*real_grGetRegistryOrEnvironmentStringExt
)(theEntry
);
1834 TRAP_LOG(GOT
"\"%s\"\n", rv
);
1836 TRAP_LOG(GOT
"NULL\n");
1842 void FX_CALL
trap_grGetGammaTableExt (FxU32 nentries
,
1847 #define FN_NAME "grGetGammaTableExt"
1848 TRAP_LOG("%s(%lu, %p, %p, %p)\n", FN_NAME
, nentries
, (void *)red
, (void *)green
, (void *)blue
);
1849 assert(real_grGetGammaTableExt
);
1850 (*real_grGetGammaTableExt
)(nentries
, red
, green
, blue
);
1854 void FX_CALL
trap_grChromaRangeModeExt (GrChromakeyMode_t mode
)
1856 #define FN_NAME "grChromaRangeModeExt"
1857 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_CKMODE(mode
));
1858 assert(real_grChromaRangeModeExt
);
1859 (*real_grChromaRangeModeExt
)(mode
);
1863 void FX_CALL
trap_grChromaRangeExt (GrColor_t color
,
1865 GrChromaRangeMode_t match_mode
)
1867 #define FN_NAME "grChromaRangeExt"
1868 TRAP_LOG("%s(%08lx, %08lx, %s)\n", FN_NAME
, color
, range
, TRP_CRMODE(match_mode
));
1869 assert(real_grChromaRangeExt
);
1870 (*real_grChromaRangeExt
)(color
, range
, match_mode
);
1874 void FX_CALL
trap_grTexChromaModeExt (GrChipID_t tmu
,
1875 GrChromakeyMode_t mode
)
1877 #define FN_NAME "grTexChromaModeExt"
1878 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_CKMODE(mode
));
1879 assert(real_grTexChromaModeExt
);
1880 (*real_grTexChromaModeExt
)(tmu
, mode
);
1884 void FX_CALL
trap_grTexChromaRangeExt (GrChipID_t tmu
,
1887 GrTexChromakeyMode_t mode
)
1889 #define FN_NAME "grTexChromaRangeExt"
1890 TRAP_LOG("%s(%s, %08lx, %08lx, %s)\n", FN_NAME
, TRP_TMU(tmu
), min
, max
, TRP_CRMODE(mode
));
1891 assert(real_grTexChromaRangeExt
);
1892 (*real_grTexChromaRangeExt
)(tmu
, min
, max
, mode
);
1897 void FX_CALL
trap_grTexDownloadTableExt (GrChipID_t tmu
,
1901 #define FN_NAME "grTexDownloadTableExt"
1902 TRAP_LOG("%s(%s, %s, %p)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TABLE(type
), data
);
1903 assert(real_grTexDownloadTableExt
);
1904 (*real_grTexDownloadTableExt
)(tmu
, type
, data
);
1908 void FX_CALL
trap_grTexDownloadTablePartialExt (GrChipID_t tmu
,
1914 #define FN_NAME "grTexDownloadTablePartialExt"
1915 TRAP_LOG("%s(%s, %s, %p, %d, %d)\n", FN_NAME
, TRP_TMU(tmu
), TRP_TABLE(type
), data
, start
, end
);
1916 assert(real_grTexDownloadTablePartialExt
);
1917 (*real_grTexDownloadTablePartialExt
)(tmu
, type
, data
, start
, end
);
1921 void FX_CALL
trap_grTexNCCTableExt (GrChipID_t tmu
,
1924 #define FN_NAME "grTexNCCTableExt"
1925 TRAP_LOG("%s(%s, %s)\n", FN_NAME
, TRP_TMU(tmu
), TRP_NCC(table
));
1926 assert(real_grTexNCCTableExt
);
1927 (*real_grTexNCCTableExt
)(tmu
, table
);
1932 void FX_CALL
trap_grTextureBufferExt (GrChipID_t tmu
,
1936 GrAspectRatio_t aspectRatio
,
1937 GrTextureFormat_t format
,
1938 FxU32 odd_even_mask
)
1940 #define FN_NAME "grTextureBufferExt"
1941 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
));
1942 assert(real_grTextureBufferExt
);
1943 (*real_grTextureBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1947 void FX_CALL
trap_grTextureAuxBufferExt (GrChipID_t tmu
,
1951 GrAspectRatio_t aspectRatio
,
1952 GrTextureFormat_t format
,
1953 FxU32 odd_even_mask
)
1955 #define FN_NAME "grTextureAuxBufferExt"
1956 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
));
1957 assert(real_grTextureAuxBufferExt
);
1958 (*real_grTextureAuxBufferExt
)(tmu
, startAddress
, thisLOD
, largeLOD
, aspectRatio
, format
, odd_even_mask
);
1962 void FX_CALL
trap_grAuxBufferExt (GrBuffer_t buffer
)
1964 #define FN_NAME "grAuxBufferExt"
1965 TRAP_LOG("%s(%s)\n", FN_NAME
, TRP_BUFFER(buffer
));
1966 assert(real_grAuxBufferExt
);
1967 (*real_grAuxBufferExt
)(buffer
);
1972 GrContext_t FX_CALL
trap_grSstWinOpenExt (FxU32 hWnd
,
1973 GrScreenResolution_t resolution
,
1974 GrScreenRefresh_t refresh
,
1975 GrColorFormat_t format
,
1976 GrOriginLocation_t origin
,
1977 GrPixelFormat_t pixelformat
,
1981 #define FN_NAME "grSstWinOpenExt"
1983 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
);
1984 assert(real_grSstWinOpenExt
);
1985 rv
= (*real_grSstWinOpenExt
)(hWnd
, resolution
, refresh
, format
, origin
, pixelformat
, nColBuffers
, nAuxBuffers
);
1986 TRAP_LOG(GOT
"%p\n", (void *)rv
);
1991 void FX_CALL
trap_grStencilFuncExt (GrCmpFnc_t fnc
,
1995 #define FN_NAME "grStencilFuncExt"
1996 TRAP_LOG("%s(%s, %02x, %02x)\n", FN_NAME
, TRP_CMPFUNC(fnc
), ref
, mask
);
1997 assert(real_grStencilFuncExt
);
1998 (*real_grStencilFuncExt
)(fnc
, ref
, mask
);
2002 void FX_CALL
trap_grStencilMaskExt (GrStencil_t value
)
2004 #define FN_NAME "grStencilMaskExt"
2005 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
2006 assert(real_grStencilMaskExt
);
2007 (*real_grStencilMaskExt
)(value
);
2011 void FX_CALL
trap_grStencilOpExt (GrStencilOp_t stencil_fail
,
2012 GrStencilOp_t depth_fail
,
2013 GrStencilOp_t depth_pass
)
2015 #define FN_NAME "grStencilOpExt"
2016 TRAP_LOG("%s(%s, %s, %s)\n", FN_NAME
, TRP_STENCILOP(stencil_fail
), TRP_STENCILOP(depth_fail
), TRP_STENCILOP(depth_pass
));
2017 assert(real_grStencilOpExt
);
2018 (*real_grStencilOpExt
)(stencil_fail
, depth_fail
, depth_pass
);
2022 void FX_CALL
trap_grLfbConstantStencilExt (GrStencil_t value
)
2024 #define FN_NAME "grLfbConstantStencilExt"
2025 TRAP_LOG("%s(%02x)\n", FN_NAME
, value
);
2026 assert(real_grLfbConstantStencilExt
);
2027 (*real_grLfbConstantStencilExt
)(value
);
2031 void FX_CALL
trap_grBufferClearExt (GrColor_t color
,
2034 GrStencil_t stencil
)
2036 #define FN_NAME "grBufferClearExt"
2037 TRAP_LOG("%s(%08lx, %02x, %08lx, %02x)\n", FN_NAME
, color
, alpha
, depth
, stencil
);
2038 assert(real_grBufferClearExt
);
2039 (*real_grBufferClearExt
)(color
, alpha
, depth
, stencil
);
2043 void FX_CALL
trap_grColorCombineExt (GrCCUColor_t a
,
2044 GrCombineMode_t a_mode
,
2046 GrCombineMode_t b_mode
,
2054 #define FN_NAME "grColorCombineExt"
2055 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
));
2056 assert(real_grColorCombineExt
);
2057 (*real_grColorCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2061 void FX_CALL
trap_grAlphaCombineExt (GrACUColor_t a
,
2062 GrCombineMode_t a_mode
,
2064 GrCombineMode_t b_mode
,
2072 #define FN_NAME "grAlphaCombineExt"
2073 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
));
2074 assert(real_grAlphaCombineExt
);
2075 (*real_grAlphaCombineExt
)(a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2079 void FX_CALL
trap_grTexColorCombineExt (GrChipID_t tmu
,
2081 GrCombineMode_t a_mode
,
2083 GrCombineMode_t b_mode
,
2091 #define FN_NAME "grTexColorCombineExt"
2092 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
));
2093 assert(real_grTexColorCombineExt
);
2094 (*real_grTexColorCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2098 void FX_CALL
trap_grTexAlphaCombineExt (GrChipID_t tmu
,
2100 GrCombineMode_t a_mode
,
2102 GrCombineMode_t b_mode
,
2110 #define FN_NAME "grTexAlphaCombineExt"
2111 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
));
2112 assert(real_grTexAlphaCombineExt
);
2113 (*real_grTexAlphaCombineExt
)(tmu
, a
, a_mode
, b
, b_mode
, c
, c_invert
, d
, d_invert
, shift
, invert
);
2117 void FX_CALL
trap_grConstantColorValueExt (GrChipID_t tmu
,
2120 #define FN_NAME "grConstantColorValueExt"
2121 TRAP_LOG("%s(%s, %08lx)\n", FN_NAME
, TRP_TMU(tmu
), value
);
2122 assert(real_grConstantColorValueExt
);
2123 (*real_grConstantColorValueExt
)(tmu
, value
);
2127 void FX_CALL
trap_grColorMaskExt (FxBool r
,
2132 #define FN_NAME "grColorMaskExt"
2133 TRAP_LOG("%s(%s, %s, %s, %s)\n", FN_NAME
, TRP_BOOL(r
), TRP_BOOL(g
), TRP_BOOL(b
), TRP_BOOL(a
));
2134 assert(real_grColorMaskExt
);
2135 (*real_grColorMaskExt
)(r
, g
, b
, a
);
2139 void FX_CALL
trap_grAlphaBlendFunctionExt (GrAlphaBlendFnc_t rgb_sf
,
2140 GrAlphaBlendFnc_t rgb_df
,
2141 GrAlphaBlendOp_t rgb_op
,
2142 GrAlphaBlendFnc_t alpha_sf
,
2143 GrAlphaBlendFnc_t alpha_df
,
2144 GrAlphaBlendOp_t alpha_op
)
2146 #define FN_NAME "grAlphaBlendFunctionExt"
2147 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
));
2148 assert(real_grAlphaBlendFunctionExt
);
2149 (*real_grAlphaBlendFunctionExt
)(rgb_sf
, rgb_df
, rgb_op
, alpha_sf
, alpha_df
, alpha_op
);
2153 void FX_CALL
trap_grTBufferWriteMaskExt (FxU32 tmask
)
2155 #define FN_NAME "grTBufferWriteMaskExt"
2156 TRAP_LOG("%s(%08lx)\n", FN_NAME
, tmask
);
2157 assert(real_grTBufferWriteMaskExt
);
2158 (*real_grTBufferWriteMaskExt
)(tmask
);
2165 void FX_CALL
trap_txImgQuantize (char *dst
,
2172 #define FN_NAME "txImgQuantize"
2173 TRAP_LOG("%s(%p, %p, %d, %d, %s, %s)\n", FN_NAME
, dst
, src
, w
, h
, TRP_TEXFMT(format
), TRP_TXDITHER(dither
));
2174 assert(real_txImgQuantize
);
2175 (*real_txImgQuantize
)(dst
, src
, w
, h
, format
, dither
);
2179 void FX_CALL
trap_txMipQuantize (TxMip
*pxMip
,
2185 #define FN_NAME "txMipQuantize"
2186 TRAP_LOG("%s(%p, %p, %s, %s, %s)\n", FN_NAME
, (void *)pxMip
, (void *)txMip
, TRP_TEXFMT(fmt
), TRP_TXDITHER(d
), TRP_TXCOMPRESS(comp
));
2187 assert(real_txMipQuantize
);
2188 (*real_txMipQuantize
)(pxMip
, txMip
, fmt
, d
, comp
);
2192 void FX_CALL
trap_txPalToNcc (GuNccTable
*ncc_table
,
2195 #define FN_NAME "txPalToNcc"
2196 TRAP_LOG("%s(%p, %p)\n", FN_NAME
, (void *)ncc_table
, (void *)pal
);
2197 assert(real_txPalToNcc
);
2198 (*real_txPalToNcc
)(ncc_table
, pal
);
2205 /****************************************************************************\
2206 * housekeeping (fake pointers) *
2207 \****************************************************************************/
2208 char *FX_CALL
fake_grGetRegistryOrEnvironmentStringExt (char *theEntry
)
2210 return getenv(theEntry
);
2213 void FX_CALL
fake_grTexDownloadTableExt (GrChipID_t tmu
,
2218 grTexDownloadTable(type
, data
);
2221 void FX_CALL
fake_grTexDownloadTablePartialExt (GrChipID_t tmu
,
2228 grTexDownloadTablePartial(type
, data
, start
, end
);
2231 void FX_CALL
fake_grTexNCCTableExt (GrChipID_t tmu
,
2235 grTexNCCTable(table
);
2240 /****************************************************************************\
2242 \****************************************************************************/
2243 void tdfx_hook_glide (struct tdfx_glide
*Glide
, int pointcast
)
2245 /* GET_EXT_ADDR: get function pointer
2246 * GET_EXT_FAKE: get function pointer if possible, else use a fake function
2247 * GET_EXT_NULL: get function pointer if possible, else leave NULL pointer
2250 #define GET_EXT_ADDR(name) *(GrProc *)&real_##name = grGetProcAddress(#name), Glide->name = trap_##name
2251 #define GET_EXT_FAKE(name) GET_EXT_ADDR(name); if (real_##name == NULL) real_##name = fake_##name
2252 #define GET_EXT_NULL(name) GET_EXT_ADDR(name); if (real_##name == NULL) Glide->name = NULL
2253 #else /* FX_TRAP_GLIDE */
2254 #define GET_EXT_ADDR(name) *(GrProc *)&Glide->name = grGetProcAddress(#name)
2255 #define GET_EXT_FAKE(name) GET_EXT_ADDR(name); if (Glide->name == NULL) Glide->name = fake_##name
2256 #define GET_EXT_NULL(name) GET_EXT_ADDR(name)
2257 #endif /* FX_TRAP_GLIDE */
2262 GET_EXT_NULL(grSetNumPendingBuffers
);
2263 GET_EXT_FAKE(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
);
2271 GET_EXT_FAKE(grTexDownloadTableExt
);
2272 GET_EXT_FAKE(grTexDownloadTablePartialExt
);
2273 GET_EXT_FAKE(grTexNCCTableExt
);
2275 Glide
->grTexDownloadTableExt
= fake_grTexDownloadTableExt
;
2276 Glide
->grTexDownloadTablePartialExt
= fake_grTexDownloadTablePartialExt
;
2277 Glide
->grTexNCCTableExt
= fake_grTexNCCTableExt
;
2280 GET_EXT_ADDR(grTextureBufferExt
);
2281 GET_EXT_ADDR(grTextureAuxBufferExt
);
2282 GET_EXT_ADDR(grAuxBufferExt
);
2284 GET_EXT_ADDR(grSstWinOpenExt
);
2285 GET_EXT_ADDR(grStencilFuncExt
);
2286 GET_EXT_ADDR(grStencilMaskExt
);
2287 GET_EXT_ADDR(grStencilOpExt
);
2288 GET_EXT_ADDR(grLfbConstantStencilExt
);
2289 GET_EXT_ADDR(grBufferClearExt
);
2290 GET_EXT_ADDR(grColorCombineExt
);
2291 GET_EXT_ADDR(grAlphaCombineExt
);
2292 GET_EXT_ADDR(grTexColorCombineExt
);
2293 GET_EXT_ADDR(grTexAlphaCombineExt
);
2294 GET_EXT_ADDR(grConstantColorValueExt
);
2295 GET_EXT_ADDR(grColorMaskExt
);
2296 GET_EXT_ADDR(grAlphaBlendFunctionExt
);
2297 GET_EXT_ADDR(grTBufferWriteMaskExt
);
2302 GET_EXT_NULL(txImgQuantize
);
2303 GET_EXT_NULL(txMipQuantize
);
2304 GET_EXT_NULL(txPalToNcc
);