summaryrefslogtreecommitdiffstats
path: root/public/oak/inc/rx.h
blob: 10f097ad4127f3a36b5e01e257ad9b610b446e88 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
/*

Copyright (c) 1994, 1995, Microsoft Corporation

Module Name:

    rx.h

Abstract:

    Defines and types for 3D DDI Extension Interface.

    If WINDDI.H is to be included, it must be included before this
    file (applies to NT only).

*/

#ifndef _RX_
#define _RX_

#define RX_VERSION_MAJOR    1
#define RX_VERSION_MINOR    0

/* Escape through which all 3D DDI functionality is accessed */

#ifndef RXFUNCS
#define RXFUNCS         3076
#endif

/* 3D DDI command identifiers */

#define RXCMD_ALLOC_TEXTURE             1
#define RXCMD_CREATE_CONTEXT            2
#define RXCMD_DELETE_RESOURCE           3
#define RXCMD_DRAW_PRIM                 4
#define RXCMD_ENABLE_BUFFERS            5
#define RXCMD_FILL_RECT                 6
#define RXCMD_FLUSH                     7
#define RXCMD_GET_INFO                  8
#define RXCMD_LOAD_TEXTURE              9
#define RXCMD_MAP_MEM                   10
#define RXCMD_POLY_DRAW_SPAN            11
#define RXCMD_QUERY_TEXTURE_MEMORY      12
#define RXCMD_READ_RECT                 13
#define RXCMD_SET_STATE                 14
#define RXCMD_SWAP_BUFFERS              15
#define RXCMD_TEXTURE_HEAP              16
#define RXCMD_WRITE_RECT                17


/* 3D DDI structures and type definitions */

typedef LONG LONGFIX;
typedef LONG RXREAL;
typedef HANDLE RXHANDLE;

typedef struct _RXCAPS {
    ULONG miscCaps;
    ULONG rasterCaps;
    ULONG zCmpCaps;
    ULONG srcBlendCaps;
    ULONG dstBlendCaps;
    ULONG alphaCmpCaps;
    ULONG shadeCaps;
    ULONG texCaps;
    ULONG texFilterCaps;
    ULONG texBlendCaps;
    ULONG texMaxWidth;
    ULONG texMaxHeight;
    ULONG texMinWidth;
    ULONG texMinHeight;
    ULONG texMaxBorder;
    ULONG rasterCalcType;
    ULONG fractionalRasterBits;
} RXCAPS;

typedef struct _RXCOLOR {
    UCHAR r;
    UCHAR g;
    UCHAR b;
    UCHAR a;
    UCHAR f;
    UCHAR fr;
    UCHAR fg;
    UCHAR fb;
} RXCOLOR;

typedef struct _RXCOLORREF {
    RXREAL r;
    RXREAL g;
    RXREAL b;
} RXCOLORREF;

typedef struct _RXCOLORREFA {
    RXREAL r;
    RXREAL g;
    RXREAL b;
    RXREAL a;
} RXCOLORREFA;

typedef struct _RXCOLORREFAF {
    RXREAL r;
    RXREAL g;
    RXREAL b;
    RXREAL a;
    RXREAL f;
} RXCOLORREFAF;

typedef struct _RXGLOBALINFO {
    ULONG verMajor;
    ULONG verMinor;
    ULONG verDriver;
    UCHAR idStr[200];
} RXGLOBALINFO;

typedef struct _RXHDR {
    ULONG flags;
    RXHANDLE hrxRC;
    RXHANDLE hrxSharedMem;
    VOID *pSharedMem;
    ULONG sharedMemSize;
    ULONG reserved1;
    ULONG reserved2;
    ULONG reserved3;
} RXHDR;

/* Only NT defines WNDOBJ, and it does it in WINDDI.H, which 3D DDI
   clients will not include, so compile this structure only if
   WINDDI.H has been included */
#if defined(_WINDDI_)

typedef struct _RXHDR_NTPRIVATE {
    WNDOBJ *pwo;
    VOID *pBuffer;
    ULONG bufferSize;
} RXHDR_NTPRIVATE;

#endif

typedef struct _RXLINEPAT {
    USHORT repFactor;
    USHORT linePattern;
} RXLINEPAT;

typedef struct _RXPOINT {
    RXREAL x;
    RXREAL y;
} RXPOINT;

typedef struct _RXPOINTINT {
    LONG x;
    LONG y;
} RXPOINTINT;

typedef struct _RXPOINTZ {
    RXREAL x;
    RXREAL y;
    ULONG z;
} RXPOINTZ;

