1 #pragma once
2 #include <wiiu/types.h>
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 typedef enum GX2AAMode
9 {
10    GX2_AA_MODE1X                          = 0,
11    GX2_AA_MODE2X                          = 1,
12    GX2_AA_MODE4X                          = 2
13 } GX2AAMode;
14 
15 typedef enum GX2AlphaToMaskMode
16 {
17    GX2_ALPHA_TO_MASK_MODE_NON_DITHERED    = 0,
18    GX2_ALPHA_TO_MASK_MODE_DITHER_0        = 1,
19    GX2_ALPHA_TO_MASK_MODE_DITHER_90       = 2,
20    GX2_ALPHA_TO_MASK_MODE_DITHER_180      = 3,
21    GX2_ALPHA_TO_MASK_MODE_DITHER_270      = 4,
22 } GX2AlphaToMaskMode;
23 
24 typedef enum GX2AttribFormat
25 {
26    GX2_ATTRIB_FORMAT_UNORM_8              = 0x0,
27    GX2_ATTRIB_FORMAT_UNORM_8_8            = 0x04,
28    GX2_ATTRIB_FORMAT_UNORM_8_8_8_8        = 0x0A,
29 
30    GX2_ATTRIB_FORMAT_UINT_8               = 0x100,
31    GX2_ATTRIB_FORMAT_UINT_8_8             = 0x104,
32    GX2_ATTRIB_FORMAT_UINT_8_8_8_8         = 0x10A,
33 
34    GX2_ATTRIB_FORMAT_SNORM_8              = 0x200,
35    GX2_ATTRIB_FORMAT_SNORM_8_8            = 0x204,
36    GX2_ATTRIB_FORMAT_SNORM_8_8_8_8        = 0x20A,
37 
38    GX2_ATTRIB_FORMAT_SINT_8               = 0x300,
39    GX2_ATTRIB_FORMAT_SINT_8_8             = 0x304,
40    GX2_ATTRIB_FORMAT_SINT_8_8_8_8         = 0x30A,
41 
42    GX2_ATTRIB_FORMAT_FLOAT_32             = 0x806,
43    GX2_ATTRIB_FORMAT_FLOAT_32_32          = 0x80d,
44    GX2_ATTRIB_FORMAT_FLOAT_32_32_32       = 0x811,
45    GX2_ATTRIB_FORMAT_FLOAT_32_32_32_32    = 0x813,
46 } GX2AttribFormat;
47 
48 typedef enum GX2AttribIndexType
49 {
50    GX2_ATTRIB_INDEX_PER_VERTEX            = 0,
51    GX2_ATTRIB_INDEX_PER_INSTANCE          = 1,
52 } GX2AttribIndexType;
53 
54 typedef enum GX2BlendMode
55 {
56    GX2_BLEND_MODE_ZERO                    = 0,
57    GX2_BLEND_MODE_ONE                     = 1,
58    GX2_BLEND_MODE_SRC_COLOR               = 2,
59    GX2_BLEND_MODE_INV_SRC_COLOR           = 3,
60    GX2_BLEND_MODE_SRC_ALPHA               = 4,
61    GX2_BLEND_MODE_INV_SRC_ALPHA           = 5,
62    GX2_BLEND_MODE_DST_ALPHA               = 6,
63    GX2_BLEND_MODE_INV_DST_ALPHA           = 7,
64    GX2_BLEND_MODE_DST_COLOR               = 8,
65    GX2_BLEND_MODE_INV_DST_COLOR           = 9,
66    GX2_BLEND_MODE_SRC_ALPHA_SAT           = 10,
67    GX2_BLEND_MODE_BOTH_SRC_ALPHA          = 11,
68    GX2_BLEND_MODE_BOTH_INV_SRC_ALPHA      = 12,
69    GX2_BLEND_MODE_BLEND_FACTOR            = 13,
70    GX2_BLEND_MODE_INV_BLEND_FACTOR        = 14,
71    GX2_BLEND_MODE_SRC1_COLOR              = 15,
72    GX2_BLEND_MODE_INV_SRC1_COLOR          = 16,
73    GX2_BLEND_MODE_SRC1_ALPHA              = 17,
74    GX2_BLEND_MODE_INV_SRC1_ALPHA          = 18,
75    GX2_BLEND_MODE_BLEND_ALPHA             = 19,
76    GX2_BLEND_MODE_INV_BLEND_ALPHA         = 20,
77 } GX2BlendMode;
78 
79 typedef enum GX2BlendCombineMode
80 {
81    GX2_BLEND_COMBINE_MODE_ADD             = 0,
82    GX2_BLEND_COMBINE_MODE_SUB             = 1,
83    GX2_BLEND_COMBINE_MODE_MIN             = 2,
84    GX2_BLEND_COMBINE_MODE_MAX             = 3,
85    GX2_BLEND_COMBINE_MODE_REV_SUB         = 4,
86 } GX2BlendCombineMode;
87 
88 typedef enum GX2BufferingMode
89 {
90    GX2_BUFFERING_MODE_SINGLE              = 1,
91    GX2_BUFFERING_MODE_DOUBLE              = 2,
92    GX2_BUFFERING_MODE_TRIPLE              = 3,
93 } GX2BufferingMode;
94 
95 typedef enum GX2ChannelMask
96 {
97    GX2_CHANNEL_MASK_R                     = 1,
98    GX2_CHANNEL_MASK_G                     = 2,
99    GX2_CHANNEL_MASK_RG                    = 3,
100    GX2_CHANNEL_MASK_B                     = 4,
101    GX2_CHANNEL_MASK_RB                    = 5,
102    GX2_CHANNEL_MASK_GB                    = 6,
103    GX2_CHANNEL_MASK_RGB                   = 7,
104    GX2_CHANNEL_MASK_A                     = 8,
105    GX2_CHANNEL_MASK_RA                    = 9,
106    GX2_CHANNEL_MASK_GA                    = 10,
107    GX2_CHANNEL_MASK_RGA                   = 11,
108    GX2_CHANNEL_MASK_BA                    = 12,
109    GX2_CHANNEL_MASK_RBA                   = 13,
110    GX2_CHANNEL_MASK_GBA                   = 14,
111    GX2_CHANNEL_MASK_RGBA                  = 15,
112 } GX2ChannelMask;
113 
114 typedef enum GX2ClearFlags
115 {
116    GX2_CLEAR_FLAGS_DEPTH                  = 1,
117    GX2_CLEAR_FLAGS_STENCIL                = 2,
118    GX2_CLEAR_FLAGS_BOTH                   = (GX2_CLEAR_FLAGS_DEPTH | GX2_CLEAR_FLAGS_STENCIL),
119 } GX2ClearFlags;
120 
121 typedef enum GX2CompareFunction
122 {
123    GX2_COMPARE_FUNC_NEVER                 = 0,
124    GX2_COMPARE_FUNC_LESS                  = 1,
125    GX2_COMPARE_FUNC_EQUAL                 = 2,
126    GX2_COMPARE_FUNC_LEQUAL                = 3,
127    GX2_COMPARE_FUNC_GREATER               = 4,
128    GX2_COMPARE_FUNC_NOT_EQUAL             = 5,
129    GX2_COMPARE_FUNC_GEQUAL                = 6,
130    GX2_COMPARE_FUNC_ALWAYS                = 7,
131 } GX2CompareFunction;
132 
133 typedef enum GX2DrcRenderMode
134 {
135    GX2_DRC_RENDER_MODE_DISABLED           = 0,
136    GX2_DRC_RENDER_MODE_SINGLE             = 1,
137 } GX2DrcRenderMode;
138 
139 typedef enum GX2EventType
140 {
141    GX2_EVENT_TYPE_VSYNC                   = 2,
142    GX2_EVENT_TYPE_FLIP                    = 3,
143    GX2_EVENT_TYPE_DISPLAY_LIST_OVERRUN    = 4,
144 } GX2EventType;
145 
146 typedef enum GX2EndianSwapMode
147 {
148    GX2_ENDIAN_SWAP_NONE                   = 0,
149    GX2_ENDIAN_SWAP_8_IN_16                = 1,
150    GX2_ENDIAN_SWAP_8_IN_32                = 2,
151    GX2_ENDIAN_SWAP_DEFAULT                = 3,
152 } GX2EndianSwapMode;
153 
154 typedef enum GX2FetchShaderType
155 {
156    GX2_FETCH_SHADER_TESSELLATION_NONE     = 0,
157    GX2_FETCH_SHADER_TESSELLATION_LINE     = 1,
158    GX2_FETCH_SHADER_TESSELLATION_TRIANGLE = 2,
159    GX2_FETCH_SHADER_TESSELLATION_QUAD     = 3,
160 } GX2FetchShaderType;
161 
162 typedef enum GX2FrontFace
163 {
164   GX2_FRONT_FACE_CCW                      = 0,
165   GX2_FRONT_FACE_CW                       = 1,
166 } GX2FrontFace;
167 
168 typedef enum GX2IndexType
169 {
170    GX2_INDEX_TYPE_U16_LE                  = 0,
171    GX2_INDEX_TYPE_U32_LE                  = 1,
172    GX2_INDEX_TYPE_U16                     = 4,
173    GX2_INDEX_TYPE_U32                     = 9,
174 } GX2IndexType;
175 
176 typedef enum GX2InvalidateMode
177 {
178    GX2_INVALIDATE_MODE_ATTRIBUTE_BUFFER     = 1 << 0,
179    GX2_INVALIDATE_MODE_TEXTURE              = 1 << 1,
180    GX2_INVALIDATE_MODE_UNIFORM_BLOCK        = 1 << 2,
181    GX2_INVALIDATE_MODE_SHADER               = 1 << 3,
182    GX2_INVALIDATE_MODE_COLOR_BUFFER         = 1 << 4,
183    GX2_INVALIDATE_MODE_DEPTH_BUFFER         = 1 << 5,
184    GX2_INVALIDATE_MODE_CPU                  = 1 << 6,
185    GX2_INVALIDATE_MODE_STREAM_OUT_BUFFER    = 1 << 7,
186    GX2_INVALIDATE_MODE_EXPORT_BUFFER        = 1 << 8,
187    GX2_INVALIDATE_MODE_CPU_ATTRIBUTE_BUFFER = GX2_INVALIDATE_MODE_CPU | GX2_INVALIDATE_MODE_ATTRIBUTE_BUFFER,
188    GX2_INVALIDATE_MODE_CPU_TEXTURE          = GX2_INVALIDATE_MODE_CPU | GX2_INVALIDATE_MODE_TEXTURE,
189    GX2_INVALIDATE_MODE_CPU_UNIFORM_BLOCK    = GX2_INVALIDATE_MODE_CPU | GX2_INVALIDATE_MODE_UNIFORM_BLOCK,
190    GX2_INVALIDATE_MODE_CPU_SHADER           = GX2_INVALIDATE_MODE_CPU | GX2_INVALIDATE_MODE_SHADER,
191 } GX2InvalidateMode;
192 
193 typedef enum GX2InitAttributes
194 {
195    GX2_INIT_END                           = 0,
196    GX2_INIT_CMD_BUF_BASE                  = 1,
197    GX2_INIT_CMD_BUF_POOL_SIZE             = 2,
198    GX2_INIT_ARGC                          = 7,
199    GX2_INIT_ARGV                          = 8,
200 } GX2InitAttributes;
201 
202 typedef enum GX2LogicOp
203 {
204    GX2_LOGIC_OP_CLEAR                     = 0x00,
205    GX2_LOGIC_OP_NOR                       = 0x11,
206    GX2_LOGIC_OP_INV_AND                   = 0x22,
207    GX2_LOGIC_OP_INV_COPY                  = 0x33,
208    GX2_LOGIC_OP_REV_AND                   = 0x44,
209    GX2_LOGIC_OP_INV                       = 0x55,
210    GX2_LOGIC_OP_XOR                       = 0x66,
211    GX2_LOGIC_OP_NOT_AND                   = 0x77,
212    GX2_LOGIC_OP_AND                       = 0x88,
213    GX2_LOGIC_OP_EQUIV                     = 0x99,
214    GX2_LOGIC_OP_NOP                       = 0xAA,
215    GX2_LOGIC_OP_INV_OR                    = 0xBB,
216    GX2_LOGIC_OP_COPY                      = 0xCC,
217    GX2_LOGIC_OP_REV_OR                    = 0xDD,
218    GX2_LOGIC_OP_OR                        = 0xEE,
219    GX2_LOGIC_OP_SET                       = 0xFF,
220 } GX2LogicOp;
221 
222 typedef enum GX2PrimitiveMode
223 {
224    GX2_PRIMITIVE_MODE_POINTS              = 1,
225    GX2_PRIMITIVE_MODE_LINES               = 2,
226    GX2_PRIMITIVE_MODE_LINE_STRIP          = 3,
227    GX2_PRIMITIVE_MODE_TRIANGLES           = 4,
228    GX2_PRIMITIVE_MODE_TRIANGLE_FAN        = 5,
229    GX2_PRIMITIVE_MODE_TRIANGLE_STRIP      = 6,
230    GX2_PRIMITIVE_MODE_QUADS               = 19,
231    GX2_PRIMITIVE_MODE_QUAD_STRIP          = 20,
232 } GX2PrimitiveMode;
233 
234 typedef enum GX2PolygonMode
235 {
236    GX2_POLYGON_MODE_POINT                 = 0,
237    GX2_POLYGON_MODE_LINE                  = 1,
238    GX2_POLYGON_MODE_TRIANGLE              = 2,
239 } GX2PolygonMode;
240 
241 typedef enum GX2RenderTarget
242 {
243    GX2_RENDER_TARGET_0                    = 0,
244    GX2_RENDER_TARGET_1                    = 1,
245    GX2_RENDER_TARGET_2                    = 2,
246    GX2_RENDER_TARGET_3                    = 3,
247    GX2_RENDER_TARGET_4                    = 4,
248    GX2_RENDER_TARGET_5                    = 5,
249    GX2_RENDER_TARGET_6                    = 6,
250 } GX2RenderTarget;
251 
252 typedef enum GX2RoundingMode
253 {
254    GX2_ROUNDING_MODE_ROUND_TO_EVEN        = 0,
255    GX2_ROUNDING_MODE_TRUNCATE             = 1,
256 } GX2RoundingMode;
257 
258 typedef enum GX2SamplerVarType
259 {
260    GX2_SAMPLER_VAR_TYPE_SAMPLER_1D        = 0,
261    GX2_SAMPLER_VAR_TYPE_SAMPLER_2D        = 1,
262    GX2_SAMPLER_VAR_TYPE_SAMPLER_3D        = 3,
263    GX2_SAMPLER_VAR_TYPE_SAMPLER_CUBE      = 4,
264 } GX2SamplerVarType;
265 
266 typedef enum GX2ScanTarget
267 {
268    GX2_SCAN_TARGET_TV                     = 1,
269    GX2_SCAN_TARGET_DRC                    = 4,
270 } GX2ScanTarget;
271 
272 typedef enum GX2ShaderMode
273 {
274    GX2_SHADER_MODE_UNIFORM_REGISTER       = 0,
275    GX2_SHADER_MODE_UNIFORM_BLOCK          = 1,
276    GX2_SHADER_MODE_GEOMETRY_SHADER        = 2,
277    GX2_SHADER_MODE_COMPUTE_SHADER         = 3,
278 } GX2ShaderMode;
279 
280 typedef enum GX2ShaderVarType
281 {
282    GX2_SHADER_VAR_TYPE_INT                = 2,
283    GX2_SHADER_VAR_TYPE_FLOAT              = 4,
284    GX2_SHADER_VAR_TYPE_FLOAT2             = 9,
285    GX2_SHADER_VAR_TYPE_FLOAT3             = 10,
286    GX2_SHADER_VAR_TYPE_FLOAT4             = 11,
287    GX2_SHADER_VAR_TYPE_INT2               = 15,
288    GX2_SHADER_VAR_TYPE_INT3               = 16,
289    GX2_SHADER_VAR_TYPE_INT4               = 17,
290    GX2_SHADER_VAR_TYPE_MATRIX4X4          = 29,
291 } GX2ShaderVarType;
292 
293 typedef enum GX2StencilFunction
294 {
295    GX2_STENCIL_FUNCTION_KEEP              = 0,
296    GX2_STENCIL_FUNCTION_ZERO              = 1,
297    GX2_STENCIL_FUNCTION_REPLACE           = 2,
298    GX2_STENCIL_FUNCTION_INCR_CLAMP        = 3,
299    GX2_STENCIL_FUNCTION_DECR_CLAMP        = 4,
300    GX2_STENCIL_FUNCTION_INV               = 5,
301    GX2_STENCIL_FUNCTION_INCR_WRAP         = 6,
302    GX2_STENCIL_FUNCTION_DECR_WRAP         = 7,
303 } GX2StencilFunction;
304 
305 typedef enum
306 {
307    GX2_SURFACE_DIM_TEXTURE_1D             = 0,
308    GX2_SURFACE_DIM_TEXTURE_2D             = 1,
309    GX2_SURFACE_DIM_TEXTURE_3D             = 2,
310    GX2_SURFACE_DIM_TEXTURE_CUBE           = 3,
311    GX2_SURFACE_DIM_TEXTURE_1D_ARRAY       = 4,
312    GX2_SURFACE_DIM_TEXTURE_2D_ARRAY       = 5,
313    GX2_SURFACE_DIM_TEXTURE_2D_MSAA        = 6,
314    GX2_SURFACE_DIM_TEXTURE_2D_MSAA_ARRAY  = 7,
315 } GX2SurfaceDim;
316 
317 typedef enum
318 {
319    GX2_SURFACE_FORMAT_INVALID                   = 0x00,
320    GX2_SURFACE_FORMAT_UNORM_R4_G4               = 0x02,
321    GX2_SURFACE_FORMAT_UNORM_R4_G4_B4_A4         = 0x0b,
322    GX2_SURFACE_FORMAT_UNORM_R8                  = 0x01,
323    GX2_SURFACE_FORMAT_UNORM_R8_G8               = 0x07,
324    GX2_SURFACE_FORMAT_UNORM_R8_G8_B8_A8         = 0x01a,
325    GX2_SURFACE_FORMAT_UNORM_R16                 = 0x05,
326    GX2_SURFACE_FORMAT_UNORM_R16_G16             = 0x0f,
327    GX2_SURFACE_FORMAT_UNORM_R16_G16_B16_A16     = 0x01f,
328    GX2_SURFACE_FORMAT_UNORM_R5_G6_B5            = 0x08,
329    GX2_SURFACE_FORMAT_UNORM_R5_G5_B5_A1         = 0x0a,
330    GX2_SURFACE_FORMAT_UNORM_A1_B5_G5_R5         = 0x0c,
331    GX2_SURFACE_FORMAT_UNORM_R24_X8              = 0x011,
332    GX2_SURFACE_FORMAT_UNORM_A2_B10_G10_R10      = 0x01b,
333    GX2_SURFACE_FORMAT_UNORM_R10_G10_B10_A2      = 0x019,
334    GX2_SURFACE_FORMAT_UNORM_BC1                 = 0x031,
335    GX2_SURFACE_FORMAT_UNORM_BC2                 = 0x032,
336    GX2_SURFACE_FORMAT_UNORM_BC3                 = 0x033,
337    GX2_SURFACE_FORMAT_UNORM_BC4                 = 0x034,
338    GX2_SURFACE_FORMAT_UNORM_BC5                 = 0x035,
339    GX2_SURFACE_FORMAT_UNORM_NV12                = 0x081,
340 
341    GX2_SURFACE_FORMAT_UINT_R8                   = 0x101,
342    GX2_SURFACE_FORMAT_UINT_R8_G8                = 0x107,
343    GX2_SURFACE_FORMAT_UINT_R8_G8_B8_A8          = 0x11a,
344    GX2_SURFACE_FORMAT_UINT_R16                  = 0x105,
345    GX2_SURFACE_FORMAT_UINT_R16_G16              = 0x10f,
346    GX2_SURFACE_FORMAT_UINT_R16_G16_B16_A16      = 0x11f,
347    GX2_SURFACE_FORMAT_UINT_R32                  = 0x10d,
348    GX2_SURFACE_FORMAT_UINT_R32_G32              = 0x11d,
349    GX2_SURFACE_FORMAT_UINT_R32_G32_B32_A32      = 0x122,
350    GX2_SURFACE_FORMAT_UINT_A2_B10_G10_R10       = 0x11b,
351    GX2_SURFACE_FORMAT_UINT_R10_G10_B10_A2       = 0x119,
352    GX2_SURFACE_FORMAT_UINT_X24_G8               = 0x111,
353    GX2_SURFACE_FORMAT_UINT_G8_X24               = 0x11c,
354 
355    GX2_SURFACE_FORMAT_SNORM_R8                  = 0x201,
356    GX2_SURFACE_FORMAT_SNORM_R8_G8               = 0x207,
357    GX2_SURFACE_FORMAT_SNORM_R8_G8_B8_A8         = 0x21a,
358    GX2_SURFACE_FORMAT_SNORM_R16                 = 0x205,
359    GX2_SURFACE_FORMAT_SNORM_R16_G16             = 0x20f,
360    GX2_SURFACE_FORMAT_SNORM_R16_G16_B16_A16     = 0x21f,
361    GX2_SURFACE_FORMAT_SNORM_R10_G10_B10_A2      = 0x219,
362    GX2_SURFACE_FORMAT_SNORM_BC4                 = 0x234,
363    GX2_SURFACE_FORMAT_SNORM_BC5                 = 0x235,
364 
365    GX2_SURFACE_FORMAT_SINT_R8                   = 0x301,
366    GX2_SURFACE_FORMAT_SINT_R8_G8                = 0x307,
367    GX2_SURFACE_FORMAT_SINT_R8_G8_B8_A8          = 0x31a,
368    GX2_SURFACE_FORMAT_SINT_R16                  = 0x305,
369    GX2_SURFACE_FORMAT_SINT_R16_G16              = 0x30f,
370    GX2_SURFACE_FORMAT_SINT_R16_G16_B16_A16      = 0x31f,
371    GX2_SURFACE_FORMAT_SINT_R32                  = 0x30d,
372    GX2_SURFACE_FORMAT_SINT_R32_G32              = 0x31d,
373    GX2_SURFACE_FORMAT_SINT_R32_G32_B32_A32      = 0x322,
374    GX2_SURFACE_FORMAT_SINT_R10_G10_B10_A2       = 0x319,
375 
376    GX2_SURFACE_FORMAT_SRGB_R8_G8_B8_A8          = 0x41a,
377    GX2_SURFACE_FORMAT_SRGB_BC1                  = 0x431,
378    GX2_SURFACE_FORMAT_SRGB_BC2                  = 0x432,
379    GX2_SURFACE_FORMAT_SRGB_BC3                  = 0x433,
380 
381    GX2_SURFACE_FORMAT_FLOAT_R32                 = 0x80e,
382    GX2_SURFACE_FORMAT_FLOAT_R32_G32             = 0x81e,
383    GX2_SURFACE_FORMAT_FLOAT_R32_G32_B32_A32     = 0x823,
384    GX2_SURFACE_FORMAT_FLOAT_R16                 = 0x806,
385    GX2_SURFACE_FORMAT_FLOAT_R16_G16             = 0x810,
386    GX2_SURFACE_FORMAT_FLOAT_R16_G16_B16_A16     = 0x820,
387    GX2_SURFACE_FORMAT_FLOAT_R11_G11_B10         = 0x816,
388    GX2_SURFACE_FORMAT_FLOAT_D24_S8              = 0x811,
389    GX2_SURFACE_FORMAT_FLOAT_X8_X24              = 0x81c,
390 } GX2SurfaceFormat;
391 
392 typedef enum GX2SurfaceUse
393 {
394    GX2_SURFACE_USE_TEXTURE                      = 1 << 0,
395    GX2_SURFACE_USE_COLOR_BUFFER                 = 1 << 1,
396    GX2_SURFACE_USE_DEPTH_BUFFER                 = 1 << 2,
397    GX2_SURFACE_USE_SCAN_BUFFER                  = 1 << 3,
398    GX2_SURFACE_USE_TV                           = 1 << 31,
399    GX2_SURFACE_USE_TEXTURE_COLOR_BUFFER_TV      = (GX2_SURFACE_USE_TEXTURE | GX2_SURFACE_USE_COLOR_BUFFER | GX2_SURFACE_USE_TV)
400 } GX2SurfaceUse;
401 
402 typedef enum GX2TessellationMode
403 {
404    GX2_TESSELLATION_MODE_DISCRETE         = 0,
405    GX2_TESSELLATION_MODE_CONTINUOUS       = 1,
406    GX2_TESSELLATION_MODE_ADAPTIVE         = 2,
407 } GX2TessellationMode;
408 
409 typedef enum GX2TexBorderType
410 {
411    GX2_TEX_BORDER_TYPE_TRANSPARENT_BLACK  = 0,
412    GX2_TEX_BORDER_TYPE_BLACK              = 1,
413    GX2_TEX_BORDER_TYPE_WHITE              = 2,
414    GX2_TEX_BORDER_TYPE_VARIABLE           = 3,
415 } GX2TexBorderType;
416 
417 typedef enum GX2TexClampMode
418 {
419    GX2_TEX_CLAMP_MODE_WRAP                = 0,
420    GX2_TEX_CLAMP_MODE_MIRROR              = 1,
421    GX2_TEX_CLAMP_MODE_CLAMP               = 2,
422    GX2_TEX_CLAMP_MODE_MIRROR_ONCE         = 3,
423    GX2_TEX_CLAMP_MODE_CLAMP_BORDER        = 6,
424 } GX2TexClampMode;
425 
426 typedef enum GX2TexMipFilterMode
427 {
428    GX2_TEX_MIP_FILTER_MODE_NONE           = 0,
429    GX2_TEX_MIP_FILTER_MODE_POINT          = 1,
430    GX2_TEX_MIP_FILTER_MODE_LINEAR         = 2,
431 } GX2TexMipFilterMode;
432 
433 typedef enum GX2TexMipPerfMode
434 {
435    GX2_TEX_MIP_PERF_MODE_DISABLE          = 0,
436 } GX2TexMipPerfMode;
437 
438 typedef enum GX2TexXYFilterMode
439 {
440    GX2_TEX_XY_FILTER_MODE_POINT          = 0,
441    GX2_TEX_XY_FILTER_MODE_LINEAR         = 1,
442 } GX2TexXYFilterMode;
443 
444 typedef enum GX2TexAnisoRatio
445 {
446    GX2_TEX_ANISO_RATIO_NONE               = 0,
447 } GX2TexAnisoRatio;
448 
449 typedef enum GX2TexZFilterMode
450 {
451    GX2_TEX_Z_FILTER_MODE_NONE             = 0,
452    GX2_TEX_Z_FILTER_MODE_POINT            = 1,
453    GX2_TEX_Z_FILTER_MODE_LINEAR           = 2,
454 } GX2TexZFilterMode;
455 
456 typedef enum GX2TexZPerfMode
457 {
458    GX2_TEX_Z_PERF_MODE_DISABLED           = 0,
459 } GX2TexZPerfMode;
460 
461 typedef enum GX2TileMode
462 {
463    GX2_TILE_MODE_DEFAULT                  = 0,
464    GX2_TILE_MODE_LINEAR_ALIGNED           = 1,
465    GX2_TILE_MODE_TILED_1D_THIN1           = 2,
466    GX2_TILE_MODE_TILED_1D_THICK           = 3,
467    GX2_TILE_MODE_TILED_2D_THIN1           = 4,
468    GX2_TILE_MODE_TILED_2D_THIN2           = 5,
469    GX2_TILE_MODE_TILED_2D_THIN4           = 6,
470    GX2_TILE_MODE_TILED_2D_THICK           = 7,
471    GX2_TILE_MODE_TILED_2B_THIN1           = 8,
472    GX2_TILE_MODE_TILED_2B_THIN2           = 9,
473    GX2_TILE_MODE_TILED_2B_THIN4           = 10,
474    GX2_TILE_MODE_TILED_2B_THICK           = 11,
475    GX2_TILE_MODE_TILED_3D_THIN1           = 12,
476    GX2_TILE_MODE_TILED_3D_THICK           = 13,
477    GX2_TILE_MODE_TILED_3B_THIN1           = 14,
478    GX2_TILE_MODE_TILED_3B_THICK           = 15,
479    GX2_TILE_MODE_LINEAR_SPECIAL           = 16,
480 } GX2TileMode;
481 
482 typedef enum GX2TVRenderMode
483 {
484    GX2_TV_RENDER_MODE_STANDARD_480P       = 1,
485    GX2_TV_RENDER_MODE_WIDE_480P           = 2,
486    GX2_TV_RENDER_MODE_WIDE_720P           = 3,
487    GX2_TV_RENDER_MODE_WIDE_1080P          = 5,
488 } GX2TVRenderMode;
489 
490 typedef enum GX2TVScanMode
491 {
492    GX2_TV_SCAN_MODE_NONE                  = 0,
493    GX2_TV_SCAN_MODE_480I                  = 1,
494    GX2_TV_SCAN_MODE_480P                  = 2,
495    GX2_TV_SCAN_MODE_720P                  = 3,
496    GX2_TV_SCAN_MODE_1080I                 = 5,
497    GX2_TV_SCAN_MODE_1080P                 = 6,
498 } GX2TVScanMode;
499 
500 #ifdef __cplusplus
501 }
502 #endif
503