opengl 0.7.0.pre1-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. data/.gemtest +0 -0
  2. data/.gitignore +8 -0
  3. data/History.txt +36 -0
  4. data/MIT-LICENSE +18 -0
  5. data/Manifest.txt +140 -0
  6. data/README.rdoc +51 -0
  7. data/Rakefile +129 -0
  8. data/Rakefile.cross +104 -0
  9. data/doc/build_install.txt +119 -0
  10. data/doc/extensions.txt.in +348 -0
  11. data/doc/history.txt +66 -0
  12. data/doc/requirements_and_design.txt +117 -0
  13. data/doc/roadmap.txt +28 -0
  14. data/doc/scientific_use.txt +35 -0
  15. data/doc/supplies/page_template.html +71 -0
  16. data/doc/thanks.txt +29 -0
  17. data/doc/tutorial.txt +469 -0
  18. data/examples/NeHe/nehe_lesson02.rb +117 -0
  19. data/examples/NeHe/nehe_lesson03.rb +122 -0
  20. data/examples/NeHe/nehe_lesson04.rb +133 -0
  21. data/examples/NeHe/nehe_lesson05.rb +186 -0
  22. data/examples/NeHe/nehe_lesson36.rb +303 -0
  23. data/examples/OrangeBook/3Dlabs-License.txt +33 -0
  24. data/examples/OrangeBook/brick.frag +36 -0
  25. data/examples/OrangeBook/brick.rb +376 -0
  26. data/examples/OrangeBook/brick.vert +41 -0
  27. data/examples/OrangeBook/particle.frag +17 -0
  28. data/examples/OrangeBook/particle.rb +406 -0
  29. data/examples/OrangeBook/particle.vert +38 -0
  30. data/examples/README +16 -0
  31. data/examples/RedBook/aapoly.rb +142 -0
  32. data/examples/RedBook/aargb.rb +119 -0
  33. data/examples/RedBook/accanti.rb +162 -0
  34. data/examples/RedBook/accpersp.rb +215 -0
  35. data/examples/RedBook/alpha.rb +123 -0
  36. data/examples/RedBook/alpha3D.rb +158 -0
  37. data/examples/RedBook/bezcurve.rb +105 -0
  38. data/examples/RedBook/bezmesh.rb +137 -0
  39. data/examples/RedBook/checker.rb +124 -0
  40. data/examples/RedBook/clip.rb +95 -0
  41. data/examples/RedBook/colormat.rb +135 -0
  42. data/examples/RedBook/cube.rb +69 -0
  43. data/examples/RedBook/depthcue.rb +99 -0
  44. data/examples/RedBook/dof.rb +205 -0
  45. data/examples/RedBook/double.rb +105 -0
  46. data/examples/RedBook/drawf.rb +91 -0
  47. data/examples/RedBook/feedback.rb +145 -0
  48. data/examples/RedBook/fog.rb +167 -0
  49. data/examples/RedBook/font.rb +151 -0
  50. data/examples/RedBook/hello.rb +79 -0
  51. data/examples/RedBook/image.rb +137 -0
  52. data/examples/RedBook/jitter.rb +207 -0
  53. data/examples/RedBook/lines.rb +128 -0
  54. data/examples/RedBook/list.rb +111 -0
  55. data/examples/RedBook/material.rb +275 -0
  56. data/examples/RedBook/mipmap.rb +156 -0
  57. data/examples/RedBook/model.rb +113 -0
  58. data/examples/RedBook/movelight.rb +132 -0
  59. data/examples/RedBook/pickdepth.rb +179 -0
  60. data/examples/RedBook/planet.rb +108 -0
  61. data/examples/RedBook/quadric.rb +158 -0
  62. data/examples/RedBook/robot.rb +115 -0
  63. data/examples/RedBook/select.rb +196 -0
  64. data/examples/RedBook/smooth.rb +95 -0
  65. data/examples/RedBook/stencil.rb +163 -0
  66. data/examples/RedBook/stroke.rb +167 -0
  67. data/examples/RedBook/surface.rb +166 -0
  68. data/examples/RedBook/teaambient.rb +132 -0
  69. data/examples/RedBook/teapots.rb +182 -0
  70. data/examples/RedBook/tess.rb +183 -0
  71. data/examples/RedBook/texbind.rb +147 -0
  72. data/examples/RedBook/texgen.rb +169 -0
  73. data/examples/RedBook/texturesurf.rb +128 -0
  74. data/examples/RedBook/varray.rb +159 -0
  75. data/examples/RedBook/wrap.rb +148 -0
  76. data/examples/misc/OGLBench.rb +337 -0
  77. data/examples/misc/anisotropic.rb +194 -0
  78. data/examples/misc/fbo_test.rb +356 -0
  79. data/examples/misc/font-glut.rb +46 -0
  80. data/examples/misc/glfwtest.rb +30 -0
  81. data/examples/misc/plane.rb +161 -0
  82. data/examples/misc/readpixel.rb +65 -0
  83. data/examples/misc/sdltest.rb +34 -0
  84. data/examples/misc/trislam.rb +828 -0
  85. data/ext/common/common.h +448 -0
  86. data/ext/common/conv.h +234 -0
  87. data/ext/common/funcdef.h +280 -0
  88. data/ext/common/gl-enums.h +10031 -0
  89. data/ext/common/gl-error.h +23 -0
  90. data/ext/common/gl-types.h +67 -0
  91. data/ext/common/glu-enums.h +463 -0
  92. data/ext/gl/extconf.rb +43 -0
  93. data/ext/gl/gl-1.0-1.1.c +2811 -0
  94. data/ext/gl/gl-1.2.c +814 -0
  95. data/ext/gl/gl-1.3.c +443 -0
  96. data/ext/gl/gl-1.4.c +348 -0
  97. data/ext/gl/gl-1.5.c +225 -0
  98. data/ext/gl/gl-2.0.c +657 -0
  99. data/ext/gl/gl-2.1.c +57 -0
  100. data/ext/gl/gl-enums.c +3354 -0
  101. data/ext/gl/gl-error.c +104 -0
  102. data/ext/gl/gl-ext-3dfx.c +27 -0
  103. data/ext/gl/gl-ext-arb.c +866 -0
  104. data/ext/gl/gl-ext-ati.c +41 -0
  105. data/ext/gl/gl-ext-ext.c +889 -0
  106. data/ext/gl/gl-ext-gremedy.c +41 -0
  107. data/ext/gl/gl-ext-nv.c +679 -0
  108. data/ext/gl/gl.c +216 -0
  109. data/ext/glu/extconf.rb +51 -0
  110. data/ext/glu/glu-enums.c +164 -0
  111. data/ext/glu/glu.c +1530 -0
  112. data/ext/glut/extconf.rb +67 -0
  113. data/ext/glut/glut.c +1624 -0
  114. data/lib/opengl.rb +89 -0
  115. data/test/README +10 -0
  116. data/test/tc_common.rb +98 -0
  117. data/test/tc_ext_arb.rb +467 -0
  118. data/test/tc_ext_ati.rb +33 -0
  119. data/test/tc_ext_ext.rb +551 -0
  120. data/test/tc_ext_gremedy.rb +36 -0
  121. data/test/tc_ext_nv.rb +357 -0
  122. data/test/tc_func_10_11.rb +1281 -0
  123. data/test/tc_func_12.rb +186 -0
  124. data/test/tc_func_13.rb +229 -0
  125. data/test/tc_func_14.rb +197 -0
  126. data/test/tc_func_15.rb +270 -0
  127. data/test/tc_func_20.rb +346 -0
  128. data/test/tc_func_21.rb +541 -0
  129. data/test/tc_glu.rb +310 -0
  130. data/test/tc_include_gl.rb +35 -0
  131. data/test/tc_misc.rb +54 -0
  132. data/test/tc_require_gl.rb +34 -0
  133. data/utils/README +11 -0
  134. data/utils/enumgen.rb +112 -0
  135. data/utils/extlistgen.rb +90 -0
  136. data/utils/mkdn2html.rb +59 -0
  137. data/utils/post-mkdn2html.rb +91 -0
  138. data/website/images/ogl.jpg +0 -0
  139. data/website/images/tab_bottom.gif +0 -0
  140. data/website/style.css +198 -0
  141. metadata +274 -0