typedef struct _RXPOINTZTEX {
    RXREAL x;
    RXREAL y;
    ULONG z;
    RXREAL w;
    RXREAL s;
    RXREAL t;
} RXPOINTZTEX;

typedef struct _RXRECT {
    LONG x;
    LONG y;
    ULONG width;
    ULONG height;
} RXRECT;

typedef struct _RXSHAREMEM {
    ULONG sourceProcessID;
    HANDLE hSource;
    ULONG offset;
    ULONG size;
    ULONG clientBaseAddress;
} RXSHAREMEM;

typedef struct _RXSPAN {
    SHORT x;
    SHORT y;
    USHORT flags;
    USHORT count;
} RXSPAN;

typedef struct _RXSTIPPLE {
    ULONG stipple[32];
} RXSTIPPLE;

typedef struct _RXSURFACEINFO {
    ULONG flags;
    ULONG colorBytesPerPixel;
    ULONG rDepth;
    ULONG gDepth;
    ULONG bDepth;
    ULONG aDepth;
    ULONG rBitShift;
    ULONG gBitShift;
    ULONG bBitShift;
    ULONG aBitShift;
    ULONG colorPitch;
    ULONG zDepth;
    ULONG zBytesPerPixel;
    ULONG zBitShift;
    ULONG zPitch;
    ULONG ditherPaletteOrigin;
    ULONG totalTextureMemory;
    ULONG perTextureTexmemOverhead;
    ULONG perMipmapTexmemOverhead;
} RXSURFACEINFO;

typedef struct _RXTEX {
    RXREAL w;
    RXREAL s;
    RXREAL t;
} RXTEX;

typedef struct _RXTEXMEMSTATS {
    ULONG totalSystemTextureMemory;
    ULONG freeSystemTextureMemory;
    ULONG totalHeapTextureMemory;
    ULONG freeHeapTextureMemory;
} RXTEXMEMSTATS;

typedef struct _RXTEXTURE {
    ULONG driverPrivate;
    ULONG deviceFormatSize;
    ULONG width;
    ULONG height;
    ULONG border;
    ULONG texelFormat;
    ULONG texels[1];
} RXTEXTURE;

typedef struct _RXZTEX {
    ULONG z;
    RXREAL w;
    RXREAL s;
    RXREAL t;
} RXZTEX;

/* 3D DDI command structures */

typedef struct _RXALLOCTEXTURE {
    ULONG command;
    ULONG flags;
    RXHANDLE hrxTextureHeap;
    ULONG numTextures;
    RXHANDLE hrxSharedMem;
} RXALLOCTEXTURE;

typedef struct _RXCREATECONTEXT {
    ULONG command;
    ULONG hwnd;
    ULONG flags;
} RXCREATECONTEXT;

typedef struct _RXDELETERESOURCE {
    ULONG command;
    RXHANDLE hrxResource;
} RXDELETERESOURCE;

typedef struct _RXDRAWPRIM {
    ULONG command;
    ULONG primType;
    ULONG numVertices;
    RXHANDLE hrxSharedMemVertexData;
    RXHANDLE hrxSharedMemVertexPtr;
    VOID *pSharedMem;
} RXDRAWPRIM;

typedef struct _RXENABLEBUFFERS {
    ULONG command;
    ULONG buffers;
} RXENABLEBUFFERS;

typedef struct _RXFILLRECT {
    ULONG command;
    ULONG fillType;
    RXRECT fillRect;
} RXFILLRECT;

typedef struct _RXGETINFO {
    ULONG command;
    ULONG infoType;
    ULONG flags;
    ULONG height;
    ULONG width;
    ULONG bitsPerPixel;
    ULONG refreshRate;
} RXGETINFO;

typedef struct _RXLOADTEXTURE {
    ULONG command;
    ULONG numTextures;
    ULONG numColorComponents;
    ULONG flags;
    RXHANDLE hrxTextureMem;
    RXHANDLE hrxSharedMem;
} RXLOADTEXTURE;

typedef struct _RXMAPMEM {
    ULONG command;
    ULONG action;
    RXHANDLE hrxSharedMem;
    RXSHAREMEM shareMem;
} RXMAPMEM;

typedef struct _RXPOLYDRAWSPAN {
    ULONG command;
    ULONG numSpans;
    RXHANDLE hrxSharedMem;
    VOID *pSharedMem;
} RXPOLYDRAWSPAN;

typedef struct _RXQUERYTEXTUREMEMORY {
    ULONG command;
    RXHANDLE hrxTextureHeap;
} RXQUERYTEXTUREMEMORY;

