rev |
line source |
nuclear@0
|
1 #ifndef SANEGL_ATTR_H_
|
nuclear@0
|
2 #define SANEGL_ATTR_H_
|
nuclear@0
|
3
|
nuclear@0
|
4 #ifndef SANEGL_IMPL_
|
nuclear@0
|
5 /* in the header file just expand to the prototypes */
|
nuclear@0
|
6 #define GLATTR1(name, type, suffix, conv) \
|
nuclear@0
|
7 void gl##name##1##suffix(GL##type x);
|
nuclear@0
|
8
|
nuclear@0
|
9 #define GLATTR2(name, type, suffix, conv) \
|
nuclear@0
|
10 void gl##name##2##suffix(GL##type x, GL##type y);
|
nuclear@0
|
11
|
nuclear@0
|
12 #define GLATTR3(name, type, suffix, conv) \
|
nuclear@0
|
13 void gl##name##3##suffix(GL##type x, GL##type y, GL##type z);
|
nuclear@0
|
14
|
nuclear@0
|
15 #define GLATTR4(name, type, suffix, conv) \
|
nuclear@0
|
16 void gl##name##3##suffix(GL##type x, GL##type y, GL##type z, GL##type w);
|
nuclear@0
|
17
|
nuclear@0
|
18 #define GLATTR1V(name, type, suffix, conv) \
|
nuclear@0
|
19 void gl##name##1##suffix##v(const GL##type *p);
|
nuclear@0
|
20
|
nuclear@0
|
21 #define GLATTR2V(name, type, suffix, conv) \
|
nuclear@0
|
22 void gl##name##2##suffix##v(const GL##type *p);
|
nuclear@0
|
23
|
nuclear@0
|
24 #define GLATTR3V(name, type, suffix, conv) \
|
nuclear@0
|
25 void gl##name##3##suffix##v(const GL##type *p);
|
nuclear@0
|
26
|
nuclear@0
|
27 #define GLATTR4V(name, type, suffix, conv) \
|
nuclear@0
|
28 void gl##name##4##suffix##v(const GL##type *p);
|
nuclear@0
|
29 #else
|
nuclear@0
|
30 /* this full expansion will be performed in the implementation (sanegl.c) */
|
nuclear@0
|
31 #define GLATTR1(name, type, suffix, conv) \
|
nuclear@0
|
32 void gl##name##1##suffix(GL##type x) \
|
nuclear@0
|
33 { gl##name##4f(conv(x), 0, 0, 1); }
|
nuclear@0
|
34
|
nuclear@0
|
35 #define GLATTR2(name, type, suffix, conv) \
|
nuclear@0
|
36 void gl##name##2##suffix(GL##type x, GL##type y) \
|
nuclear@0
|
37 { gl##name##4f(conv(x), conv(y), 0, 1); }
|
nuclear@0
|
38
|
nuclear@0
|
39 #define GLATTR3(name, type, suffix, conv) \
|
nuclear@0
|
40 void gl##name##3##suffix(GL##type x, GL##type y, GL##type z) \
|
nuclear@0
|
41 { gl##name##4f(conv(x), conv(y), conv(z), 1); }
|
nuclear@0
|
42
|
nuclear@0
|
43 #define GLATTR4(name, type, suffix, conv) \
|
nuclear@0
|
44 void gl##name##3##suffix(GL##type x, GL##type y, GL##type z, GL##type w) \
|
nuclear@0
|
45 { gl##name##4f(conv(x), conv(y), conv(z), conv(w)); }
|
nuclear@0
|
46
|
nuclear@0
|
47 #define GLATTR1V(name, type, suffix, conv) \
|
nuclear@0
|
48 void gl##name##1##suffix##v(const GL##type *p) \
|
nuclear@0
|
49 { gl##name##4f(conv(*p), 0, 0, 1); }
|
nuclear@0
|
50
|
nuclear@0
|
51 #define GLATTR2V(name, type, suffix, conv) \
|
nuclear@0
|
52 void gl##name##2##suffix##v(const GL##type *p) \
|
nuclear@0
|
53 { gl##name##4f(conv(p[0]), conv(p[1]), 0, 1); }
|
nuclear@0
|
54
|
nuclear@0
|
55 #define GLATTR3V(name, type, suffix, conv) \
|
nuclear@0
|
56 void gl##name##3##suffix##v(const GL##type *p) \
|
nuclear@0
|
57 { gl##name##4f(conv(p[0]), conv(p[1]), conv(p[2]), 1); }
|
nuclear@0
|
58
|
nuclear@0
|
59 #define GLATTR4V(name, type, suffix, conv) \
|
nuclear@0
|
60 void gl##name##4##suffix##v(const GL##type *p) \
|
nuclear@0
|
61 { gl##name##4f(conv(p[0]), conv(p[1]), conv(p[2]), conv(p[3])); }
|
nuclear@0
|
62 #endif
|
nuclear@0
|
63
|
nuclear@0
|
64 /* n-arg functions */
|
nuclear@0
|
65 GLATTR2(Vertex, float, f, (float))
|
nuclear@0
|
66 GLATTR3(Vertex, float, f, (float))
|
nuclear@0
|
67
|
nuclear@0
|
68 GLATTR2(Vertex, double, d, (float))
|
nuclear@0
|
69 GLATTR3(Vertex, double, d, (float))
|
nuclear@0
|
70 GLATTR4(Vertex, double, d, (float))
|
nuclear@0
|
71
|
nuclear@0
|
72 GLATTR2(Vertex, int, i, (float))
|
nuclear@0
|
73 GLATTR3(Vertex, int, i, (float))
|
nuclear@0
|
74 GLATTR4(Vertex, int, i, (float))
|
nuclear@0
|
75
|
nuclear@0
|
76 GLATTR2(Vertex, short, s, (float))
|
nuclear@0
|
77 GLATTR3(Vertex, short, s, (float))
|
nuclear@0
|
78 GLATTR4(Vertex, short, s, (float))
|
nuclear@0
|
79
|
nuclear@0
|
80 GLATTR3(Color, float, f, (float))
|
nuclear@0
|
81 GLATTR3(Color, double, d, (float))
|
nuclear@0
|
82 GLATTR4(Color, double, d, (float))
|
nuclear@0
|
83
|
nuclear@0
|
84 GLATTR3(Color, byte, b, (1.0f / CHAR_MAX) * (float))
|
nuclear@0
|
85 GLATTR4(Color, byte, b, (1.0f / CHAR_MAX) * (float))
|
nuclear@0
|
86
|
nuclear@0
|
87 GLATTR3(Color, ubyte, ub, (1.0f / UCHAR_MAX) * (float))
|
nuclear@0
|
88 GLATTR4(Color, ubyte, ub, (1.0f / UCHAR_MAX) * (float))
|
nuclear@0
|
89
|
nuclear@0
|
90 GLATTR3(Color, short, s, (1.0f / SHRT_MAX) * (float))
|
nuclear@0
|
91 GLATTR4(Color, short, s, (1.0f / SHRT_MAX) * (float))
|
nuclear@0
|
92
|
nuclear@0
|
93 GLATTR3(Color, ushort, us, (1.0f / USHRT_MAX) * (float))
|
nuclear@0
|
94 GLATTR4(Color, ushort, us, (1.0f / USHRT_MAX) * (float))
|
nuclear@0
|
95
|
nuclear@0
|
96 GLATTR3(Color, int, i, (1.0f / INT_MAX) * (float))
|
nuclear@0
|
97 GLATTR4(Color, int, i, (1.0f / INT_MAX) * (float))
|
nuclear@0
|
98
|
nuclear@0
|
99 GLATTR3(Color, uint, ui, (1.0f / UINT_MAX) * (float))
|
nuclear@0
|
100 GLATTR4(Color, uint, ui, (1.0f / UINT_MAX) * (float))
|
nuclear@0
|
101
|
nuclear@0
|
102 GLATTR1(TexCoord, float, f, (float))
|
nuclear@0
|
103 GLATTR2(TexCoord, float, f, (float))
|
nuclear@0
|
104 GLATTR3(TexCoord, float, f, (float))
|
nuclear@0
|
105
|
nuclear@0
|
106 GLATTR1(TexCoord, double, d, (float))
|
nuclear@0
|
107 GLATTR2(TexCoord, double, d, (float))
|
nuclear@0
|
108 GLATTR3(TexCoord, double, d, (float))
|
nuclear@0
|
109 GLATTR4(TexCoord, double, d, (float))
|
nuclear@0
|
110
|
nuclear@0
|
111 GLATTR1(TexCoord, int, i, (float))
|
nuclear@0
|
112 GLATTR2(TexCoord, int, i, (float))
|
nuclear@0
|
113 GLATTR3(TexCoord, int, i, (float))
|
nuclear@0
|
114 GLATTR4(TexCoord, int, i, (float))
|
nuclear@0
|
115
|
nuclear@0
|
116 GLATTR1(TexCoord, short, s, (float))
|
nuclear@0
|
117 GLATTR2(TexCoord, short, s, (float))
|
nuclear@0
|
118 GLATTR3(TexCoord, short, s, (float))
|
nuclear@0
|
119 GLATTR4(TexCoord, short, s, (float))
|
nuclear@0
|
120
|
nuclear@0
|
121 /* vector functions */
|
nuclear@0
|
122 GLATTR2V(Vertex, float, f, (float))
|
nuclear@0
|
123 GLATTR3V(Vertex, float, f, (float))
|
nuclear@0
|
124
|
nuclear@0
|
125 GLATTR2V(Vertex, double, d, (float))
|
nuclear@0
|
126 GLATTR3V(Vertex, double, d, (float))
|
nuclear@0
|
127 GLATTR4V(Vertex, double, d, (float))
|
nuclear@0
|
128
|
nuclear@0
|
129 GLATTR2V(Vertex, int, i, (float))
|
nuclear@0
|
130 GLATTR3V(Vertex, int, i, (float))
|
nuclear@0
|
131 GLATTR4V(Vertex, int, i, (float))
|
nuclear@0
|
132
|
nuclear@0
|
133 GLATTR2V(Vertex, short, s, (float))
|
nuclear@0
|
134 GLATTR3V(Vertex, short, s, (float))
|
nuclear@0
|
135 GLATTR4V(Vertex, short, s, (float))
|
nuclear@0
|
136
|
nuclear@0
|
137 GLATTR3V(Color, float, f, (float))
|
nuclear@0
|
138 GLATTR3V(Color, double, d, (float))
|
nuclear@0
|
139 GLATTR4V(Color, double, d, (float))
|
nuclear@0
|
140
|
nuclear@0
|
141 GLATTR1V(TexCoord, float, f, (float))
|
nuclear@0
|
142 GLATTR2V(TexCoord, float, f, (float))
|
nuclear@0
|
143 GLATTR3V(TexCoord, float, f, (float))
|
nuclear@0
|
144
|
nuclear@0
|
145 GLATTR1V(TexCoord, double, d, (float))
|
nuclear@0
|
146 GLATTR2V(TexCoord, double, d, (float))
|
nuclear@0
|
147 GLATTR3V(TexCoord, double, d, (float))
|
nuclear@0
|
148 GLATTR4V(TexCoord, double, d, (float))
|
nuclear@0
|
149
|
nuclear@0
|
150 GLATTR1V(TexCoord, int, i, (float))
|
nuclear@0
|
151 GLATTR2V(TexCoord, int, i, (float))
|
nuclear@0
|
152 GLATTR3V(TexCoord, int, i, (float))
|
nuclear@0
|
153 GLATTR4V(TexCoord, int, i, (float))
|
nuclear@0
|
154
|
nuclear@0
|
155 GLATTR1V(TexCoord, short, s, (float))
|
nuclear@0
|
156 GLATTR2V(TexCoord, short, s, (float))
|
nuclear@0
|
157 GLATTR3V(TexCoord, short, s, (float))
|
nuclear@0
|
158 GLATTR4V(TexCoord, short, s, (float))
|
nuclear@0
|
159
|
nuclear@0
|
160
|
nuclear@0
|
161 #endif /* SANEGL_ATTR_H_ */
|