data/ext/gl/gl-1.2.c ADDED
@@ -0,0 +1,814 @@
1
+ /*
2
+ * Copyright (C) 1999 - 2005 Yoshi <yoshi@giganet.net>
3
+ * Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
4
+ * Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
5
+ *
6
+ * This program is distributed under the terms of the MIT license.
7
+ * See the included MIT-LICENSE file for the terms of this license.
8
+ *
9
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
12
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
13
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
14
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
15
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
+ */
17
+
18
+ #include "../common/common.h"
19
+
20
+ /* OpenGL 1.2 functions */
21
+
22
+ GL_FUNC_LOAD_4(BlendColor,GLvoid, GLclampf,GLclampf,GLclampf,GLclampf, "1.2")
23
+ GL_FUNC_LOAD_1(BlendEquation,GLvoid, GLenum, "1.2")
24
+ GL_FUNC_LOAD_5(CopyColorTable,GLvoid, GLenum,GLenum,GLint,GLint,GLsizei, "1.2")
25
+ GL_FUNC_LOAD_5(CopyColorSubTable,GLvoid, GLenum,GLsizei,GLint,GLint,GLsizei, "1.2")
26
+ GL_FUNC_LOAD_3(ConvolutionParameterf,GLvoid, GLenum,GLenum,GLfloat, "1.2")
27
+ GL_FUNC_LOAD_3(ConvolutionParameteri,GLvoid, GLenum,GLenum,GLint, "1.2")
28
+ GL_FUNC_LOAD_5(CopyConvolutionFilter1D,GLvoid, GLenum,GLenum,GLint,GLint,GLsizei, "1.2")
29
+ GL_FUNC_LOAD_6(CopyConvolutionFilter2D,GLvoid, GLenum,GLenum,GLint,GLint,GLsizei,GLsizei, "1.2")
30
+ GL_FUNC_LOAD_4(Histogram,GLvoid, GLenum,GLsizei,GLenum,GLboolean, "1.2")
31
+ GL_FUNC_LOAD_3(Minmax,GLvoid, GLenum,GLenum,GLboolean, "1.2")
32
+ GL_FUNC_LOAD_1(ResetHistogram,GLvoid, GLenum, "1.2")
33
+ GL_FUNC_LOAD_1(ResetMinmax,GLvoid, GLenum, "1.2")
34
+ GL_FUNC_LOAD_9(CopyTexSubImage3D,GLvoid, GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei, "1.2")
35
+
36
+ static void (APIENTRY * fptr_glDrawRangeElements)(GLenum,GLuint,GLuint,GLsizei,GLenum,GLvoid*);
37
+ static VALUE
38
+ gl_DrawRangeElements(obj,arg1,arg2,arg3,arg4,arg5,arg6)
39
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
40
+ {
41
+ GLenum mode;
42
+ GLuint start;
43
+ GLuint end;
44
+ GLsizei count;
45
+ GLenum type;
46
+ LOAD_GL_FUNC(glDrawRangeElements,"1.2")
47
+ mode = (GLenum)NUM2INT(arg1);
48
+ start = (GLuint)NUM2UINT(arg2);
49
+ end = (GLuint)NUM2UINT(arg3);
50
+ count = (GLsizei)NUM2UINT(arg4);
51
+ type = (GLenum)NUM2INT(arg5);
52
+ if (CheckBufferBinding(GL_ELEMENT_ARRAY_BUFFER_BINDING)) {
53
+ fptr_glDrawRangeElements(mode, start, end, count, type, (GLvoid *)NUM2LONG(arg6));
54
+ } else {
55
+ VALUE data;
56
+ data = pack_array_or_pass_string(type,arg6);
57
+ fptr_glDrawRangeElements(mode, start, end, count, type, RSTRING_PTR(data));
58
+ }
59
+ CHECK_GLERROR
60
+ return Qnil;
61
+ }
62
+
63
+ static void (APIENTRY * fptr_glColorTable)(GLenum,GLenum,GLsizei,GLenum,GLenum,GLvoid*);
64
+ static VALUE
65
+ gl_ColorTable(obj,arg1,arg2,arg3,arg4,arg5,arg6)
66
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
67
+ {
68
+ GLenum target;
69
+ GLenum internalformat;
70
+ GLsizei width;
71
+ GLenum format;
72
+ GLenum type;
73
+ LOAD_GL_FUNC(glColorTable,"1.2")
74
+ target = (GLenum)NUM2INT(arg1);
75
+ internalformat = (GLenum)NUM2INT(arg2);
76
+ width = (GLsizei)NUM2UINT(arg3);
77
+ format = (GLenum)NUM2INT(arg4);
78
+ type = (GLenum)NUM2INT(arg5);
79
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
80
+ fptr_glColorTable(target,internalformat,width,format,type,(GLvoid *)NUM2LONG(arg6));
81
+ } else {
82
+ VALUE data;
83
+ data = pack_array_or_pass_string(type,arg6);
84
+ CheckDataSize(type,format,width,data);
85
+ fptr_glColorTable(target,internalformat,width,format,type,(GLvoid*)RSTRING_PTR(data));
86
+ }
87
+ CHECK_GLERROR
88
+ return Qnil;
89
+ }
90
+
91
+ static void (APIENTRY * fptr_glColorTableParameterfv)(GLenum,GLenum,const GLfloat*);
92
+ static VALUE
93
+ gl_ColorTableParameterfv(obj,arg1,arg2,arg3)
94
+ VALUE obj,arg1,arg2,arg3;
95
+ {
96
+ GLenum target;
97
+ GLenum pname;
98
+ GLfloat params[4] = {(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0};
99
+ LOAD_GL_FUNC(glColorTableParameterfv,"1.2")
100
+ target = (GLenum)NUM2INT(arg1);
101
+ pname = (GLenum)NUM2INT(arg2);
102
+ Check_Type(arg3,T_ARRAY);
103
+ ary2cflt(arg3,params,4);
104
+ fptr_glColorTableParameterfv(target,pname,params);
105
+ CHECK_GLERROR
106
+ return Qnil;
107
+ }
108
+
109
+ static void (APIENTRY * fptr_glColorTableParameteriv)(GLenum,GLenum,const GLint*);
110
+ static VALUE
111
+ gl_ColorTableParameteriv(obj,arg1,arg2,arg3)
112
+ VALUE obj,arg1,arg2,arg3;
113
+ {
114
+ GLenum target;
115
+ GLenum pname;
116
+ GLint params[4] = {0,0,0,0};
117
+ LOAD_GL_FUNC(glColorTableParameteriv,"1.2")
118
+ target = (GLenum)NUM2INT(arg1);
119
+ pname = (GLenum)NUM2INT(arg2);
120
+ Check_Type(arg3,T_ARRAY);
121
+ ary2cint(arg3,params,4);
122
+ fptr_glColorTableParameteriv(target,pname,params);
123
+ CHECK_GLERROR
124
+ return Qnil;
125
+ }
126
+
127
+
128
+ static void (APIENTRY * fptr_glGetColorTableParameterfv)(GLenum,GLenum,GLfloat *);
129
+ static VALUE
130
+ gl_GetColorTableParameterfv(obj,arg1,arg2)
131
+ VALUE obj,arg1,arg2;
132
+ {
133
+ GLenum target;
134
+ GLenum pname;
135
+ GLfloat params[4] = {(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0};
136
+ GLsizei size;
137
+ LOAD_GL_FUNC(glGetColorTableParameterfv,"1.2")
138
+ target = (GLenum)NUM2INT(arg1);
139
+ pname = (GLenum)NUM2INT(arg2);
140
+ switch (pname) {
141
+ case GL_COLOR_TABLE_SCALE:
142
+ case GL_COLOR_TABLE_BIAS:
143
+ size = 4;
144
+ break;
145
+ default:
146
+ size = 1;
147
+ break;
148
+ }
149
+ fptr_glGetColorTableParameterfv(target,pname,params);
150
+ RET_ARRAY_OR_SINGLE(size,RETCONV_GLfloat,params)
151
+ }
152
+
153
+ static void (APIENTRY * fptr_glGetColorTableParameteriv)(GLenum,GLenum,GLint *);
154
+ static VALUE
155
+ gl_GetColorTableParameteriv(obj,arg1,arg2)
156
+ VALUE obj,arg1,arg2;
157
+ {
158
+ GLenum target;
159
+ GLenum pname;
160
+ GLint params[4] = {0,0,0,0};
161
+ GLsizei size;
162
+ LOAD_GL_FUNC(glGetColorTableParameteriv,"1.2")
163
+ target = (GLenum)NUM2INT(arg1);
164
+ pname = (GLenum)NUM2INT(arg2);
165
+ switch (pname) {
166
+ case GL_COLOR_TABLE_SCALE:
167
+ case GL_COLOR_TABLE_BIAS:
168
+ size = 4;
169
+ break;
170
+ default:
171
+ size = 1;
172
+ break;
173
+ }
174
+ fptr_glGetColorTableParameteriv(target,pname,params);
175
+ RET_ARRAY_OR_SINGLE(size,RETCONV_GLint,params)
176
+ }
177
+
178
+ static void (APIENTRY * fptr_glGetColorTable)(GLenum,GLenum,GLenum,GLvoid *);
179
+ static VALUE
180
+ gl_GetColorTable(obj,arg1,arg2,arg3)
181
+ VALUE obj,arg1,arg2,arg3;
182
+ {
183
+ GLenum target;
184
+ GLenum format;
185
+ GLenum type;
186
+ GLsizei width = 0;
187
+ VALUE data;
188
+ LOAD_GL_FUNC(glGetColorTable,"1.2")
189
+ LOAD_GL_FUNC(glGetColorTableParameteriv,"1.2")
190
+ target = (GLenum)NUM2INT(arg1);
191
+ format = (GLenum)NUM2INT(arg2);
192
+ type = (GLenum)NUM2INT(arg3);
193
+ fptr_glGetColorTableParameteriv(target,GL_COLOR_TABLE_WIDTH,&width);
194
+ CHECK_GLERROR
195
+ data = allocate_buffer_with_string(GetDataSize(type,format,width));
196
+ FORCE_PIXEL_STORE_MODE
197
+ fptr_glGetColorTable(target,format,type,(GLvoid*)RSTRING_PTR(data));
198
+ RESTORE_PIXEL_STORE_MODE
199
+ CHECK_GLERROR
200
+ return data;
201
+ }
202
+
203
+ static void (APIENTRY * fptr_glColorSubTable)(GLenum,GLsizei,GLsizei,GLenum,GLenum,const GLvoid *data);
204
+ static VALUE
205
+ gl_ColorSubTable(obj,arg1,arg2,arg3,arg4,arg5,arg6)
206
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
207
+ {
208
+ GLenum target;
209
+ GLsizei start;
210
+ GLsizei count;
211
+ GLenum format;
212
+ GLenum type;
213
+ LOAD_GL_FUNC(glColorSubTable,"1.2")
214
+ target = (GLenum)NUM2INT(arg1);
215
+ start = (GLsizei)NUM2UINT(arg2);
216
+ count = (GLsizei)NUM2UINT(arg3);
217
+ format = (GLenum)NUM2INT(arg4);
218
+ type = (GLenum)NUM2INT(arg5);
219
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
220
+ fptr_glColorSubTable(target,start,count,format,type,(GLvoid *)NUM2LONG(arg6));
221
+ } else {
222
+ VALUE data;
223
+ data = pack_array_or_pass_string(type,arg6);
224
+ CheckDataSize(type,format,count,data);
225
+ fptr_glColorSubTable(target,start,count,format,type,RSTRING_PTR(data));
226
+ }
227
+ CHECK_GLERROR
228
+ return Qnil;
229
+ }
230
+
231
+ static void (APIENTRY * fptr_glConvolutionFilter1D)(GLenum,GLenum,GLsizei,GLenum,GLenum,const GLvoid *);
232
+ static VALUE
233
+ gl_ConvolutionFilter1D(obj,arg1,arg2,arg3,arg4,arg5,arg6)
234
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
235
+ {
236
+ GLenum target;
237
+ GLenum internalformat;
238
+ GLsizei width;
239
+ GLenum format;
240
+ GLenum type;
241
+ LOAD_GL_FUNC(glConvolutionFilter1D,"1.2")
242
+ target = (GLenum)NUM2INT(arg1);
243
+ internalformat = (GLenum)NUM2INT(arg2);
244
+ width = (GLsizei)NUM2UINT(arg3);
245
+ format = (GLenum)NUM2INT(arg4);
246
+ type = (GLenum)NUM2INT(arg5);
247
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
248
+ fptr_glConvolutionFilter1D(target,internalformat,width,format,type,(GLvoid *)NUM2LONG(arg6));
249
+ } else {
250
+ VALUE data;
251
+ data = pack_array_or_pass_string(type,arg6);
252
+ CheckDataSize(type,format,width,data);
253
+ fptr_glConvolutionFilter1D(target,internalformat,width,format,type,RSTRING_PTR(data));
254
+ }
255
+ CHECK_GLERROR
256
+ return Qnil;
257
+ }
258
+
259
+ static void (APIENTRY * fptr_glConvolutionFilter2D)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const GLvoid *);
260
+ static VALUE
261
+ gl_ConvolutionFilter2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
262
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
263
+ {
264
+ GLenum target;
265
+ GLenum internalformat;
266
+ GLsizei width;
267
+ GLsizei height;
268
+ GLenum format;
269
+ GLenum type;
270
+ LOAD_GL_FUNC(glConvolutionFilter2D,"1.2")
271
+ target = (GLenum)NUM2INT(arg1);
272
+ internalformat = (GLenum)NUM2INT(arg2);
273
+ width = (GLsizei)NUM2UINT(arg3);
274
+ height = (GLsizei)NUM2UINT(arg4);
275
+ format = (GLenum)NUM2INT(arg5);
276
+ type = (GLenum)NUM2INT(arg6);
277
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
278
+ fptr_glConvolutionFilter2D(target,internalformat,width,height,format,type,(GLvoid *)NUM2LONG(arg7));
279
+ } else {
280
+ VALUE data;
281
+ data = pack_array_or_pass_string(type,arg7);
282
+ Check_Type(arg7,T_STRING);
283
+ CheckDataSize(type,format,width*height,data);
284
+ fptr_glConvolutionFilter2D(target,internalformat,width,height,format,type,RSTRING_PTR(data));
285
+ }
286
+ CHECK_GLERROR
287
+ return Qnil;
288
+ }
289
+
290
+ static void (APIENTRY * fptr_glConvolutionParameterfv)(GLenum,GLenum,const GLfloat *);
291
+ static VALUE
292
+ gl_ConvolutionParameterfv(obj,arg1,arg2,arg3)
293
+ VALUE obj,arg1,arg2,arg3;
294
+ {
295
+ GLenum target;
296
+ GLenum pname;
297
+ GLfloat params[4] = {(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0};
298
+ LOAD_GL_FUNC(glConvolutionParameterfv,"1.2")
299
+ target = (GLenum)NUM2INT(arg1);
300
+ pname = (GLenum)NUM2INT(arg2);
301
+ Check_Type(arg3,T_ARRAY);
302
+ ary2cflt(arg3,params,4);
303
+ fptr_glConvolutionParameterfv(target,pname,params);
304
+ CHECK_GLERROR
305
+ return Qnil;
306
+ }
307
+
308
+ static void (APIENTRY * fptr_glConvolutionParameteriv)(GLenum,GLenum,const GLint *);
309
+ static VALUE
310
+ gl_ConvolutionParameteriv(obj,arg1,arg2,arg3)
311
+ VALUE obj,arg1,arg2,arg3;
312
+ {
313
+ GLenum target;
314
+ GLenum pname;
315
+ GLint params[4] = {0,0,0,0};
316
+ LOAD_GL_FUNC(glConvolutionParameteriv,"1.2")
317
+ target = (GLenum)NUM2INT(arg1);
318
+ pname = (GLenum)NUM2INT(arg2);
319
+ Check_Type(arg3,T_ARRAY);
320
+ ary2cint(arg3,params,4);
321
+ fptr_glConvolutionParameteriv(target,pname,params);
322
+ CHECK_GLERROR
323
+ return Qnil;
324
+ }
325
+
326
+ static void (APIENTRY * fptr_glGetConvolutionParameterfv)(GLenum,GLenum,GLfloat *);
327
+ static VALUE
328
+ gl_GetConvolutionParameterfv(obj,arg1,arg2)
329
+ VALUE obj,arg1,arg2;
330
+ {
331
+ GLenum target;
332
+ GLenum pname;
333
+ GLfloat params[4] = {(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0,(GLfloat)0.0};
334
+ GLsizei size;
335
+ LOAD_GL_FUNC(glGetConvolutionParameterfv,"1.2")
336
+ target = (GLenum)NUM2INT(arg1);
337
+ pname = (GLenum)NUM2INT(arg2);
338
+ switch(pname) {
339
+ case GL_CONVOLUTION_BORDER_COLOR:
340
+ case GL_CONVOLUTION_FILTER_SCALE:
341
+ case GL_CONVOLUTION_FILTER_BIAS:
342
+ size = 4;
343
+ break;
344
+ default:
345
+ size = 1;
346
+ break;
347
+ }
348
+ fptr_glGetConvolutionParameterfv(target,pname,params);
349
+ RET_ARRAY_OR_SINGLE(size,RETCONV_GLfloat,params)
350
+ }
351
+
352
+ static void (APIENTRY * fptr_glGetConvolutionParameteriv)(GLenum,GLenum,GLint *);
353
+ static VALUE
354
+ gl_GetConvolutionParameteriv(obj,arg1,arg2)
355
+ VALUE obj,arg1,arg2;
356
+ {
357
+ GLenum target;
358
+ GLenum pname;
359
+ GLint params[4] = {0,0,0,0};
360
+ GLsizei size;
361
+ LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
362
+ target = (GLenum)NUM2INT(arg1);
363
+ pname = (GLenum)NUM2INT(arg2);
364
+ switch(pname) {
365
+ case GL_CONVOLUTION_BORDER_COLOR:
366
+ case GL_CONVOLUTION_FILTER_SCALE:
367
+ case GL_CONVOLUTION_FILTER_BIAS:
368
+ size = 4;
369
+ break;
370
+ default:
371
+ size = 1;
372
+ break;
373
+ }
374
+ fptr_glGetConvolutionParameteriv(target,pname,params);
375
+ RET_ARRAY_OR_SINGLE(size,RETCONV_GLint,params)
376
+ }
377
+
378
+ static void (APIENTRY * fptr_glGetConvolutionFilter)(GLenum,GLenum,GLenum,GLvoid *);
379
+ static VALUE
380
+ gl_GetConvolutionFilter(argc,argv,obj)
381
+ int argc;
382
+ VALUE *argv;
383
+ VALUE obj;
384
+ {
385
+ GLenum target;
386
+ GLenum format;
387
+ GLenum type;
388
+ GLint size = 0;
389
+ VALUE data;
390
+ VALUE args[4];
391
+ int numargs;
392
+ LOAD_GL_FUNC(glGetConvolutionFilter,"1.2")
393
+ LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
394
+ numargs = rb_scan_args(argc, argv, "31", &args[0], &args[1], &args[2], &args[3]);
395
+ target = (GLenum)NUM2INT(args[0]);
396
+ format = (GLenum)NUM2INT(args[1]);
397
+ type = (GLenum)NUM2INT(args[2]);
398
+
399
+ switch(numargs) {
400
+ default:
401
+ case 3:
402
+ if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
403
+ rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
404
+
405
+ if (target==GL_CONVOLUTION_1D) {
406
+ fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_WIDTH,&size);
407
+ } else {
408
+ GLint tmp = 0;
409
+ fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_WIDTH,&tmp);
410
+ fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_HEIGHT,&size);
411
+ size *=tmp;
412
+ }
413
+ CHECK_GLERROR
414
+ data = allocate_buffer_with_string(GetDataSize(type,format,size));
415
+ FORCE_PIXEL_STORE_MODE
416
+ fptr_glGetConvolutionFilter(target,format,type,(GLvoid*)RSTRING_PTR(data));
417
+ RESTORE_PIXEL_STORE_MODE
418
+ CHECK_GLERROR
419
+ return data;
420
+ case 4:
421
+ if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
422
+ rb_raise(rb_eArgError, "Pixel pack buffer not bound");
423
+
424
+ FORCE_PIXEL_STORE_MODE
425
+ fptr_glGetConvolutionFilter(target,format,type,(GLvoid*)NUM2LONG(args[3]));
426
+ RESTORE_PIXEL_STORE_MODE
427
+ CHECK_GLERROR
428
+ return Qnil;
429
+ }
430
+ }
431
+
432
+ static void (APIENTRY * fptr_glGetSeparableFilter)(GLenum,GLenum,GLenum,GLvoid*,GLvoid*,GLvoid*);
433
+ static VALUE
434
+ gl_GetSeparableFilter(argc,argv,obj)
435
+ int argc;
436
+ VALUE *argv;
437
+ VALUE obj;
438
+ {
439
+ GLenum target;
440
+ GLenum format;
441
+ GLenum type;
442
+ GLint size_row = 0;
443
+ GLint size_column = 0;
444
+ VALUE data_row;
445
+ VALUE data_column;
446
+ VALUE retary;
447
+ VALUE args[6];
448
+ int numargs;
449
+ LOAD_GL_FUNC(glGetSeparableFilter,"1.2")
450
+ LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
451
+ numargs = rb_scan_args(argc, argv, "33", &args[0], &args[1], &args[2], &args[3], &args[4], &args[5]);
452
+ target = (GLenum)NUM2INT(args[0]);
453
+ format = (GLenum)NUM2INT(args[1]);
454
+ type = (GLenum)NUM2INT(args[2]);
455
+
456
+ switch(numargs) {
457
+ default:
458
+ case 3:
459
+ if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
460
+ rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset arguments missing");
461
+
462
+ fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_WIDTH,&size_row);
463
+ fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_HEIGHT,&size_column);
464
+ CHECK_GLERROR
465
+ data_row = allocate_buffer_with_string(GetDataSize(type,format,size_row));
466
+ data_column = allocate_buffer_with_string(GetDataSize(type,format,size_column));
467
+ FORCE_PIXEL_STORE_MODE
468
+ fptr_glGetSeparableFilter(target,format,type,(GLvoid*)RSTRING_PTR(data_row),(GLvoid*)RSTRING_PTR(data_column),0);
469
+ RESTORE_PIXEL_STORE_MODE
470
+ retary = rb_ary_new2(2);
471
+ rb_ary_push(retary, data_row);
472
+ rb_ary_push(retary, data_column);
473
+ CHECK_GLERROR
474
+ return retary;
475
+ break;
476
+ case 6:
477
+ if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
478
+ rb_raise(rb_eArgError, "Pixel pack buffer not bound");
479
+ FORCE_PIXEL_STORE_MODE
480
+ fptr_glGetSeparableFilter(target,format,type,(GLvoid*)NUM2LONG(args[3]),(GLvoid*)NUM2LONG(args[4]),(GLvoid*)NUM2LONG(args[5]));
481
+ RESTORE_PIXEL_STORE_MODE
482
+ CHECK_GLERROR
483
+ return Qnil;
484
+ }
485
+ }
486
+
487
+ static void (APIENTRY * fptr_glSeparableFilter2D)(GLenum,GLenum,GLsizei,GLsizei,GLenum,GLenum,const GLvoid *,const GLvoid *);
488
+ static VALUE
489
+ gl_SeparableFilter2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
490
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
491
+ {
492
+ GLenum target;
493
+ GLenum internalformat;
494
+ GLsizei width;
495
+ GLsizei height;
496
+ GLenum format;
497
+ GLenum type;
498
+ LOAD_GL_FUNC(glSeparableFilter2D,"1.2")
499
+ target = (GLenum)NUM2INT(arg1);
500
+ internalformat = (GLenum)NUM2INT(arg2);
501
+ width = (GLsizei)NUM2UINT(arg3);
502
+ height = (GLsizei)NUM2UINT(arg4);
503
+ format = (GLenum)NUM2INT(arg5);
504
+ type = (GLenum)NUM2INT(arg6);
505
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
506
+ fptr_glSeparableFilter2D(target,internalformat,width,height,format,type,(GLvoid *)NUM2LONG(arg7),(GLvoid *)NUM2LONG(arg8));
507
+ } else {
508
+ VALUE data_1,data_2;
509
+ data_1 = pack_array_or_pass_string(type,arg7);
510
+ data_2 = pack_array_or_pass_string(type,arg8);
511
+
512
+ CheckDataSize(type,format,width,data_1);
513
+ CheckDataSize(type,format,height,data_2);
514
+ fptr_glSeparableFilter2D(target,internalformat,width,height,format,type,RSTRING_PTR(data_1),RSTRING_PTR(data_2));
515
+ }
516
+ CHECK_GLERROR
517
+ return Qnil;
518
+ }
519
+
520
+ static void (APIENTRY * fptr_glGetHistogramParameterfv)(GLenum,GLenum,GLfloat *);
521
+ static VALUE
522
+ gl_GetHistogramParameterfv(obj,arg1,arg2,arg3)
523
+ VALUE obj,arg1,arg2,arg3;
524
+ {
525
+ GLenum target;
526
+ GLenum pname;
527
+ GLfloat params = (GLfloat)0.0;
528
+ LOAD_GL_FUNC(glGetHistogramParameterfv,"1.2")
529
+ target = (GLenum)NUM2INT(arg1);
530
+ pname = (GLenum)NUM2INT(arg2);
531
+ fptr_glGetHistogramParameterfv(target,pname,&params);
532
+ CHECK_GLERROR
533
+ return RETCONV_GLfloat(params);
534
+ }
535
+
536
+ static void (APIENTRY * fptr_glGetHistogramParameteriv)(GLenum,GLenum,GLint *);
537
+ static VALUE
538
+ gl_GetHistogramParameteriv(obj,arg1,arg2,arg3)
539
+ VALUE obj,arg1,arg2,arg3;
540
+ {
541
+ GLenum target;
542
+ GLenum pname;
543
+ GLint params = 0;
544
+ LOAD_GL_FUNC(glGetHistogramParameteriv,"1.2")
545
+ target = (GLenum)NUM2INT(arg1);
546
+ pname = (GLenum)NUM2INT(arg2);
547
+ fptr_glGetHistogramParameteriv(target,pname,&params);
548
+ CHECK_GLERROR
549
+ return cond_GLBOOL2RUBY(pname,params);
550
+ }
551
+
552
+ static void (APIENTRY * fptr_glGetHistogram)(GLenum,GLboolean,GLenum,GLenum,GLvoid*);
553
+ static VALUE
554
+ gl_GetHistogram(argc,argv,obj)
555
+ int argc;
556
+ VALUE *argv;
557
+ VALUE obj;
558
+ {
559
+ GLenum target;
560
+ GLboolean reset;
561
+ GLenum format;
562
+ GLenum type;
563
+ GLint size = 0;
564
+ VALUE data;
565
+ VALUE args[5];
566
+ int numargs;
567
+ LOAD_GL_FUNC(glGetHistogram,"1.2")
568
+ LOAD_GL_FUNC(glGetHistogramParameteriv,"1.2")
569
+ numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
570
+ target = (GLenum)NUM2INT(args[0]);
571
+ reset = (GLboolean)NUM2INT(args[1]);
572
+ format = (GLenum)NUM2INT(args[2]);
573
+ type = (GLenum)NUM2INT(args[3]);
574
+
575
+ switch(numargs) {
576
+ default:
577
+ case 4:
578
+ if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
579
+ rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
580
+
581
+ fptr_glGetHistogramParameteriv(target,GL_HISTOGRAM_WIDTH,&size);
582
+ CHECK_GLERROR
583
+ data = allocate_buffer_with_string(GetDataSize(type,format,size));
584
+ FORCE_PIXEL_STORE_MODE
585
+ fptr_glGetHistogram(target,reset,format,type,(GLvoid*)RSTRING_PTR(data));
586
+ RESTORE_PIXEL_STORE_MODE
587
+ CHECK_GLERROR
588
+ return data;
589
+ break;
590
+ case 5:
591
+ if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
592
+ rb_raise(rb_eArgError, "Pixel pack buffer not bound");
593
+
594
+ FORCE_PIXEL_STORE_MODE
595
+ fptr_glGetHistogram(target,reset,format,type,(GLvoid*)NUM2LONG(args[4]));
596
+ RESTORE_PIXEL_STORE_MODE
597
+ CHECK_GLERROR
598
+ return Qnil;
599
+ }
600
+ }
601
+
602
+ static void (APIENTRY * fptr_glGetMinmax)(GLenum,GLboolean,GLenum,GLenum,GLvoid *);
603
+ static VALUE
604
+ gl_GetMinmax(argc,argv,obj)
605
+ int argc;
606
+ VALUE *argv;
607
+ VALUE obj;
608
+ {
609
+ GLenum target;
610
+ GLboolean reset;
611
+ GLenum format;
612
+ GLenum type;
613
+ VALUE data;
614
+ VALUE args[5];
615
+ int numargs;
616
+ LOAD_GL_FUNC(glGetMinmax,"1.2")
617
+ numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
618
+ target = (GLenum)NUM2INT(args[0]);
619
+ reset = (GLboolean)NUM2INT(args[1]);
620
+ format = (GLenum)NUM2INT(args[2]);
621
+ type = (GLenum)NUM2INT(args[3]);
622
+
623
+ switch(numargs) {
624
+ default:
625
+ case 4:
626
+ if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
627
+ rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
628
+
629
+ data = allocate_buffer_with_string(GetDataSize(type,format,2));
630
+ FORCE_PIXEL_STORE_MODE
631
+ fptr_glGetMinmax(target,reset,format,type,(GLvoid*)RSTRING_PTR(data));
632
+ RESTORE_PIXEL_STORE_MODE
633
+ CHECK_GLERROR
634
+ return data;
635
+ break;
636
+ case 5:
637
+ if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
638
+ rb_raise(rb_eArgError, "Pixel pack buffer not bound");
639
+
640
+ FORCE_PIXEL_STORE_MODE
641
+ fptr_glGetMinmax(target,reset,format,type,(GLvoid*)NUM2LONG(args[4]));
642
+ RESTORE_PIXEL_STORE_MODE
643
+ CHECK_GLERROR
644
+ return Qnil;
645
+ }
646
+ }
647
+
648
+ static void (APIENTRY * fptr_glGetMinmaxParameterfv)(GLenum,GLenum,GLfloat *);
649
+ static VALUE
650
+ gl_GetMinmaxParameterfv(obj,arg1,arg2)
651
+ VALUE obj,arg1,arg2;
652
+ {
653
+ GLenum target;
654
+ GLenum pname;
655
+ GLfloat params = (GLfloat)0.0;
656
+ LOAD_GL_FUNC(glGetMinmaxParameterfv,"1.2")
657
+ target = (GLenum)NUM2INT(arg1);
658
+ pname = (GLenum)NUM2INT(arg2);
659
+ fptr_glGetMinmaxParameterfv(target,pname,&params);
660
+ CHECK_GLERROR
661
+ return RETCONV_GLfloat(params);
662
+ }
663
+
664
+ static void (APIENTRY * fptr_glGetMinmaxParameteriv)(GLenum,GLenum,GLint *);
665
+ static VALUE
666
+ gl_GetMinmaxParameteriv(obj,arg1,arg2)
667
+ VALUE obj,arg1,arg2;
668
+ {
669
+ GLenum target;
670
+ GLenum pname;
671
+ GLint params = 0;
672
+ LOAD_GL_FUNC(glGetMinmaxParameteriv,"1.2")
673
+ target = (GLenum)NUM2INT(arg1);
674
+ pname = (GLenum)NUM2INT(arg2);
675
+ fptr_glGetMinmaxParameteriv(target,pname,&params);
676
+ CHECK_GLERROR
677
+ return cond_GLBOOL2RUBY(pname,params);
678
+ }
679
+
680
+ static void (APIENTRY * fptr_glTexImage3D)(GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const GLvoid*);
681
+ static VALUE
682
+ gl_TexImage3D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
683
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
684
+ {
685
+ GLenum target;
686
+ GLint level;
687
+ GLint internalFormat;
688
+ GLsizei width;
689
+ GLsizei height;
690
+ GLsizei depth;
691
+ GLint border;
692
+ GLenum format;
693
+ GLenum type;
694
+ const char *pixels;
695
+ LOAD_GL_FUNC(glTexImage3D,"1.2")
696
+ target = (GLenum)NUM2INT(arg1);
697
+ level = (GLint)NUM2INT(arg2);
698
+ internalFormat = (GLint)NUM2INT(arg3);
699
+ width = (GLsizei)NUM2UINT(arg4);
700
+ height = (GLsizei)NUM2UINT(arg5);
701
+ depth = (GLsizei)NUM2UINT(arg6);
702
+ border = (GLint)NUM2INT(arg7);
703
+ format = (GLenum)NUM2INT(arg8);
704
+ type = (GLenum)NUM2INT(arg9);
705
+
706
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
707
+ fptr_glTexImage3D( target, level, internalFormat, width, height,
708
+ depth, border, format, type,(GLvoid *)NUM2LONG(arg10));
709
+ CHECK_GLERROR
710
+ return Qnil;
711
+ }
712
+
713
+ if (target == GL_PROXY_TEXTURE_3D ||
714
+ target == GL_PROXY_TEXTURE_1D_STACK_MESAX ||
715
+ target == GL_PROXY_TEXTURE_2D_STACK_MESAX ||
716
+ target == GL_PROXY_TEXTURE_2D_ARRAY_EXT ||
717
+ NIL_P(arg10)) { /* proxy texture, no data read */
718
+ pixels = NULL;
719
+ } else {
720
+ VALUE data;
721
+ data = pack_array_or_pass_string(type,arg10);
722
+
723
+ CheckDataSize(type,format,width*height*depth,data);
724
+ pixels = RSTRING_PTR(data);
725
+ }
726
+ fptr_glTexImage3D( target, level, internalFormat, width, height,
727
+ depth, border, format, type,pixels);
728
+ CHECK_GLERROR
729
+ return Qnil;
730
+ }
731
+
732
+ static void (APIENTRY * fptr_glTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const GLvoid*);
733
+ static VALUE
734
+ gl_TexSubImage3D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11)
735
+ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11;
736
+ {
737
+ GLenum target;
738
+ GLint level;
739
+ GLint xoffset;
740
+ GLint yoffset;
741
+ GLint zoffset;
742
+ GLsizei width;
743
+ GLsizei height;
744
+ GLsizei depth;
745
+ GLenum format;
746
+ GLenum type;
747
+ LOAD_GL_FUNC(glTexSubImage3D,"1.2")
748
+ target = (GLenum)NUM2INT(arg1);
749
+ level = (GLint)NUM2INT(arg2);
750
+ xoffset = (GLint)NUM2INT(arg3);
751
+ yoffset = (GLint)NUM2INT(arg4);
752
+ zoffset = (GLint)NUM2INT(arg5);
753
+ width = (GLsizei)NUM2UINT(arg6);
754
+ height = (GLsizei)NUM2UINT(arg7);
755
+ depth = (GLsizei)NUM2UINT(arg8);
756
+ format = (GLenum)NUM2INT(arg9);
757
+ type = (GLenum)NUM2INT(arg10);
758
+ if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
759
+ fptr_glTexSubImage3D( target, level, xoffset, yoffset, zoffset,
760
+ width, height, depth,
761
+ format, type, (GLvoid *)NUM2LONG(arg11));
762
+ } else {
763
+ VALUE data;
764
+ data = pack_array_or_pass_string(type,arg11);
765
+ CheckDataSize(type,format,height*width*depth,data);
766
+ fptr_glTexSubImage3D( target, level, xoffset, yoffset, zoffset,
767
+ width, height, depth,
768
+ format, type, RSTRING_PTR(data));
769
+ }
770
+ CHECK_GLERROR
771
+ return Qnil;
772
+ }
773
+
774
+ void gl_init_functions_1_2(VALUE module)
775
+ {
776
+ rb_define_module_function(module, "glBlendColor", gl_BlendColor, 4);
777
+ rb_define_module_function(module, "glBlendEquation", gl_BlendEquation, 1);
778
+ rb_define_module_function(module, "glDrawRangeElements", gl_DrawRangeElements, 6);
779
+ rb_define_module_function(module, "glColorTable", gl_ColorTable, 6);
780
+ rb_define_module_function(module, "glColorTableParameterfv", gl_ColorTableParameterfv, 3);
781
+ rb_define_module_function(module, "glColorTableParameteriv", gl_ColorTableParameteriv, 3);
782
+ rb_define_module_function(module, "glCopyColorTable", gl_CopyColorTable, 5);
783
+ rb_define_module_function(module, "glGetColorTable", gl_GetColorTable, 3);
784
+ rb_define_module_function(module, "glGetColorTableParameterfv", gl_GetColorTableParameterfv, 2);
785
+ rb_define_module_function(module, "glGetColorTableParameteriv", gl_GetColorTableParameteriv, 2);
786
+ rb_define_module_function(module, "glColorSubTable", gl_ColorSubTable, 6);
787
+ rb_define_module_function(module, "glCopyColorSubTable", gl_CopyColorSubTable, 5);
788
+ rb_define_module_function(module, "glConvolutionFilter1D", gl_ConvolutionFilter1D, 6);
789
+ rb_define_module_function(module, "glConvolutionFilter2D", gl_ConvolutionFilter2D, 7);
790
+ rb_define_module_function(module, "glConvolutionParameterf", gl_ConvolutionParameterf, 3);
791
+ rb_define_module_function(module, "glConvolutionParameterfv", gl_ConvolutionParameterfv, 3);
792
+ rb_define_module_function(module, "glConvolutionParameteri", gl_ConvolutionParameteri, 3);
793
+ rb_define_module_function(module, "glConvolutionParameteriv", gl_ConvolutionParameteriv, 3);
794
+ rb_define_module_function(module, "glCopyConvolutionFilter1D", gl_CopyConvolutionFilter1D, 5);
795
+ rb_define_module_function(module, "glCopyConvolutionFilter2D", gl_CopyConvolutionFilter2D, 6);
796
+ rb_define_module_function(module, "glGetConvolutionFilter", gl_GetConvolutionFilter, -1);
797
+ rb_define_module_function(module, "glGetConvolutionParameterfv", gl_GetConvolutionParameterfv, 2);
798
+ rb_define_module_function(module, "glGetConvolutionParameteriv", gl_GetConvolutionParameteriv, 2);
799
+ rb_define_module_function(module, "glGetSeparableFilter", gl_GetSeparableFilter, -1);
800
+ rb_define_module_function(module, "glSeparableFilter2D", gl_SeparableFilter2D, 8);
801
+ rb_define_module_function(module, "glGetHistogram", gl_GetHistogram, -1);
802
+ rb_define_module_function(module, "glGetHistogramParameterfv", gl_GetHistogramParameterfv, 2);
803
+ rb_define_module_function(module, "glGetHistogramParameteriv", gl_GetHistogramParameteriv, 2);
804
+ rb_define_module_function(module, "glGetMinmax", gl_GetMinmax, -1);
805
+ rb_define_module_function(module, "glGetMinmaxParameterfv", gl_GetMinmaxParameterfv, 2);
806
+ rb_define_module_function(module, "glGetMinmaxParameteriv", gl_GetMinmaxParameteriv, 2);
807
+ rb_define_module_function(module, "glHistogram", gl_Histogram, 4);
808
+ rb_define_module_function(module, "glMinmax", gl_Minmax, 3);
809
+ rb_define_module_function(module, "glResetHistogram", gl_ResetHistogram, 1);
810
+ rb_define_module_function(module, "glResetMinmax", gl_ResetMinmax, 1);
811
+ rb_define_module_function(module, "glTexImage3D", gl_TexImage3D, 10);
812
+ rb_define_module_function(module, "glTexSubImage3D", gl_TexSubImage3D, 11);
813
+ rb_define_module_function(module, "glCopyTexSubImage3D", gl_CopyTexSubImage3D, 9);
814
+ }