typedef struct _RXREADRECT {
    ULONG command;
    ULONG sourceX;
    ULONG sourceY;
    RXRECT destRect;
    ULONG sourceBuffer;
    RXHANDLE hrxSharedMem;
    VOID *pSharedMem;
    LONG sharedPitch;
} RXREADRECT;

typedef struct _RXSETSTATE {
    ULONG command;
    ULONG stateToChange;
    ULONG newState[1];
} RXSETSTATE;

typedef struct _RXSWAPBUFFERS {
    ULONG command;
    ULONG flags;
} RXSWAPBUFFERS;

typedef struct _RXTEXTUREHEAP {
    ULONG command;
    ULONG action;
    ULONG size;
    RXHANDLE hrxTextureHeap;
} RXTEXTUREHEAP;

typedef struct _RXWRITERECT {
    ULONG command;
    ULONG sourceX;
    ULONG sourceY;
    RXRECT destRect;
    ULONG destBuffer;
    RXHANDLE hrxSharedMem;
    VOID *pSharedMem;
    LONG sharedPitch;
} RXWRITERECT;

/* Basic 3D DDI command header. There is an
   extended version of this structure for
   each 3D DDI command */

typedef struct _RXCMD {
    ULONG command;
} RXCMD;


/* RXHDR flags */

#define RX_FL_CREATE_CONTEXT    0x0001
#define RX_FL_MAP_MEM           0x0002
#define RX_NO_CLIPPING_NEEDED   0x0004

#define RX_FRONT_LEFT   0x0001
#define RX_BACK_LEFT    0x0002

#define RX_READ_RECT_FRONT_LEFT 1
#define RX_READ_RECT_BACK_LEFT  2
#define RX_READ_RECT_Z          3

#define RX_WRITE_RECT_PIX   1
#define RX_WRITE_RECT_Z     2

#define RX_FLAT         1
#define RX_SMOOTH       2
#define RX_SOLID        3

#define RX_SPAN_HORIZONTAL  1
#define RX_SPAN_VERTICAL    2

/* flags in RXCMD_CREATE_CONTEXT */

#define RX_FLOAT_COORDS     0x0001
#define RX_COLOR_INDEXED    0x0002

/* RX_ENABLE_BUFFERS flags */

#define RX_ENABLE_Z_BUFFER          0x0001
#define RX_ENABLE_BACK_LEFT_BUFFER  0x0100

#define RX_CLEAR_ON_SWAP        0x0001

/* stateToChange in RXCMD_SET_STATE */

#define RX_LINE_PATTERN         1
#define RX_STIPPLE_PATTERN      2
#define RX_ROP2                 3
#define RX_SPAN_TYPE            4
#define RX_ACTIVE_BUFFER        5
#define RX_PLANE_MASK           6
#define RX_Z_WRITE_ENABLE       7
#define RX_Z_ENABLE             8
#define RX_ALPHA_TEST_ENABLE    9
#define RX_LAST_PIXEL           10
#define RX_TEX_MAG              11
#define RX_TEX_MIN              12
#define RX_SRC_BLEND            13
#define RX_DST_BLEND            14
#define RX_TEX_MAP_BLEND        15
#define RX_CULL_MODE            16
#define RX_SPAN_DIRECTION       17
#define RX_Z_FUNC               18
#define RX_ALPHA_REF            19
#define RX_ALPHA_FUNC           20
#define RX_DITHER_ENABLE        21
#define RX_BLEND_ENABLE         22
#define RX_TEXTURE              23
#define RX_FILL_COLOR           24
#define RX_FILL_Z               25
#define RX_SOLID_COLOR          26
#define RX_SCISSORS_ENABLE      27
#define RX_SCISSORS_RECT        28
#define RX_MASK_START           29
#define RX_SHADE_MODE           30
#define RX_VERTEX_TYPE          31
#define RX_TEXTURE_PERSPECTIVE  32
#define RX_TEX_TRANSP_ENABLE    33
#define RX_TEX_TRANSP_COLOR     34
#define RX_DITHER_ORIGIN        35
#define RX_FOG_MODE             36
#define RX_FOG_COLOR            37
#define RX_VERTEX_COLOR_TYPE    38
#define RX_SPAN_COLOR_TYPE      39
#define RX_PRIMLIST_SKIP        40
#define RX_PRIMSTRIP_SKIP       41

#define RX_FILL_RECT_COLOR      0x0001
#define RX_FILL_RECT_Z          0x0002

/* RX_FOG_MODE settings */

