~ppsspp/ppsspp/ppsspp_1.3.0

« back to all changes in this revision

Viewing changes to GPU/ge_constants.h

  • Committer: Sérgio Benjamim
  • Date: 2017-01-02 00:12:05 UTC
  • Revision ID: sergio_br2@yahoo.com.br-20170102001205-cxbta9za203nmjwm
1.3.0 source (from ppsspp_1.3.0-r160.p5.l1762.a165.t83~56~ubuntu16.04.1.tar.xz).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) 2012- PPSSPP Project.
 
2
 
 
3
// This program is free software: you can redistribute it and/or modify
 
4
// it under the terms of the GNU General Public License as published by
 
5
// the Free Software Foundation, version 2.0 or later versions.
 
6
 
 
7
// This program is distributed in the hope that it will be useful,
 
8
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
9
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
10
// GNU General Public License 2.0 for more details.
 
11
 
 
12
// A copy of the GPL 2.0 should have been included with the program.
 
13
// If not, see http://www.gnu.org/licenses/
 
14
 
 
15
// Official git repository and contact information can be found at
 
16
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
 
17
 
 
18
#pragma once
 
19
 
 
20
enum GECommand
 
21
{
 
22
        GE_CMD_NOP = 0,
 
23
        GE_CMD_VADDR = 0x1,
 
24
        GE_CMD_IADDR = 0x2,
 
25
        GE_CMD_PRIM = 0x4,
 
26
        GE_CMD_BEZIER = 0x5,
 
27
        GE_CMD_SPLINE = 0x6,
 
28
        GE_CMD_BOUNDINGBOX = 0x7,
 
29
        GE_CMD_JUMP = 0x8,
 
30
        GE_CMD_BJUMP = 0x9,
 
31
        GE_CMD_CALL = 0xA,
 
32
        GE_CMD_RET = 0xB,
 
33
        GE_CMD_END = 0xC,
 
34
        GE_CMD_SIGNAL = 0xE,
 
35
        GE_CMD_FINISH = 0xF,
 
36
        GE_CMD_BASE = 0x10,
 
37
        GE_CMD_VERTEXTYPE = 0x12,
 
38
        GE_CMD_OFFSETADDR = 0x13,
 
39
        GE_CMD_ORIGIN = 0x14,
 
40
        GE_CMD_REGION1 = 0x15,
 
41
        GE_CMD_REGION2 = 0x16,
 
42
        GE_CMD_LIGHTINGENABLE = 0x17,
 
43
        GE_CMD_LIGHTENABLE0 = 0x18,
 
44
        GE_CMD_LIGHTENABLE1 = 0x19,
 
45
        GE_CMD_LIGHTENABLE2 = 0x1a,
 
46
        GE_CMD_LIGHTENABLE3 = 0x1b,
 
47
        GE_CMD_CLIPENABLE = 0x1c,
 
48
        GE_CMD_CULLFACEENABLE,
 
49
        GE_CMD_TEXTUREMAPENABLE,
 
50
        GE_CMD_FOGENABLE,
 
51
        GE_CMD_DITHERENABLE,
 
52
        GE_CMD_ALPHABLENDENABLE = 0x21,
 
53
        GE_CMD_ALPHATESTENABLE = 0x22,
 
54
        GE_CMD_ZTESTENABLE = 0x23,
 
55
        GE_CMD_STENCILTESTENABLE = 0x24,
 
56
        GE_CMD_ANTIALIASENABLE = 0x25,
 
57
        GE_CMD_PATCHCULLENABLE = 0x26,
 
58
        GE_CMD_COLORTESTENABLE = 0x27,
 
59
        GE_CMD_LOGICOPENABLE = 0x28,
 
60
        GE_CMD_BONEMATRIXNUMBER = 0x2A,
 
61
        GE_CMD_BONEMATRIXDATA = 0x2B,
 
62
        GE_CMD_MORPHWEIGHT0 = 0x2C,
 
63
        GE_CMD_MORPHWEIGHT1 = 0x2D,
 
64
        GE_CMD_MORPHWEIGHT2 = 0x2E,
 
65
        GE_CMD_MORPHWEIGHT3 = 0x2F,
 
66
        GE_CMD_MORPHWEIGHT4 = 0x30,
 
67
        GE_CMD_MORPHWEIGHT5 = 0x31,
 
68
        GE_CMD_MORPHWEIGHT6 = 0x32,
 
69
        GE_CMD_MORPHWEIGHT7 = 0x33,
 
70
        GE_CMD_PATCHDIVISION = 0x36,
 
71
        GE_CMD_PATCHPRIMITIVE = 0x37,
 
72
        GE_CMD_PATCHFACING = 0x38,
 
73
        GE_CMD_WORLDMATRIXNUMBER = 0x3A,
 
74
        GE_CMD_WORLDMATRIXDATA,
 
75
        GE_CMD_VIEWMATRIXNUMBER,
 
76
        GE_CMD_VIEWMATRIXDATA,
 
77
        GE_CMD_PROJMATRIXNUMBER,
 
78
        GE_CMD_PROJMATRIXDATA,
 
79
        GE_CMD_TGENMATRIXNUMBER = 0x40,
 
80
        GE_CMD_TGENMATRIXDATA = 0x41,
 
81
        GE_CMD_VIEWPORTXSCALE,
 
82
        GE_CMD_VIEWPORTYSCALE,
 
83
        GE_CMD_VIEWPORTZSCALE,
 
84
        GE_CMD_VIEWPORTXCENTER,
 
85
        GE_CMD_VIEWPORTYCENTER,
 
86
        GE_CMD_VIEWPORTZCENTER,
 
87
        GE_CMD_TEXSCALEU = 0x48,
 
88
        GE_CMD_TEXSCALEV = 0x49,
 
89
        GE_CMD_TEXOFFSETU = 0x4A,
 
90
        GE_CMD_TEXOFFSETV = 0x4B,
 
91
        GE_CMD_OFFSETX = 0x4C,
 
92
        GE_CMD_OFFSETY = 0x4D,
 
93
        GE_CMD_SHADEMODE = 0x50,  // flat or gouraud
 
94
        GE_CMD_REVERSENORMAL = 0x51,
 
95
        GE_CMD_MATERIALUPDATE = 0x53,
 
96
        GE_CMD_MATERIALEMISSIVE, //not sure about these but this makes sense
 
97
        GE_CMD_MATERIALAMBIENT,  //gotta try enabling lighting and check :)
 
98
        GE_CMD_MATERIALDIFFUSE = 0x56,
 
99
        GE_CMD_MATERIALSPECULAR = 0x57,
 
100
        GE_CMD_MATERIALALPHA = 0x58,
 
101
        GE_CMD_MATERIALSPECULARCOEF = 0x5B,
 
102
        GE_CMD_AMBIENTCOLOR,
 
103
        GE_CMD_AMBIENTALPHA,
 
104
        GE_CMD_LIGHTMODE = 0x5E,
 
105
        GE_CMD_LIGHTTYPE0 = 0x5F,
 
106
        GE_CMD_LIGHTTYPE1 = 0x60,
 
107
        GE_CMD_LIGHTTYPE2 = 0x61,
 
108
        GE_CMD_LIGHTTYPE3 = 0x62,
 
109
        GE_CMD_LX0 = 0x63,
 
110
        GE_CMD_LY0,
 
111
        GE_CMD_LZ0,
 
112
        GE_CMD_LX1,
 
113
        GE_CMD_LY1,
 
114
        GE_CMD_LZ1,
 
115
        GE_CMD_LX2,
 
116
        GE_CMD_LY2,
 
117
        GE_CMD_LZ2,
 
118
        GE_CMD_LX3,
 
119
        GE_CMD_LY3,
 
120
        GE_CMD_LZ3,
 
121
        GE_CMD_LDX0 = 0x6F,
 
122
        GE_CMD_LDY0,
 
123
        GE_CMD_LDZ0,
 
124
        GE_CMD_LDX1,
 
125
        GE_CMD_LDY1,
 
126
        GE_CMD_LDZ1,
 
127
        GE_CMD_LDX2,
 
128
        GE_CMD_LDY2,
 
129
        GE_CMD_LDZ2,
 
130
        GE_CMD_LDX3,
 
131
        GE_CMD_LDY3,
 
132
        GE_CMD_LDZ3,
 
133
        GE_CMD_LKA0 = 0x7B,
 
134
        GE_CMD_LKB0,
 
135
        GE_CMD_LKC0,
 
136
        GE_CMD_LKA1,
 
137
        GE_CMD_LKB1,
 
138
        GE_CMD_LKC1,
 
139
        GE_CMD_LKA2,
 
140
        GE_CMD_LKB2,
 
141
        GE_CMD_LKC2,
 
142
        GE_CMD_LKA3,
 
143
        GE_CMD_LKB3,
 
144
        GE_CMD_LKC3,
 
145
        GE_CMD_LKS0 = 0x87,
 
146
        GE_CMD_LKS1,
 
147
        GE_CMD_LKS2,
 
148
        GE_CMD_LKS3,
 
149
        GE_CMD_LKO0 = 0x8b,
 
150
        GE_CMD_LKO1,
 
151
        GE_CMD_LKO2,
 
152
        GE_CMD_LKO3,
 
153
        GE_CMD_LAC0 = 0x8F,
 
154
        GE_CMD_LDC0,
 
155
        GE_CMD_LSC0,
 
156
        GE_CMD_LAC1,
 
157
        GE_CMD_LDC1,
 
158
        GE_CMD_LSC1,
 
159
        GE_CMD_LAC2,
 
160
        GE_CMD_LDC2,
 
161
        GE_CMD_LSC2,
 
162
        GE_CMD_LAC3,
 
163
        GE_CMD_LDC3,
 
164
        GE_CMD_LSC3,
 
165
        GE_CMD_CULL = 0x9B,
 
166
        GE_CMD_FRAMEBUFPTR = 0x9C,
 
167
        GE_CMD_FRAMEBUFWIDTH = 0x9D,
 
168
        GE_CMD_ZBUFPTR = 0x9E,
 
169
        GE_CMD_ZBUFWIDTH = 0x9F,
 
170
        GE_CMD_TEXADDR0 = 0xA0,
 
171
        GE_CMD_TEXADDR1,
 
172
        GE_CMD_TEXADDR2,
 
173
        GE_CMD_TEXADDR3,
 
174
        GE_CMD_TEXADDR4,
 
175
        GE_CMD_TEXADDR5,
 
176
        GE_CMD_TEXADDR6,
 
177
        GE_CMD_TEXADDR7,
 
178
        GE_CMD_TEXBUFWIDTH0 = 0xA8,
 
179
        GE_CMD_TEXBUFWIDTH1,
 
180
        GE_CMD_TEXBUFWIDTH2,
 
181
        GE_CMD_TEXBUFWIDTH3,
 
182
        GE_CMD_TEXBUFWIDTH4,
 
183
        GE_CMD_TEXBUFWIDTH5,    
 
184
        GE_CMD_TEXBUFWIDTH6,
 
185
        GE_CMD_TEXBUFWIDTH7,
 
186
        GE_CMD_CLUTADDR=0xB0,
 
187
        GE_CMD_CLUTADDRUPPER,
 
188
        GE_CMD_TRANSFERSRC,
 
189
        GE_CMD_TRANSFERSRCW,
 
190
        GE_CMD_TRANSFERDST,
 
191
        GE_CMD_TRANSFERDSTW,
 
192
        GE_CMD_TEXSIZE0=0xB8,
 
193
        GE_CMD_TEXSIZE1,
 
194
        GE_CMD_TEXSIZE2,
 
195
        GE_CMD_TEXSIZE3,
 
196
        GE_CMD_TEXSIZE4,
 
197
        GE_CMD_TEXSIZE5,
 
198
        GE_CMD_TEXSIZE6,
 
199
        GE_CMD_TEXSIZE7,
 
200
        GE_CMD_TEXMAPMODE = 0xC0,
 
201
        GE_CMD_TEXSHADELS = 0xC1,
 
202
        GE_CMD_TEXMODE = 0xC2,
 
203
        GE_CMD_TEXFORMAT = 0xC3,
 
204
        GE_CMD_LOADCLUT = 0xC4,
 
205
        GE_CMD_CLUTFORMAT = 0xC5,
 
206
        GE_CMD_TEXFILTER = 0xC6,
 
207
        GE_CMD_TEXWRAP = 0xC7,
 
208
        GE_CMD_TEXLEVEL = 0xC8,
 
209
        GE_CMD_TEXFUNC = 0xC9,
 
210
        GE_CMD_TEXENVCOLOR = 0xCA,
 
211
        GE_CMD_TEXFLUSH = 0xCB,
 
212
        GE_CMD_TEXSYNC = 0xCC,
 
213
        GE_CMD_FOG1 = 0xCD,
 
214
        GE_CMD_FOG2 = 0xCE,
 
215
        GE_CMD_FOGCOLOR = 0xCF,
 
216
        GE_CMD_TEXLODSLOPE = 0xD0,
 
217
        GE_CMD_FRAMEBUFPIXFORMAT = 0xD2,
 
218
        GE_CMD_CLEARMODE = 0xD3,
 
219
        GE_CMD_SCISSOR1 = 0xD4,
 
220
        GE_CMD_SCISSOR2 = 0xD5,
 
221
        GE_CMD_MINZ = 0xD6,
 
222
        GE_CMD_MAXZ = 0xD7,
 
223
        GE_CMD_COLORTEST = 0xD8,
 
224
        GE_CMD_COLORREF = 0xD9,
 
225
        GE_CMD_COLORTESTMASK = 0xDA,
 
226
        GE_CMD_ALPHATEST = 0xDB,
 
227
        GE_CMD_STENCILTEST = 0xDC,
 
228
        GE_CMD_STENCILOP = 0xDD,
 
229
        GE_CMD_ZTEST = 0xDE,
 
230
        GE_CMD_BLENDMODE = 0xDF,
 
231
        GE_CMD_BLENDFIXEDA = 0xE0,
 
232
        GE_CMD_BLENDFIXEDB = 0xE1,                              
 
233
        GE_CMD_DITH0 = 0xE2,
 
234
        GE_CMD_DITH1,
 
235
        GE_CMD_DITH2,
 
236
        GE_CMD_DITH3,
 
237
        GE_CMD_LOGICOP = 0xE6,
 
238
        GE_CMD_ZWRITEDISABLE = 0xE7,
 
239
        GE_CMD_MASKRGB = 0xE8,
 
240
        GE_CMD_MASKALPHA = 0xE9,
 
241
        GE_CMD_TRANSFERSTART = 0xEA,
 
242
        GE_CMD_TRANSFERSRCPOS = 0xEB,
 
243
        GE_CMD_TRANSFERDSTPOS = 0xEC,
 
244
        GE_CMD_TRANSFERSIZE = 0xEE,
 
245
        GE_CMD_VSCX = 0xF0,
 
246
        GE_CMD_VSCY = 0xF1,
 
247
        GE_CMD_VSCZ = 0xF2,
 
248
        GE_CMD_VTCS = 0xF3,
 
249
        GE_CMD_VTCT = 0xF4,
 
250
        GE_CMD_VTCQ = 0xF5,
 
251
        GE_CMD_VCV = 0xF6,
 
252
        GE_CMD_VAP = 0xF7,
 
253
        GE_CMD_VFC = 0xF8,
 
254
        GE_CMD_VSCV = 0xF9,
 
255
        GE_CMD_UNKNOWN_03 = 0x03,
 
256
        GE_CMD_UNKNOWN_0D = 0x0D,
 
257
        GE_CMD_UNKNOWN_11 = 0x11,
 
258
        GE_CMD_UNKNOWN_29 = 0x29,
 
259
        GE_CMD_UNKNOWN_34 = 0x34,
 
260
        GE_CMD_UNKNOWN_35 = 0x35,
 
261
        GE_CMD_UNKNOWN_39 = 0x39,
 
262
        GE_CMD_UNKNOWN_4E = 0x4E,
 
263
        GE_CMD_UNKNOWN_4F = 0x4F,
 
264
        GE_CMD_UNKNOWN_52 = 0x52,
 
265
        GE_CMD_UNKNOWN_59 = 0x59,
 
266
        GE_CMD_UNKNOWN_5A = 0x5A,
 
267
        GE_CMD_UNKNOWN_B6 = 0xB6,
 
268
        GE_CMD_UNKNOWN_B7 = 0xB7,
 
269
        GE_CMD_UNKNOWN_D1 = 0xD1,
 
270
        GE_CMD_UNKNOWN_ED = 0xED,
 
271
        GE_CMD_UNKNOWN_EF = 0xEF,
 
272
        GE_CMD_UNKNOWN_FA = 0xFA,
 
273
        GE_CMD_UNKNOWN_FB = 0xFB,
 
274
        GE_CMD_UNKNOWN_FC = 0xFC,
 
275
        GE_CMD_UNKNOWN_FD = 0xFD,
 
276
        GE_CMD_UNKNOWN_FE = 0xFE,
 
277
        GE_CMD_UNKNOWN_FF = 0xFF,
 
278
};
 
