sanegl

annotate sanegl_attr.h @ 0:00b315b6db1e

sanegl initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 23 Jun 2011 05:19:40 +0300
parents
children
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_ */