#define RX_FOG_DISABLE  0x0001
#define RX_FOG_NORMAL   0x0002
#define RX_FOG_CONSTANT 0x0004

/* Comparison functions.  Test passes if new pixel value meets the */
/* specified condition with the current pixel value. */

#define RX_CMP_NEVER        0x0001
#define RX_CMP_LESS         0x0002
#define RX_CMP_EQUAL        0x0004
#define RX_CMP_LEQUAL       0x0008
#define RX_CMP_GREATER      0x0010
#define RX_CMP_NOTEQUAL     0x0020
#define RX_CMP_GEQUAL       0x0040
#define RX_CMP_ALWAYS       0x0080
#define RX_CMP_ALLGL        0x00ff

/* RXCAPS miscCaps */

#define RX_MASK_MSB                 0x0001
#define RX_MASK_LSB                 0x0002
#define RX_MASK_PLANES              0x0004
#define RX_MASK_Z                   0x0008
#define RX_LINE_PATTERN_REP         0x0010
#define RX_CULL                     0x0020
#define RX_HORIZONTAL_SPANS         0x0040
#define RX_VERTICAL_SPANS           0x0080

/* Blending flags */

#define RX_BLEND_ZERO                0x0001
#define RX_BLEND_ONE                 0x0002
#define RX_BLEND_SRC_COLOR           0x0004
#define RX_BLEND_INV_SRC_COLOR       0x0008
#define RX_BLEND_SRC_ALPHA           0x0010
#define RX_BLEND_INV_SRC_ALPHA       0x0020
#define RX_BLEND_DST_ALPHA           0x0040
#define RX_BLEND_INV_DST_ALPHA       0x0080
#define RX_BLEND_DST_COLOR           0x0100
#define RX_BLEND_INV_DST_COLOR       0x0200
#define RX_BLEND_SRC_ALPHA_SAT       0x0400
#define RX_BLEND_BOTH_SRC_ALPHA      0x0800
#define RX_BLEND_BOTH_INV_SRC_ALPHA  0x1000
#define RX_BLEND_ALLGL               0x07ff

/* RXCAPS shadeCaps */

#define RX_SHADE_SMOOTH         0x0001
#define RX_FLAT_ALPHA           0x0002
#define RX_SMOOTH_ALPHA         0x0004
#define RX_SOLID_ALPHA          0x0008
#define RX_NORMAL_FOG           0x0010
#define RX_CONSTANT_FOG         0x0020

/* RXCAPS texCaps */

#define RX_TEX_PERSPECTIVE      0x0001
#define RX_TEX_POW2             0x0002
#define RX_TEX_ALPHA            0x0004
#define RX_TEX_TRANSPARENCY     0x0008
#define RX_TEX_BORDER           0x0010
#define RX_TEX_8888             0x0020
#define RX_TEX_4444             0x0040
#define RX_TEX_1555             0x0080
#define RX_TEX_0565             0x0100
#define RX_TEX_0332             0x0200

/* Texture-mapping flags */

#define RX_TEX_NEAREST              0x0001
#define RX_TEX_LINEAR               0x0002
#define RX_TEX_MIP_NEAREST          0x0004
#define RX_TEX_MIP_LINEAR           0x0008
#define RX_TEX_LINEAR_MIP_NEAREST   0x0010
#define RX_TEX_LINEAR_MIP_LINEAR    0x0020

/* Texture blending flags */

#define RX_TEX_DECAL            0x0001
#define RX_TEX_MODULATE         0x0002
#define RX_TEX_DECAL_ALPHA      0x0004
#define RX_TEX_MODULATE_ALPHA   0x0008
#define RX_TEX_DECAL_MASK       0x0010
#define RX_TEX_MODULATE_MASK    0x0020

/* RXCAPS rasterCalcType values */

#define RX_RASTER_FIXED         1
#define RX_RASTER_ERROR_TERM    2
#define RX_RASTER_OTHER         3

/* RX_TEX_MAP_BLEND state values */

#define RX_TEX_MAP_DECAL            1
#define RX_TEX_MAP_MODULATE         2
#define RX_TEX_MAP_DECAL_ALPHA      3
#define RX_TEX_MAP_MODULATE_ALPHA   4
#define RX_TEX_MAP_DECAL_MASK       5
#define RX_TEX_MAP_MODULATE_MASK    6

/* RXCAPS rasterCaps flags */

#define RX_RASTER_DITHER            0x0001
#define RX_RASTER_ROP2              0x0002
#define RX_RASTER_XOR               0x0004
#define RX_RASTER_PAT               0x0008
#define RX_RASTER_SUBPIXEL          0x0010

