18 #ifndef ION_GFX_GLFUNCTIONS_H_
19 #define ION_GFX_GLFUNCTIONS_H_
21 #if !defined(ION_WRAP_GL_FUNC)
22 # error "ION_WRAP_GL_FUNC must be defined to include glfunctions.h"
25 #if !defined(ION_TRACE_ARG)
26 # define ION_TRACE_ARG(...)
32 typedef GLenum GLblendenum;
33 typedef GLenum GLstencilenum;
34 typedef GLint GLintenum;
35 typedef GLint GLtextureenum;
36 typedef GLbitfield GLmapaccess;
38 typedef GLfloat GLfloat1;
39 typedef GLfloat GLfloat2;
40 typedef GLfloat GLfloat3;
41 typedef GLfloat GLfloat4;
42 typedef GLfloat GLmatrix2;
43 typedef GLfloat GLmatrix3;
44 typedef GLfloat GLmatrix4;
49 typedef GLuint GLuint1;
50 typedef GLuint GLuint2;
51 typedef GLuint GLuint3;
52 typedef GLuint GLuint4;
56 #define ION_WRAP_GL_FUNC0(group, name, return_type) \
57 ION_WRAP_GL_FUNC(group, name, return_type, (), (), "")
59 #define ION_WRAP_GL_FUNC1(group, name, return_type, t1, a1) \
60 ION_WRAP_GL_FUNC(group, \
65 ION_TRACE_ARG(name, t1, a1))
67 #define ION_WRAP_GL_FUNC2(group, name, return_type, \
69 ION_WRAP_GL_FUNC(group, name, return_type, \
72 ION_TRACE_ARG(name, t1, a1) << ", " << \
73 ION_TRACE_ARG(name, t2, a2))
75 #define ION_WRAP_GL_FUNC3(group, name, return_type, \
76 t1, a1, t2, a2, t3, a3) \
77 ION_WRAP_GL_FUNC(group, name, return_type, \
78 (t1 a1, t2 a2, t3 a3), \
80 ION_TRACE_ARG(name, t1, a1) << ", " << \
81 ION_TRACE_ARG(name, t2, a2) << ", " << \
82 ION_TRACE_ARG(name, t3, a3))
84 #define ION_WRAP_GL_FUNC4(group, name, return_type, \
85 t1, a1, t2, a2, t3, a3, t4, a4) \
86 ION_WRAP_GL_FUNC(group, name, return_type, \
87 (t1 a1, t2 a2, t3 a3, t4 a4), \
89 ION_TRACE_ARG(name, t1, a1) << ", " << \
90 ION_TRACE_ARG(name, t2, a2) << ", " << \
91 ION_TRACE_ARG(name, t3, a3) << ", " << \
92 ION_TRACE_ARG(name, t4, a4))
94 #define ION_WRAP_GL_FUNC5(group, name, return_type, \
95 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5) \
96 ION_WRAP_GL_FUNC(group, name, return_type, \
97 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5), \
98 (a1, a2, a3, a4, a5), \
99 ION_TRACE_ARG(name, t1, a1) << ", " << \
100 ION_TRACE_ARG(name, t2, a2) << ", " << \
101 ION_TRACE_ARG(name, t3, a3) << ", " << \
102 ION_TRACE_ARG(name, t4, a4) << ", " << \
103 ION_TRACE_ARG(name, t5, a5))
105 #define ION_WRAP_GL_FUNC6(group, name, return_type, \
106 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, t6, a6) \
107 ION_WRAP_GL_FUNC(group, name, return_type, \
108 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6), \
109 (a1, a2, a3, a4, a5, a6), \
110 ION_TRACE_ARG(name, t1, a1) << ", " << \
111 ION_TRACE_ARG(name, t2, a2) << ", " << \
112 ION_TRACE_ARG(name, t3, a3) << ", " << \
113 ION_TRACE_ARG(name, t4, a4) << ", " << \
114 ION_TRACE_ARG(name, t5, a5) << ", " << \
115 ION_TRACE_ARG(name, t6, a6))
117 #define ION_WRAP_GL_FUNC7(group, name, return_type, \
118 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
120 ION_WRAP_GL_FUNC(group, name, return_type, \
121 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7), \
122 (a1, a2, a3, a4, a5, a6, a7), \
123 ION_TRACE_ARG(name, t1, a1) << ", " << \
124 ION_TRACE_ARG(name, t2, a2) << ", " << \
125 ION_TRACE_ARG(name, t3, a3) << ", " << \
126 ION_TRACE_ARG(name, t4, a4) << ", " << \
127 ION_TRACE_ARG(name, t5, a5) << ", " << \
128 ION_TRACE_ARG(name, t6, a6) << ", " << \
129 ION_TRACE_ARG(name, t7, a7))
131 #define ION_WRAP_GL_FUNC8(group, name, return_type, \
132 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
133 t6, a6, t7, a7, t8, a8) \
134 ION_WRAP_GL_FUNC(group, name, return_type, \
135 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, t8 a8), \
136 (a1, a2, a3, a4, a5, a6, a7, a8), \
137 ION_TRACE_ARG(name, t1, a1) << ", " << \
138 ION_TRACE_ARG(name, t2, a2) << ", " << \
139 ION_TRACE_ARG(name, t3, a3) << ", " << \
140 ION_TRACE_ARG(name, t4, a4) << ", " << \
141 ION_TRACE_ARG(name, t5, a5) << ", " << \
142 ION_TRACE_ARG(name, t6, a6) << ", " << \
143 ION_TRACE_ARG(name, t7, a7) << ", " << \
144 ION_TRACE_ARG(name, t8, a8))
146 #define ION_WRAP_GL_FUNC9(group, name, return_type, \
147 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
148 t6, a6, t7, a7, t8, a8, t9, a9) \
149 ION_WRAP_GL_FUNC(group, name, return_type, \
150 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, \
152 (a1, a2, a3, a4, a5, a6, a7, a8, a9), \
153 ION_TRACE_ARG(name, t1, a1) << ", " << \
154 ION_TRACE_ARG(name, t2, a2) << ", " << \
155 ION_TRACE_ARG(name, t3, a3) << ", " << \
156 ION_TRACE_ARG(name, t4, a4) << ", " << \
157 ION_TRACE_ARG(name, t5, a5) << ", " << \
158 ION_TRACE_ARG(name, t6, a6) << ", " << \
159 ION_TRACE_ARG(name, t7, a7) << ", " << \
160 ION_TRACE_ARG(name, t8, a8) << ", " << \
161 ION_TRACE_ARG(name, t9, a9))
163 #define ION_WRAP_GL_FUNC10(group, name, return_type, \
164 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
165 t6, a6, t7, a7, t8, a8, t9, a9, t10, a10) \
166 ION_WRAP_GL_FUNC(group, name, return_type, \
167 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, \
168 t8 a8, t9 a9, t10 a10), \
169 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10), \
170 ION_TRACE_ARG(name, t1, a1) << ", " << \
171 ION_TRACE_ARG(name, t2, a2) << ", " << \
172 ION_TRACE_ARG(name, t3, a3) << ", " << \
173 ION_TRACE_ARG(name, t4, a4) << ", " << \
174 ION_TRACE_ARG(name, t5, a5) << ", " << \
175 ION_TRACE_ARG(name, t6, a6) << ", " << \
176 ION_TRACE_ARG(name, t7, a7) << ", " << \
177 ION_TRACE_ARG(name, t8, a8) << ", " << \
178 ION_TRACE_ARG(name, t9, a9) << ", " << \
179 ION_TRACE_ARG(name, t10, a10))
181 #define ION_WRAP_GL_FUNC11(group, name, return_type, \
182 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
183 t6, a6, t7, a7, t8, a8, t9, a9, t10, a10, \
185 ION_WRAP_GL_FUNC(group, name, return_type, \
186 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, \
187 t8 a8, t9 a9, t10 a10, t11 a11), \
188 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), \
189 ION_TRACE_ARG(name, t1, a1) << ", " << \
190 ION_TRACE_ARG(name, t2, a2) << ", " << \
191 ION_TRACE_ARG(name, t3, a3) << ", " << \
192 ION_TRACE_ARG(name, t4, a4) << ", " << \
193 ION_TRACE_ARG(name, t5, a5) << ", " << \
194 ION_TRACE_ARG(name, t6, a6) << ", " << \
195 ION_TRACE_ARG(name, t7, a7) << ", " << \
196 ION_TRACE_ARG(name, t8, a8) << ", " << \
197 ION_TRACE_ARG(name, t9, a9) << ", " << \
198 ION_TRACE_ARG(name, t10, a10) << ", " << \
199 ION_TRACE_ARG(name, t11, a11))
201 #define ION_WRAP_GL_FUNC12(group, name, return_type, \
202 t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, \
203 t6, a6, t7, a7, t8, a8, t9, a9, t10, a10, \
204 t11, a11, t12, a12) \
205 ION_WRAP_GL_FUNC(group, name, return_type, \
206 (t1 a1, t2 a2, t3 a3, t4 a4, t5 a5, t6 a6, t7 a7, \
207 t8 a8, t9 a9, t10 a10, t11 a11, t12 a12), \
208 (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), \
209 ION_TRACE_ARG(name, t1, a1) << ", " << \
210 ION_TRACE_ARG(name, t2, a2) << ", " << \
211 ION_TRACE_ARG(name, t3, a3) << ", " << \
212 ION_TRACE_ARG(name, t4, a4) << ", " << \
213 ION_TRACE_ARG(name, t5, a5) << ", " << \
214 ION_TRACE_ARG(name, t6, a6) << ", " << \
215 ION_TRACE_ARG(name, t7, a7) << ", " << \
216 ION_TRACE_ARG(name, t8, a8) << ", " << \
217 ION_TRACE_ARG(name, t9, a9) << ", " << \
218 ION_TRACE_ARG(name, t10, a10) << ", " << \
219 ION_TRACE_ARG(name, t11, a11) << ", " << \
220 ION_TRACE_ARG(name, t12, a12))
228 index, const GLchar*,
name)
236 blue, GLfloat, alpha)
243 GLblendenum, dfactor_rgb, GLblendenum, sfactor_alpha,
244 GLblendenum, dfactor_alpha)
246 const GLvoid*, data, GLenum, usage)
248 GLsizeiptr, size, const GLvoid*, data)
252 blue, GLfloat, alpha)
256 GLboolean, blue, GLboolean, alpha)
259 level, GLenum, internal_format, GLsizei,
width, GLsizei,
260 height, GLint, border, GLsizei, image_size, const GLvoid*,
263 level, GLint, xoffset, GLint, yoffset, GLsizei, width,
264 GLsizei, height, GLenum, format, GLsizei, imageSize,
267 GLenum, internalformat, GLint, x, GLint, y, GLsizei, width,
268 GLsizei, height, GLint, border)
270 GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei,
271 width, GLsizei, height)
294 GLenum,
type, const GLvoid*, indices)
300 attachment, GLenum, renderbuffertarget, GLuint, renderbuffer)
302 attachment, GLenum, textarget, GLuint,
texture, GLint, level)
312 GLsizei, bufSize, GLsizei*,
length, GLint*, size, GLenum*,
315 GLsizei, bufSize, GLsizei*, length, GLint*, size, GLenum*,
318 maxCount, GLsizei*, count, GLuint*, shaders)
327 target, GLenum, attachment, GLenum, pname, GLint*, params)
330 buf_size, GLsizei*, length, GLchar*, info_log)
334 GLenum, pname, GLint*, params)
336 buf_size, GLsizei*, length, GLchar*, info_log)
338 GLenum, precisionType, GLint*, range, GLint*,
precision)
340 buf_size, GLsizei*, length, GLchar*, source)
373 GLsizei, height, GLenum, format, GLenum, type, GLvoid*, data)
376 internalformat, GLsizei, width, GLsizei, height)
382 GLenum, binaryformat, const
void*, binary, GLsizei, length)
384 const GLchar**,
string, const GLint*, length)
388 GLint, ref, GLuint, mask)
392 dpfail, GLstencilenum, dppass)
394 sfail, GLstencilenum, dpfail, GLstencilenum, dppass)
396 GLenum, internal_format, GLsizei, width, GLsizei, height,
397 GLint, border, GLenum, format, GLenum, type, const GLvoid*,
402 const GLfloat*, params)
404 GLtextureenum, param)
406 const GLint*, params)
408 GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei,
409 height, GLenum, format, GLenum, type, const GLvoid*, data)
412 const GLfloat1*, value)
415 const GLint1*, value)
419 const GLfloat2*, value)
422 const GLint2*, value)
426 const GLfloat3*, value)
430 const GLint3*, value)
432 v1, GLfloat, v2, GLfloat, v3)
434 const GLfloat4*, value)
436 GLint, v2, GLint, v3)
438 const GLint4*, value)
440 GLboolean, transpose, const GLmatrix2*, value)
442 GLboolean, transpose, const GLmatrix3*, value)
444 GLboolean, transpose, const GLmatrix4*, value)
455 GLfloat, v1, GLfloat, v2)
459 GLfloat, v1, GLfloat, v2, GLfloat, v3)
463 GLenum, type, GLboolean, normalized, GLsizei, stride,
474 object, GLsizei, bufSize, GLsizei*, length, GLchar*,
label)
476 GLsizei, length, const GLchar*,
label)
480 const GLchar*, marker)
483 const GLchar*, marker)
487 callback, const
void*, userParam)
489 GLenum, type, GLenum, severity, GLsizei, count, GLuint*, ids,
492 type, GLuint,
id, GLenum, severity, GLsizei, length,
495 GLsizei, bufSize, GLenum*, sources, GLenum*, types, GLuint*,
496 ids, GLenum*, severities, GLsizei*, lengths, GLchar*,
503 srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint,
504 dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum,
509 GLenum, target, GLsizei, samples, GLenum, internal_format,
510 GLsizei, width, GLsizei, height)
514 location, GLuint*, params)
517 count, const GLuint1*, value)
521 count, const GLuint2*, value)
523 GLuint, v1, GLuint, v2)
525 count, const GLuint3*, value)
527 GLuint, v1, GLuint, v2, GLuint, v3)
529 count, const GLuint4*, value)
537 GLenum, target,
void*,
image)
545 GLint, first, GLsizei, count, GLsizei, primCount)
547 GLsizei, count, GLenum, type, const GLvoid*, indices, GLsizei,
557 GLenum, pname, GLvoid**, params)
562 target, GLintptr, offset, GLsizeiptr, length)
564 GLintptr, offset, GLsizeiptr, length, GLmapaccess, access)
568 void, GLenum, read_target, GLenum, write_target,
569 GLintptr, read_offset, GLintptr, write_offset,
574 MultisampleFramebufferResolve, ResolveMultisampleFramebuffer,
void)
583 const GLuint*, samplers)
587 GLenum, pname, GLfloat*, params)
589 GLenum, pname, GLint*, params)
592 GLenum, pname, GLfloat, param)
594 GLenum, pname, const GLfloat*, params)
596 GLenum, pname, GLtextureenum, param)
598 GLenum, pname, const GLint*, params)
607 bufSize, GLsizei*, length, GLint*, values)
613 level, GLenum, internal_format, GLsizei, width, GLsizei,
614 height, GLsizei, depth, GLint, border, GLsizei, image_size,
617 GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset,
618 GLsizei, width, GLsizei, height, GLsizei, depth, GLenum,
619 format, GLsizei, imageSize, const GLvoid*, data)
621 level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint,
622 x, GLint, y, GLsizei, width, GLsizei, height)
624 GLenum, internal_format, GLsizei, width, GLsizei, height,
625 GLsizei, depth, GLint, border, GLenum, format, GLenum, type,
626 const GLvoid*, pixels)
628 GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei,
629 width, GLsizei, height, GLsizei, depth, GLenum, format,
630 GLenum, type, const GLvoid*, data)
634 target, GLsizei, samples, GLenum, internal_format, GLsizei,
635 width, GLsizei, height, GLboolean, fixed_sample_locations)
637 target, GLsizei, samples, GLenum, internal_format, GLsizei,
638 width, GLsizei, height, GLsizei, depth, GLboolean,
639 fixed_sample_locations)
641 GLuint, index, GLfloat*, val)
647 levels, GLenum, internalformat, GLsizei, width, GLsizei,
650 levels, GLenum, internalformat, GLsizei, width, GLsizei,
651 height, GLsizei, depth)
655 GLenum, target, GLsizei, samples, GLenum, internal_format,
656 GLsizei, width, GLsizei, height, GLboolean,
657 fixed_sample_locations)
659 GLenum, target, GLsizei, samples, GLenum, internal_format,
660 GLsizei, width, GLsizei, height, GLsizei, depth, GLboolean,
661 fixed_sample_locations)
674 program, GLuint, index, GLsizei, buf_size, GLsizei*, length,
675 GLsizei*, size, GLenum*, type, GLchar*, name)
681 program, GLsizei, count, const GLchar**, varyings, GLenum,
687 const GLuint*, arrays)
695 internal_format, GLint,
buffer)
715 #undef ION_WRAP_GL_FUNC
716 #undef ION_WRAP_GL_FUNC0
717 #undef ION_WRAP_GL_FUNC1
718 #undef ION_WRAP_GL_FUNC2
719 #undef ION_WRAP_GL_FUNC3
720 #undef ION_WRAP_GL_FUNC4
721 #undef ION_WRAP_GL_FUNC5
722 #undef ION_WRAP_GL_FUNC6
723 #undef ION_WRAP_GL_FUNC7
724 #undef ION_WRAP_GL_FUNC8
725 #undef ION_WRAP_GL_FUNC9
726 #undef ION_WRAP_GL_FUNC10
727 #undef ION_WRAP_GL_FUNC11
728 #undef ION_WRAP_GL_FUNC12
730 #endif // ION_GFX_GLFUNCTIONS_H_
733 #undef ION_GFX_GLFUNCTIONS_H_
#define ION_WRAP_GL_FUNC9(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5,t6, a6, t7, a7, t8, a8, t9, a9)
#define ION_WRAP_GL_FUNC4(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4)
#define ION_WRAP_GL_FUNC8(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5,t6, a6, t7, a7, t8, a8)
#define ION_WRAP_GL_FUNC5(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5)
#define ION_WRAP_GL_FUNC1(group, name, return_type, t1, a1)
#define ION_WRAP_GL_FUNC10(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5,t6, a6, t7, a7, t8, a8, t9, a9, t10, a10)
#define ION_WRAP_GL_FUNC0(group, name, return_type)
#define ION_WRAP_GL_FUNC7(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5,t6, a6, t7, a7)
const Grid & image
The original monochrome image data, as doubles (0 - 1).
#define ION_WRAP_GL_FUNC2(group, name, return_type,t1, a1, t2, a2)
#define ION_WRAP_GL_FUNC6(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5, t6, a6)
TexturePtr texture
The Texture to add sub-image data to.
#define ION_WRAP_GL_FUNC3(group, name, return_type,t1, a1, t2, a2, t3, a3)
#define ION_WRAP_GL_FUNC11(group, name, return_type,t1, a1, t2, a2, t3, a3, t4, a4, t5, a5,t6, a6, t7, a7, t8, a8, t9, a9, t10, a10,t11, a11)