PS2SDK
PS2 Homebrew Libraries
gif_tags.h
Go to the documentation of this file.
1 
6 #ifndef __GIF_TAGS_H__
7 #define __GIF_TAGS_H__
8 
9 #include <tamtypes.h>
10 
12 #define GIF_BLOCK_SIZE 0x7FFF
13 
15 #define GIF_PRE_DISABLE 0x00
16 
17 #define GIF_PRE_ENABLE 0x01
18 
20 #define GIF_PRIM_POINT 0x00
21 
22 #define GIF_PRIM_LINE 0x01
23 
24 #define GIF_PRIM_LINE_STRIP 0x02
25 
26 #define GIF_PRIM_TRIANGLE 0x03
27 
28 #define GIF_PRIM_TRIANGLE_STRIP 0x04
29 
30 #define GIF_PRIM_TRIANGLE_FAN 0x05
31 
32 #define GIF_PRIM_SPRITE 0x06
33 
35 #define GIF_FLG_PACKED 0x00
36 
37 #define GIF_FLG_REGLIST 0x01
38 
39 #define GIF_FLG_IMAGE 0x02
40 
42 #define GIF_REG_PRIM 0x00
43 
44 #define GIF_REG_RGBAQ 0x01
45 
46 #define GIF_REG_ST 0x02
47 
48 #define GIF_REG_UV 0x03
49 
50 #define GIF_REG_XYZF2 0x04
51 
52 #define GIF_REG_XYZ2 0x05
53 
54 #define GIF_REG_TEX0 0x06
55 
56 #define GIF_REG_TEX0_1 0x06
57 
58 #define GIF_REG_TEX0_2 0x07
59 
60 #define GIF_REG_CLAMP 0x08
61 
62 #define GIF_REG_CLAMP_1 0x08
63 
64 #define GIF_REG_CLAMP_2 0x09
65 
66 #define GIF_REG_FOG 0x0A
67 
68 #define GIF_REG_XYZF3 0x0C
69 
70 #define GIF_REG_XYZ3 0x0D
71 
72 #define GIF_REG_AD 0x0E
73 
74 #define GIF_REG_NOP 0x0F
75 
76 #define PACK_GIFTAG(Q, D0, D1) \
77  Q->dw[0] = (u64)(D0), \
78  Q->dw[1] = (u64)(D1)
79 
80 #define GIF_SET_TAG(NLOOP, EOP, PRE, PRIM, FLG, NREG) \
81  (u64)((NLOOP)&0x00007FFF) << 0 | (u64)((EOP)&0x00000001) << 15 | \
82  (u64)((PRE)&0x00000001) << 46 | (u64)((PRIM)&0x000007FF) << 47 | \
83  (u64)((FLG)&0x00000003) << 58 | (u64)((NREG)&0x0000000F) << 60
84 
85 #define GIF_SET_PRIM(PRIM, IIP, TME, FGE, ABE, AA1, FST, CTXT, FIX) \
86  (u64)((PRIM)&0x00000007) << 0 | (u64)((IIP)&0x00000001) << 3 | \
87  (u64)((TME)&0x00000001) << 4 | (u64)((FGE)&0x00000001) << 5 | \
88  (u64)((ABE)&0x00000001) << 6 | (u64)((AA1)&0x00000001) << 7 | \
89  (u64)((FST)&0x00000001) << 8 | (u64)((CTXT)&0x00000001) << 9 | \
90  (u64)((FIX)&0x00000001) << 10
91 
92 #define GIF_SET_RGBAQ(R, G, B, A, Q) \
93  (u64)((R)&0x000000FF) << 0 | (u64)((G)&0x000000FF) << 8 | \
94  (u64)((B)&0x000000FF) << 16 | (u64)((A)&0x000000FF) << 24 | \
95  (u64)((Q)&0xFFFFFFFF) << 32
96 
97 #define GIF_SET_ST(S, T) \
98  (u64)((S)&0xFFFFFFFF) << 0 | (u64)((T)&0xFFFFFFFF) << 32
99 
100 #define GIF_SET_UV(U, V) \
101  (u64)((U)&0x00003FFF) << 0 | (u64)((V)&0x00003FFF) << 16
102 
103 #define GIF_SET_XYZ(X, Y, Z) \
104  (u64)((X)&0x0000FFFF) << 0 | (u64)((Y)&0x0000FFFF) << 16 | \
105  (u64)((Z)&0xFFFFFFFF) << 32
106 
107 #define GIF_SET_XYZF(X, Y, Z, F) \
108  (u64)((X)&0x0000FFFF) << 0 | (u64)((Y)&0x0000FFFF) << 16 | \
109  (u64)((Z)&0x00FFFFFF) << 32 | (u64)((F)&0x000000FF) << 56
110 
111 #define GIF_SET_TEX0(TBA, TBW, PSM, TW, TH, TCC, TFNCT, CBA, CPSM, CSM, CSA, CLD) \
112  (u64)((TBA)&0x00003FFF) << 0 | (u64)((TBW)&0x0000003F) << 14 | \
113  (u64)((PSM)&0x0000003F) << 20 | (u64)((TW)&0x0000000F) << 26 | \
114  (u64)((TH)&0x0000000F) << 30 | (u64)((TCC)&0x00000001) << 34 | \
115  (u64)((TFNCT)&0x00000003) << 35 | (u64)((CBA)&0x00003FFF) << 37 | \
116  (u64)((CPSM)&0x0000000F) << 51 | (u64)((CSM)&0x00000001) << 55 | \
117  (u64)((CSA)&0x0000001F) << 56 | (u64)((CLD)&0x00000007) << 61
118 
119 #define GIF_SET_CLAMP(WMS, WMT, MINU, MAXU, MINV, MAXV) \
120  (u64)((WMS)&0x00000003) << 0 | (u64)((WMT)&0x00000003) << 2 | \
121  (u64)((MINU)&0x000003FF) << 4 | (u64)((MAXU)&0x000003FF) << 14 | \
122  (u64)((MINV)&0x000003FF) << 24 | (u64)((MAXV)&0x000003FF) << 34
123 
124 #define GIF_SET_FOG(FOG) (u64)((FOG)&0x000000FF) << 56
125 
126 #endif /* __GIFTAGS_H__ */
tamtypes.h