/* flags in RXSURFACEINFO */

#define RX_SWAP_PRESERVE_BACK       0x0001
#define RX_BACK_BUFFER              0x0002
#define RX_MULTIBUFFER_WRITE        0x0004
#define RX_SWAP_AND_CLEAR           0x0008
#define RX_LINEAR_TEXMEM            0x0010
#define RX_LINEAR_PLUS_K_TEXMEM     0x0020
#define RX_LINEAR_MIPMEM            0x0040
#define RX_LINEAR_PLUS_K_MIPMEM     0x0080
#define RX_LINEAR_DWORD_PER_SCAN    0x0100
#define RX_FLOAT_VALUES             0x0200
#define RX_VERTEX_COLOR_RXREALS     0x0400

/* RX_SPAN_TYPE state values */

#define RX_SPAN_COLOR       1
#define RX_SPAN_COLOR_Z     2
#define RX_SPAN_COLOR_Z_TEX 3

/* RX_CULL_MODE state values */

#define RX_CULL_NONE    1
#define RX_CULL_CW      2
#define RX_CULL_CCW     3

/* flags in RXSPAN */

#define RX_SPAN_DELTA       0x0001
#define RX_SPAN_MASK        0x0002

/* flags for driverPrivate field in RXTEXTURE */

#define RX_DONT_SET_DEVICE_FORMAT   0x0000
#define RX_SET_DEVICE_FORMAT        0x0001
#define RX_IN_DEVICE_FORMAT         0x0002
#define RX_PRIVATE_DEVICE_FORMAT    (~0x0003)

/* flags in RXGETINFO */

#define RX_QUERY_CURRENT_MODE   0x0001
#define RX_MATCH_REFRESH        0x0002
#define RX_GET_INFO_COLOR_INDEX 0x0004
#define RX_FULLSCREEN_INFO      0x0008

/* RXCMD_GET_INFO return values */

#define RX_GET_INFO_INVALID_MODE        1
#define RX_GET_INFO_CI_NOT_SUPPORTED    2
#define RX_GET_INFO_RGBA_NOT_SUPPORTED  3
#define RX_GET_INFO_CAP_NOT_SUPPORTED   4

/* RXMAPMEM action field values */

#define RX_CREATE_MEM_MAP               1
#define RX_DELETE_MEM_MAP               2

/* RXLOADTEXTURE flag values */

#define RX_COMPRESS_LOSSY       1

/* RXTEXTUREHEAP action field values */

#define RX_CREATE_TEXTURE_HEAP  1
#define RX_DELETE_TEXTURE_HEAP  2
#define RX_CLEAR_TEXTURE_HEAP   3

/* Primitive types for RXDRAWPRIM */

#define RX_PRIM_LINESTRIP       1
#define RX_PRIM_TRISTRIP        2
#define RX_PRIM_QUADSTRIP       3
#define RX_PRIM_LINELIST        4
#define RX_PRIM_TRILIST         5
#define RX_PRIM_QUADLIST        6
#define RX_PRIM_INTLINESTRIP    7

/* RX_VERTEX_TYPE state values */

#define RX_POINT            1
#define RX_POINTZ           2
#define RX_POINTZTEX        3

/* RX_SPAN_COLOR_TYPE state values */

#define RX_SPAN_COLOR_RGB   1
#define RX_SPAN_COLOR_RGBA  2
#define RX_SPAN_COLOR_RGBAF 3

/* RX_VERTEX_COLOR_TYPE state values */

#define RX_VERTEX_COLOR_PACKED  1
#define RX_VERTEX_COLOR_NONE    2
#define RX_VERTEX_COLOR_RGB     3
#define RX_VERTEX_COLOR_RGBA    4
#define RX_VERTEX_COLOR_RGBAF   5

/* Texture formats */

#define RX_TEXTURE_8888     1
#define RX_TEXTURE_4444     2
#define RX_TEXTURE_1555     3
#define RX_TEXTURE_0565     4
#define RX_TEXTURE_0332     5

/* RXGETINFO infoType field values */

#define RX_INFO_GLOBAL_CAPS     1
#define RX_INFO_SURFACE_CAPS    2
#define RX_INFO_SPAN_CAPS       3
#define RX_INFO_LINE_CAPS       4
#define RX_INFO_TRIANGLE_CAPS   5
#define RX_INFO_QUAD_CAPS       6
#define RX_INFO_INTLINE_CAPS    7

#endif  //  _RX_