279
 
 
280
enum GEBufferFormat
 
281
{
 
282
        GE_FORMAT_565 = 0,
 
283
        GE_FORMAT_5551 = 1,
 
284
        GE_FORMAT_4444 = 2,
 
285
        GE_FORMAT_8888 = 3,
 
286
        GE_FORMAT_INVALID = 0xFF,
 
287
};
 
288
 
 
289
#define GE_VTYPE_TRANSFORM (0<<23)
 
290
#define GE_VTYPE_THROUGH   (1<<23)
 
291
#define GE_VTYPE_THROUGH_MASK (1<<23)
 
292
 
 
293
#define GE_VTYPE_TC_NONE  (0<<0)
 
294
#define GE_VTYPE_TC_8BIT  (1<<0)
 
295
#define GE_VTYPE_TC_16BIT (2<<0)
 
296
#define GE_VTYPE_TC_FLOAT (3<<0)
 
297
#define GE_VTYPE_TC_MASK  (3<<0)
 
298
#define GE_VTYPE_TC_SHIFT 0
 
299
 
 
300
#define GE_VTYPE_COL_NONE (0<<2)
 
301
#define GE_VTYPE_COL_565  (4<<2)
 
302
#define GE_VTYPE_COL_5551 (5<<2)
 
303
#define GE_VTYPE_COL_4444 (6<<2)
 
