98e75f2d |
1 | /* |
2 | ** THIS SOFTWARE IS SUBJECT TO COPYRIGHT PROTECTION AND IS OFFERED ONLY |
3 | ** PURSUANT TO THE 3DFX GLIDE GENERAL PUBLIC LICENSE. THERE IS NO RIGHT |
4 | ** TO USE THE GLIDE TRADEMARK WITHOUT PRIOR WRITTEN PERMISSION OF 3DFX |
5 | ** INTERACTIVE, INC. A COPY OF THIS LICENSE MAY BE OBTAINED FROM THE |
6 | ** DISTRIBUTOR OR BY CONTACTING 3DFX INTERACTIVE INC(info@3dfx.com). |
7 | ** THIS PROGRAM IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER |
8 | ** EXPRESSED OR IMPLIED. SEE THE 3DFX GLIDE GENERAL PUBLIC LICENSE FOR A |
9 | ** FULL TEXT OF THE NON-WARRANTY PROVISIONS. |
10 | ** |
11 | ** USE, DUPLICATION OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT TO |
12 | ** RESTRICTIONS AS SET FORTH IN SUBDIVISION (C)(1)(II) OF THE RIGHTS IN |
13 | ** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 252.227-7013, |
14 | ** AND/OR IN SIMILAR OR SUCCESSOR CLAUSES IN THE FAR, DOD OR NASA FAR |
15 | ** SUPPLEMENT. UNPUBLISHED RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF |
16 | ** THE UNITED STATES. |
17 | ** |
18 | ** COPYRIGHT 3DFX INTERACTIVE, INC. 1999, ALL RIGHTS RESERVED |
19 | */ |
20 | |
21 | /* |
22 | ** H3EXT.H |
23 | ** |
24 | ** The following #defines are relevant when using Glide: |
25 | ** |
26 | ** One of the following "platform constants" must be defined during |
27 | ** compilation: |
28 | ** |
29 | ** __DOS__ Defined for 32-bit DOS applications |
30 | ** __WIN32__ Defined for 32-bit Windows applications |
31 | ** __sparc__ Defined for Sun Solaris/SunOS |
32 | ** __linux__ Defined for Linux applications |
33 | ** __FreeBSD__ Defined for FreeBSD applications |
34 | ** __NetBSD__ Defined for NetBSD applications |
35 | ** __OpenBSD__ Defined for OpenBSD applications |
36 | ** __IRIX__ Defined for SGI Irix applications |
37 | ** |
38 | */ |
39 | #ifndef __H3EXT_H__ |
40 | #define __H3EXT_H__ |
41 | |
42 | #include <3dfx.h> |
43 | #include <glidesys.h> |
44 | #include <sst1vid.h> |
45 | |
46 | #ifdef __cplusplus |
47 | extern "C" { |
48 | #endif |
49 | |
50 | /* |
51 | ** ----------------------------------------------------------------------- |
52 | ** TYPE DEFINITIONS |
53 | ** ----------------------------------------------------------------------- |
54 | */ |
55 | /* |
56 | ** ----------------------------------------------------------------------- |
57 | ** CONSTANTS AND TYPES |
58 | ** ----------------------------------------------------------------------- |
59 | */ |
60 | |
61 | /* |
62 | * gregk 5/3/99 |
63 | * Constants defined for SSTH3_ALPHADITHERMODE registry key |
64 | */ |
65 | |
66 | #define OPTIMAL 1 |
67 | #define SHARPER 2 |
68 | #define SMOOTHER 3 |
69 | |
70 | /* tbext */ |
71 | #define GR_BUFFER_TEXTUREBUFFER_EXT 0x6 |
72 | #define GR_BUFFER_TEXTUREAUXBUFFER_EXT 0x7 |
73 | |
74 | typedef FxU32 GrPixelFormat_t; |
75 | |
76 | #define GR_PIXFMT_I_8 0x0001 |
77 | #define GR_PIXFMT_AI_88 0x0002 |
78 | #define GR_PIXFMT_RGB_565 0x0003 |
79 | #define GR_PIXFMT_ARGB_1555 0x0004 |
80 | #define GR_PIXFMT_ARGB_8888 0x0005 |
81 | #define GR_PIXFMT_AA_2_RGB_565 0x0006 |
82 | #define GR_PIXFMT_AA_2_ARGB_1555 0x0007 |
83 | #define GR_PIXFMT_AA_2_ARGB_8888 0x0008 |
84 | #define GR_PIXFMT_AA_4_RGB_565 0x0009 |
85 | #define GR_PIXFMT_AA_4_ARGB_1555 0x000a |
86 | #define GR_PIXFMT_AA_4_ARGB_8888 0x000b |
87 | #define GR_PIXFMT_AA_8_RGB_565 0x000c /* 8xaa */ |
88 | #define GR_PIXFMT_AA_8_ARGB_1555 0x000d |
89 | #define GR_PIXFMT_AA_8_ARGB_8888 0x000e |
90 | |
91 | |
92 | #define GR_LFBWRITEMODE_Z32 0x0008 |
93 | |
94 | typedef FxU32 GrAAMode_t; |
95 | |
96 | #define GR_AA_NONE 0x0000 |
97 | #define GR_AA_4SAMPLES 0x0001 |
98 | |
99 | typedef FxU8 GrStencil_t; |
100 | |
101 | typedef FxU32 GrStencilOp_t; |
102 | #define GR_STENCILOP_KEEP 0x00 /* keep current value */ |
103 | #define GR_STENCILOP_ZERO 0x01 /* set to zero */ |
104 | #define GR_STENCILOP_REPLACE 0x02 /* replace with reference value */ |
105 | #define GR_STENCILOP_INCR_CLAMP 0x03 /* increment - clamp */ |
106 | #define GR_STENCILOP_DECR_CLAMP 0x04 /* decrement - clamp */ |
107 | #define GR_STENCILOP_INVERT 0x05 /* bitwise inversion */ |
108 | #define GR_STENCILOP_INCR_WRAP 0x06 /* increment - wrap */ |
109 | #define GR_STENCILOP_DECR_WRAP 0x07 /* decrement - wrap */ |
110 | |
111 | #define GR_TEXTURE_UMA_EXT 0x06 |
112 | #define GR_STENCIL_MODE_EXT 0x07 |
113 | #define GR_OPENGL_MODE_EXT 0x08 |
114 | |
115 | typedef FxU32 GrCCUColor_t; |
116 | |
117 | typedef FxU32 GrACUColor_t; |
118 | |
119 | typedef FxU32 GrTCCUColor_t; |
120 | |
121 | typedef FxU32 GrTACUColor_t; |
122 | |
123 | #define GR_CMBX_ZERO 0x00 |
124 | #define GR_CMBX_TEXTURE_ALPHA 0x01 |
125 | #define GR_CMBX_ALOCAL 0x02 |
126 | #define GR_CMBX_AOTHER 0x03 |
127 | #define GR_CMBX_B 0x04 |
128 | #define GR_CMBX_CONSTANT_ALPHA 0x05 |
129 | #define GR_CMBX_CONSTANT_COLOR 0x06 |
130 | #define GR_CMBX_DETAIL_FACTOR 0x07 |
131 | #define GR_CMBX_ITALPHA 0x08 |
132 | #define GR_CMBX_ITRGB 0x09 |
133 | #define GR_CMBX_LOCAL_TEXTURE_ALPHA 0x0a |
134 | #define GR_CMBX_LOCAL_TEXTURE_RGB 0x0b |
135 | #define GR_CMBX_LOD_FRAC 0x0c |
136 | #define GR_CMBX_OTHER_TEXTURE_ALPHA 0x0d |
137 | #define GR_CMBX_OTHER_TEXTURE_RGB 0x0e |
138 | #define GR_CMBX_TEXTURE_RGB 0x0f |
139 | #define GR_CMBX_TMU_CALPHA 0x10 |
140 | #define GR_CMBX_TMU_CCOLOR 0x11 |
141 | |
142 | typedef FxU32 GrCombineMode_t; |
143 | #define GR_FUNC_MODE_ZERO 0x00 |
144 | #define GR_FUNC_MODE_X 0x01 |
145 | #define GR_FUNC_MODE_ONE_MINUS_X 0x02 |
146 | #define GR_FUNC_MODE_NEGATIVE_X 0x03 |
147 | #define GR_FUNC_MODE_X_MINUS_HALF 0x04 |
148 | |
149 | typedef FxU32 GrAlphaBlendOp_t; |
150 | #define GR_BLEND_OP_ADD 0x00 |
151 | #define GR_BLEND_OP_SUB 0x01 |
152 | #define GR_BLEND_OP_REVSUB 0x02 |
153 | |
154 | #define GR_BLEND_SAME_COLOR_EXT 0x08 |
155 | #define GR_BLEND_ONE_MINUS_SAME_COLOR_EXT 0x09 |
156 | |
157 | /* Napalm extensions to GrTextureFormat_t */ |
158 | #define GR_TEXFMT_ARGB_CMP_FXT1 0x11 |
159 | #define GR_TEXFMT_ARGB_8888 0x12 |
160 | #define GR_TEXFMT_YUYV_422 0x13 |
161 | #define GR_TEXFMT_UYVY_422 0x14 |
162 | #define GR_TEXFMT_AYUV_444 0x15 |
163 | #define GR_TEXFMT_ARGB_CMP_DXT1 0x16 |
164 | #define GR_TEXFMT_ARGB_CMP_DXT2 0x17 |
165 | #define GR_TEXFMT_ARGB_CMP_DXT3 0x18 |
166 | #define GR_TEXFMT_ARGB_CMP_DXT4 0x19 |
167 | #define GR_TEXFMT_ARGB_CMP_DXT5 0x1A |
168 | #define GR_TEXTFMT_RGB_888 0xFF |
169 | |
170 | /* Napalm extensions to GrLOD_t */ |
171 | #define GR_LOD_LOG2_2048 0xb |
172 | #define GR_LOD_LOG2_1024 0xa |
173 | #define GR_LOD_LOG2_512 0x9 |
174 | |
175 | /* Napalm extensions to GrTexBaseRange_t */ |
176 | #define GR_TEXBASE_2048 0x7 |
177 | #define GR_TEXBASE_1024 0x6 |
178 | #define GR_TEXBASE_512 0x5 |
179 | #define GR_TEXBASE_256_TO_1 0x4 |
180 | |
181 | #ifdef __cplusplus |
182 | } |
183 | #endif |
184 | |
185 | #include <glideutl.h> |
186 | |
187 | #endif /* __H3EXT_H__ */ |