304
#define GE_VTYPE_COL_8888 (7<<2)
 
305
#define GE_VTYPE_COL_MASK (7<<2)
 
306
#define GE_VTYPE_COL_SHIFT 2
 
307
 
 
308
#define GE_VTYPE_NRM_NONE  (0<<5)
 
309
#define GE_VTYPE_NRM_8BIT  (1<<5)
 
310
#define GE_VTYPE_NRM_16BIT (2<<5)
 
311
#define GE_VTYPE_NRM_FLOAT (3<<5)
 
312
#define GE_VTYPE_NRM_MASK  (3<<5)
 
313
#define GE_VTYPE_NRM_SHIFT 5
 
314
 
 
315
//#define GE_VTYPE_POSITION_NONE  (0<<5)
 
316
#define GE_VTYPE_POS_8BIT  (1<<7)
 
317
#define GE_VTYPE_POS_16BIT (2<<7)
 
318
#define GE_VTYPE_POS_FLOAT (3<<7)
 
319
#define GE_VTYPE_POS_MASK  (3<<7)
 
320
#define GE_VTYPE_POS_SHIFT 7
 
321
 
 
322
#define GE_VTYPE_WEIGHT_NONE  (0<<9)
 
323
#define GE_VTYPE_WEIGHT_8BIT  (1<<9)
 
324
#define GE_VTYPE_WEIGHT_16BIT (2<<9)
 
325
#define GE_VTYPE_WEIGHT_FLOAT (3<<9)
 
326
#define GE_VTYPE_WEIGHT_MASK  (3<<9)
 
327
#define GE_VTYPE_WEIGHT_SHIFT 9
 
328
 
 
329
#define GE_VTYPE_WEIGHTCOUNT_MASK  (7<<14)
 
330
#define GE_VTYPE_WEIGHTCOUNT_SHIFT 14
 
331
 
 
332
#define GE_VTYPE_MORPHCOUNT_MASK  (7<<18)
 
333
#define GE_VTYPE_MORPHCOUNT_SHIFT 18
 
334
 
 
335
#define GE_VTYPE_IDX_NONE  (0<<11)
 
336
#define GE_VTYPE_IDX_8BIT  (1<<11)
 
337
#define GE_VTYPE_IDX_16BIT (2<<11)
 
338
#define GE_VTYPE_IDX_32BIT (3<<11)
 
339
#define GE_VTYPE_IDX_MASK  (3<<11)
 
340
#define GE_VTYPE_IDX_SHIFT 11
 
341
 
 
342
#define GE_CLEARMODE_COLOR (1<<8)
 
343
#define GE_CLEARMODE_ALPHA (1<<9) //or stencil?
 
344
#define GE_CLEARMODE_Z     (1<<10)
 
345
#define GE_CLEARMODE_ALL (GE_CLEARMODE_COLOR|GE_CLEARMODE_ALPHA|GE_CLEARMODE_Z)
 
346
 
 
347
enum GEMatrixType {
 
348
        GE_MTX_BONE0 = 0,
 
349
        GE_MTX_BONE1,
 
350
        GE_MTX_BONE2,
 
351
        GE_MTX_BONE3,
 
352
        GE_MTX_BONE4,
 
353
        GE_MTX_BONE5,
 
354
        GE_MTX_BONE6,
 
355
        GE_MTX_BONE7,
 
356
        GE_MTX_WORLD,
 
357
        GE_MTX_VIEW,
 
358
        GE_MTX_PROJECTION,
 
359
        GE_MTX_TEXGEN,
 
360
};
 
361
 
 
362
enum GEComparison
 
363
{
 
364
        GE_COMP_NEVER = 0,
 
365
        GE_COMP_ALWAYS = 1,
 
366
        GE_COMP_EQUAL = 2,
 
367
        GE_COMP_NOTEQUAL = 3,
 
368
        GE_COMP_LESS = 4,
 
369
        GE_COMP_LEQUAL = 5,
 
370
        GE_COMP_GREATER = 6,
 
371
        GE_COMP_GEQUAL = 7,
 
372
};
 
373
 
 
374
enum GEShadeMode
 
375
{
 
376
        GE_SHADE_FLAT = 0,
 
377
        GE_SHADE_GOURAUD = 1,
 
378
};
 
379
 
 
380
enum GELightType
 
381
{
 
382
        GE_LIGHTTYPE_DIRECTIONAL = 0,
 
383
        GE_LIGHTTYPE_POINT = 1,
 
384
        GE_LIGHTTYPE_SPOT = 2,
 
385
        GE_LIGHTTYPE_UNKNOWN = 3,
 
386
};
 
387
 
 
388
enum GELightColorSetting
 
389
{
 
390
        GE_LIGHTCOLOR_AMBIENT = 0,
 
391
        GE_LIGHTCOLOR_DIFFUSE = 1,
 
392
        GE_LIGHTCOLOR_SPECULAR = 2,
 
393
};
 
394
 
 
395
enum GELightComputation
 
396
{
 
397
        GE_LIGHTCOMP_ONLYDIFFUSE = 0,
 
398
        GE_LIGHTCOMP_BOTH = 1,
 
399
        GE_LIGHTCOMP_BOTHWITHPOWDIFFUSE = 2,
 
400
};
 
401
 
 
402
enum GETextureFormat
 
403
{
 
404
        GE_TFMT_5650 = 0,
 
405
        GE_TFMT_5551 = 1,
 
406
        GE_TFMT_4444 = 2,
 
407
        GE_TFMT_8888 = 3,
 
408
        GE_TFMT_CLUT4 = 4,
 
409
        GE_TFMT_CLUT8 = 5,
 
410
        GE_TFMT_CLUT16 = 6,
 
411
        GE_TFMT_CLUT32 = 7,
 
412
        GE_TFMT_DXT1 = 8,
 
413
        GE_TFMT_DXT3 = 9,
 
414
        GE_TFMT_DXT5 = 10,
 
415
};
 
416
 
 
417
enum GETexLevelMode {
 
418
        GE_TEXLEVEL_MODE_AUTO = 0,
 
419
        GE_TEXLEVEL_MODE_CONST = 1,
 
420
        GE_TEXLEVEL_MODE_SLOPE = 2,
 
421
};
 
422
 
 
423
enum GEMaterialColorSetting
 
424
{
 
425
        GE_MATERIALCOLOR_EMISSIVE = 0,
 
426
        GE_MATERIALCOLOR_AMBIENT = 1,
 
427
        GE_MATERIALCOLOR_DIFFUSE = 2,
 
428
        GE_MATERIALCOLOR_SPECULAR = 3,
 
429
};
 
430
 
 
431
enum GEBlendMode
 
432
{
 
433
        GE_BLENDMODE_MUL_AND_ADD = 0,
 
434
        GE_BLENDMODE_MUL_AND_SUBTRACT = 1,
 
435
        GE_BLENDMODE_MUL_AND_SUBTRACT_REVERSE = 2,
 
436
        GE_BLENDMODE_MIN = 3,
 
437
        GE_BLENDMODE_MAX = 4,
 
438
        GE_BLENDMODE_ABSDIFF = 5,
 
439
};
 
440
 
 
441
enum GEBlendSrcFactor
 
442
{
 
443
        GE_SRCBLEND_DSTCOLOR,
 
444
        GE_SRCBLEND_INVDSTCOLOR,
 
445
        GE_SRCBLEND_SRCALPHA,
 
446
        GE_SRCBLEND_INVSRCALPHA,
 
447
        GE_SRCBLEND_DSTALPHA,
 
448
        GE_SRCBLEND_INVDSTALPHA,
 
449
        GE_SRCBLEND_DOUBLESRCALPHA,
 
450
        GE_SRCBLEND_DOUBLEINVSRCALPHA,
 
451
        GE_SRCBLEND_DOUBLEDSTALPHA,
 
452
        GE_SRCBLEND_DOUBLEINVDSTALPHA,
 
453
        GE_SRCBLEND_FIXA,
 
454
};
 
455
 
 
456
enum GEBlendDstFactor
 
457
{
 
458
        GE_DSTBLEND_SRCCOLOR,
 
459
        GE_DSTBLEND_INVSRCCOLOR,
 
460
        GE_DSTBLEND_SRCALPHA,
 
461
        GE_DSTBLEND_INVSRCALPHA,
 
462
        GE_DSTBLEND_DSTALPHA,
 
463
        GE_DSTBLEND_INVDSTALPHA,
 
464
        GE_DSTBLEND_DOUBLESRCALPHA,
 
465
        GE_DSTBLEND_DOUBLEINVSRCALPHA,
 
466
        GE_DSTBLEND_DOUBLEDSTALPHA,
 
467
        GE_DSTBLEND_DOUBLEINVDSTALPHA,
 
468
        GE_DSTBLEND_FIXB,
 
469
};
 
470
 
 
471
enum GETexFunc
 
472
{
 
473
        GE_TEXFUNC_MODULATE = 0,
 
474
        GE_TEXFUNC_DECAL = 1,
 
475
        GE_TEXFUNC_BLEND = 2,
 
476
        GE_TEXFUNC_REPLACE = 3,
 
477
        GE_TEXFUNC_ADD = 4,
 
478
        GE_TEXFUNC_UNKNOWN1 = 5,
 
479
        GE_TEXFUNC_UNKNOWN2 = 6,
 
480
        GE_TEXFUNC_UNKNOWN3 = 7,
 
481
};
 
482
 
 
483
enum GEStencilOp
 
484
{
 
485
        GE_STENCILOP_KEEP = 0,
 
486
        GE_STENCILOP_ZERO = 1,
 
487
        GE_STENCILOP_REPLACE = 2,
 
488
        GE_STENCILOP_INVERT = 3,
 
489
        GE_STENCILOP_INCR = 4,
 
490
        GE_STENCILOP_DECR = 5,
 
491
};
 
492
 
 
493
enum GETextureFiltering
 
494
{
 
495
        GE_TFILT_NEAREST = 0,
 
496
        GE_TFILT_LINEAR = 1,
 
497
        GE_TFILT_NEAREST_MIPMAP_NEAREST = 4,
 
498
        GE_TFILT_LINEAR_MIPMAP_NEAREST = 5,
 
499
        GE_TFILT_NEAREST_MIPMAP_LINEAR = 6,
 
500
        GE_TFILT_LINEAR_MIPMAP_LINEAR = 7,
 
501
};
 
502
 
 
503
enum GETexMapMode
 
504
{
 
505
        GE_TEXMAP_TEXTURE_COORDS = 0,
 
506
        GE_TEXMAP_TEXTURE_MATRIX = 1,
 
507
        GE_TEXMAP_ENVIRONMENT_MAP = 2,
 
508
        GE_TEXMAP_UNKNOWN = 3,
 
509
};
 
510
 
 
511
enum GETexProjMapMode
 
512
{
 
513
        GE_PROJMAP_POSITION = 0,
 
514
        GE_PROJMAP_UV = 1,
 
515
        GE_PROJMAP_NORMALIZED_NORMAL = 2,
 
516
        GE_PROJMAP_NORMAL = 3,
 
517
};
 
518
 
 
519
enum GEPrimitiveType
 
520
{
 
521
        GE_PRIM_POINTS = 0,
 
522
        GE_PRIM_LINES = 1,
 
523
        GE_PRIM_LINE_STRIP = 2,
 
524
        GE_PRIM_TRIANGLES = 3,
 
525
        GE_PRIM_TRIANGLE_STRIP = 4,
 
526
        GE_PRIM_TRIANGLE_FAN = 5,
 
527
        GE_PRIM_RECTANGLES = 6,
 
528
        GE_PRIM_KEEP_PREVIOUS = 7,
 
529
        GE_PRIM_INVALID = -1,
 
530
};
 
531
 
 
532
enum GELogicOp
 
533
{
 
534
        GE_LOGIC_CLEAR = 0,
 
535
        GE_LOGIC_AND = 1,
 
536
        GE_LOGIC_AND_REVERSE = 2,
 
537
        GE_LOGIC_COPY = 3,
 
538
        GE_LOGIC_AND_INVERTED = 4,
 
539
        GE_LOGIC_NOOP = 5,
 
540
        GE_LOGIC_XOR = 6,
 
541
        GE_LOGIC_OR = 7,
 
542
        GE_LOGIC_NOR = 8,
 
543
        GE_LOGIC_EQUIV = 9,
 
544
        GE_LOGIC_INVERTED = 10,
 
545
        GE_LOGIC_OR_REVERSE = 11,
 
546
        GE_LOGIC_COPY_INVERTED = 12,
 
547
        GE_LOGIC_OR_INVERTED = 13,
 
548
        GE_LOGIC_NAND = 14,
 
549
        GE_LOGIC_SET = 15,
 
550
};
 
551
 
 
552
enum GEPatchPrimType
 
553
{
 
554
        GE_PATCHPRIM_TRIANGLES = 0,
 
555
        GE_PATCHPRIM_LINES = 1,
 
556
        GE_PATCHPRIM_POINTS = 2,
 
557
        // Treated as points.
 
558
        GE_PATCHPRIM_UNKNOWN = 3,
 
559
};
 
560
 
 
561
enum GEPaletteFormat
 
562
{
 
563
        GE_CMODE_16BIT_BGR5650,
 
564
        GE_CMODE_16BIT_ABGR5551,
 
565
        GE_CMODE_16BIT_ABGR4444,
 
566
        GE_CMODE_32BIT_ABGR8888,
 
567
};