ruby-opengl 0.50.0 → 0.60.0
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.
- data/Rakefile +15 -11
- data/doc/build_install.txt +10 -6
- data/doc/extensions.txt.in +348 -0
- data/doc/history.txt +4 -0
- data/doc/roadmap.txt +4 -6
- data/doc/scientific_use.txt +7 -0
- data/doc/supplies/page_template.html +2 -1
- data/doc/thanks.txt +5 -0
- data/doc/tutorial.txt +431 -121
- data/examples/NeHe/nehe_lesson02.rb +1 -1
- data/examples/NeHe/nehe_lesson03.rb +1 -1
- data/examples/NeHe/nehe_lesson04.rb +1 -1
- data/examples/NeHe/nehe_lesson05.rb +1 -1
- data/examples/NeHe/nehe_lesson36.rb +1 -1
- data/examples/OrangeBook/brick.rb +3 -15
- data/examples/OrangeBook/particle.rb +2 -20
- data/examples/RedBook/aapoly.rb +1 -1
- data/examples/RedBook/aargb.rb +2 -2
- data/examples/RedBook/accanti.rb +1 -1
- data/examples/RedBook/accpersp.rb +1 -1
- data/examples/RedBook/alpha.rb +2 -2
- data/examples/RedBook/alpha3D.rb +1 -1
- data/examples/RedBook/bezcurve.rb +1 -1
- data/examples/RedBook/bezmesh.rb +1 -1
- data/examples/RedBook/checker.rb +1 -1
- data/examples/RedBook/clip.rb +1 -1
- data/examples/RedBook/colormat.rb +1 -1
- data/examples/RedBook/cube.rb +1 -1
- data/examples/RedBook/depthcue.rb +1 -1
- data/examples/RedBook/dof.rb +1 -1
- data/examples/RedBook/double.rb +1 -1
- data/examples/RedBook/drawf.rb +1 -1
- data/examples/RedBook/feedback.rb +1 -1
- data/examples/RedBook/fog.rb +1 -1
- data/examples/RedBook/font.rb +2 -2
- data/examples/RedBook/hello.rb +1 -1
- data/examples/RedBook/image.rb +4 -4
- data/examples/RedBook/lines.rb +1 -1
- data/examples/RedBook/list.rb +1 -1
- data/examples/RedBook/material.rb +1 -1
- data/examples/RedBook/mipmap.rb +1 -1
- data/examples/RedBook/model.rb +1 -1
- data/examples/RedBook/movelight.rb +1 -1
- data/examples/RedBook/pickdepth.rb +1 -1
- data/examples/RedBook/planet.rb +5 -5
- data/examples/RedBook/quadric.rb +1 -1
- data/examples/RedBook/robot.rb +5 -5
- data/examples/RedBook/select.rb +1 -1
- data/examples/RedBook/smooth.rb +1 -1
- data/examples/RedBook/stencil.rb +1 -1
- data/examples/RedBook/stroke.rb +2 -2
- data/examples/RedBook/surface.rb +1 -1
- data/examples/RedBook/teaambient.rb +1 -1
- data/examples/RedBook/teapots.rb +1 -1
- data/examples/RedBook/tess.rb +1 -1
- data/examples/RedBook/texbind.rb +1 -1
- data/examples/RedBook/texgen.rb +5 -5
- data/examples/RedBook/texturesurf.rb +1 -1
- data/examples/RedBook/varray.rb +1 -1
- data/examples/RedBook/wrap.rb +5 -5
- data/examples/misc/OGLBench.rb +337 -0
- data/examples/misc/anisotropic.rb +1 -1
- data/examples/misc/fbo_test.rb +356 -0
- data/examples/misc/font-glut.rb +1 -1
- data/examples/misc/glfwtest.rb +30 -0
- data/examples/misc/md2model.rb +15 -0
- data/examples/misc/plane.rb +1 -1
- data/examples/misc/readpixel.rb +1 -1
- data/examples/misc/sdltest.rb +34 -0
- data/examples/misc/trislam.rb +828 -0
- data/ext/common/common.h +126 -218
- data/ext/common/conv.h +244 -0
- data/ext/common/funcdef.h +280 -0
- data/ext/common/gl-error.h +23 -0
- data/ext/common/gl-types.h +14 -0
- data/ext/gl/gl-1.0-1.1.c +497 -1255
- data/ext/gl/gl-1.2.c +121 -304
- data/ext/gl/gl-1.3.c +78 -339
- data/ext/gl/gl-1.4.c +102 -164
- data/ext/gl/gl-1.5.c +42 -173
- data/ext/gl/gl-2.0.c +273 -1039
- data/ext/gl/gl-2.1.c +15 -19
- data/ext/gl/gl-enums.c +3 -2
- data/ext/gl/gl-error.c +104 -0
- data/ext/gl/gl-ext-3dfx.c +27 -0
- data/ext/gl/gl-ext-arb.c +812 -12
- data/ext/gl/gl-ext-ati.c +41 -0
- data/ext/gl/gl-ext-ext.c +791 -119
- data/ext/gl/gl-ext-gremedy.c +41 -0
- data/ext/gl/gl-ext-nv.c +679 -0
- data/ext/gl/gl.c +48 -28
- data/ext/gl/mkrf_conf.rb +13 -10
- data/ext/glu/glu-enums.c +3 -2
- data/ext/glu/glu.c +136 -41
- data/ext/glu/mkrf_conf.rb +15 -12
- data/ext/glut/glut.c +37 -80
- data/ext/glut/mkrf_conf.rb +17 -13
- data/lib/opengl.rb +29 -53
- data/test/tc_common.rb +9 -3
- data/test/tc_ext_arb.rb +397 -3
- data/test/tc_ext_ati.rb +33 -0
- data/test/tc_ext_ext.rb +479 -2
- data/test/tc_ext_gremedy.rb +36 -0
- data/test/tc_ext_nv.rb +357 -0
- data/test/tc_func_10_11.rb +93 -67
- data/test/tc_func_12.rb +11 -11
- data/test/tc_func_13.rb +38 -18
- data/test/tc_func_14.rb +2 -2
- data/test/tc_func_15.rb +10 -10
- data/test/tc_func_20.rb +20 -20
- data/test/tc_func_21.rb +53 -22
- data/test/tc_glu.rb +9 -4
- data/test/tc_misc.rb +15 -2
- metadata +22 -8
- data/doc/extensions.txt +0 -361
- data/examples/RedBook/aaindex.rb +0 -97
- data/examples/misc/smooth.rb +0 -42
- data/examples/misc/test.rb +0 -65
data/ext/gl/gl-1.3.c
CHANGED
|
@@ -17,280 +17,25 @@
|
|
|
17
17
|
|
|
18
18
|
/* OpenGL 1.3 functions */
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
gl_MultiTexCoord1f(obj,arg1,arg2)
|
|
40
|
-
VALUE obj,arg1,arg2;
|
|
41
|
-
{
|
|
42
|
-
GLenum target;
|
|
43
|
-
GLfloat s;
|
|
44
|
-
LOAD_GL_FUNC(glMultiTexCoord1f)
|
|
45
|
-
target = (GLenum)NUM2INT(arg1);
|
|
46
|
-
s = (GLfloat)NUM2DBL(arg2);
|
|
47
|
-
fptr_glMultiTexCoord1f(target,s);
|
|
48
|
-
return Qnil;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static void (APIENTRY * fptr_glMultiTexCoord1i)(GLenum,GLint);
|
|
52
|
-
static VALUE
|
|
53
|
-
gl_MultiTexCoord1i(obj,arg1,arg2)
|
|
54
|
-
VALUE obj,arg1,arg2;
|
|
55
|
-
{
|
|
56
|
-
GLenum target;
|
|
57
|
-
GLint s;
|
|
58
|
-
LOAD_GL_FUNC(glMultiTexCoord1i)
|
|
59
|
-
target = (GLenum)NUM2INT(arg1);
|
|
60
|
-
s = (GLint)NUM2INT(arg2);
|
|
61
|
-
fptr_glMultiTexCoord1i(target,s);
|
|
62
|
-
return Qnil;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
static void (APIENTRY * fptr_glMultiTexCoord1s)(GLenum,GLshort);
|
|
66
|
-
static VALUE
|
|
67
|
-
gl_MultiTexCoord1s(obj,arg1,arg2)
|
|
68
|
-
VALUE obj,arg1,arg2;
|
|
69
|
-
{
|
|
70
|
-
GLenum target;
|
|
71
|
-
GLshort s;
|
|
72
|
-
LOAD_GL_FUNC(glMultiTexCoord1s)
|
|
73
|
-
target = (GLenum)NUM2INT(arg1);
|
|
74
|
-
s = (GLshort)NUM2INT(arg2);
|
|
75
|
-
fptr_glMultiTexCoord1s(target,s);
|
|
76
|
-
return Qnil;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
static void (APIENTRY * fptr_glMultiTexCoord2d)(GLenum,GLdouble,GLdouble);
|
|
80
|
-
static VALUE
|
|
81
|
-
gl_MultiTexCoord2d(obj,arg1,arg2,arg3)
|
|
82
|
-
VALUE obj,arg1,arg2,arg3;
|
|
83
|
-
{
|
|
84
|
-
GLenum target;
|
|
85
|
-
GLdouble s;
|
|
86
|
-
GLdouble t;
|
|
87
|
-
LOAD_GL_FUNC(glMultiTexCoord2d)
|
|
88
|
-
target = (GLenum)NUM2INT(arg1);
|
|
89
|
-
s = (GLdouble)NUM2DBL(arg2);
|
|
90
|
-
t = (GLdouble)NUM2DBL(arg3);
|
|
91
|
-
fptr_glMultiTexCoord2d(target,s,t);
|
|
92
|
-
return Qnil;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
static void (APIENTRY * fptr_glMultiTexCoord2f)(GLenum,GLfloat,GLfloat);
|
|
96
|
-
static VALUE
|
|
97
|
-
gl_MultiTexCoord2f(obj,arg1,arg2,arg3)
|
|
98
|
-
VALUE obj,arg1,arg2,arg3;
|
|
99
|
-
{
|
|
100
|
-
GLenum target;
|
|
101
|
-
GLfloat s;
|
|
102
|
-
GLfloat t;
|
|
103
|
-
LOAD_GL_FUNC(glMultiTexCoord2f)
|
|
104
|
-
target = (GLenum)NUM2INT(arg1);
|
|
105
|
-
s = (GLfloat)NUM2DBL(arg2);
|
|
106
|
-
t = (GLfloat)NUM2DBL(arg3);
|
|
107
|
-
fptr_glMultiTexCoord2f(target,s,t);
|
|
108
|
-
return Qnil;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
static void (APIENTRY * fptr_glMultiTexCoord2i)(GLenum,GLint,GLint);
|
|
112
|
-
static VALUE
|
|
113
|
-
gl_MultiTexCoord2i(obj,arg1,arg2,arg3)
|
|
114
|
-
VALUE obj,arg1,arg2,arg3;
|
|
115
|
-
{
|
|
116
|
-
GLenum target;
|
|
117
|
-
GLint s;
|
|
118
|
-
GLint t;
|
|
119
|
-
LOAD_GL_FUNC(glMultiTexCoord2i)
|
|
120
|
-
target = (GLenum)NUM2INT(arg1);
|
|
121
|
-
s = (GLint)NUM2INT(arg2);
|
|
122
|
-
t = (GLint)NUM2INT(arg3);
|
|
123
|
-
fptr_glMultiTexCoord2i(target,s,t);
|
|
124
|
-
return Qnil;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
static void (APIENTRY * fptr_glMultiTexCoord2s)(GLenum,GLshort,GLshort);
|
|
128
|
-
static VALUE
|
|
129
|
-
gl_MultiTexCoord2s(obj,arg1,arg2,arg3)
|
|
130
|
-
VALUE obj,arg1,arg2,arg3;
|
|
131
|
-
{
|
|
132
|
-
GLenum target;
|
|
133
|
-
GLshort s;
|
|
134
|
-
GLshort t;
|
|
135
|
-
LOAD_GL_FUNC(glMultiTexCoord2s)
|
|
136
|
-
target = (GLenum)NUM2INT(arg1);
|
|
137
|
-
s = (GLshort)NUM2INT(arg2);
|
|
138
|
-
t = (GLshort)NUM2INT(arg3);
|
|
139
|
-
fptr_glMultiTexCoord2s(target,s,t);
|
|
140
|
-
return Qnil;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
static void (APIENTRY * fptr_glMultiTexCoord3d)(GLenum,GLdouble,GLdouble,GLdouble);
|
|
144
|
-
static VALUE
|
|
145
|
-
gl_MultiTexCoord3d(obj,arg1,arg2,arg3,arg4)
|
|
146
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
|
147
|
-
{
|
|
148
|
-
GLenum target;
|
|
149
|
-
GLdouble s;
|
|
150
|
-
GLdouble t;
|
|
151
|
-
GLdouble r;
|
|
152
|
-
LOAD_GL_FUNC(glMultiTexCoord3d)
|
|
153
|
-
target = (GLenum)NUM2INT(arg1);
|
|
154
|
-
s = (GLdouble)NUM2DBL(arg2);
|
|
155
|
-
t = (GLdouble)NUM2DBL(arg3);
|
|
156
|
-
r = (GLdouble)NUM2DBL(arg4);
|
|
157
|
-
fptr_glMultiTexCoord3d(target,s,t,r);
|
|
158
|
-
return Qnil;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
static void (APIENTRY * fptr_glMultiTexCoord3f)(GLenum,GLfloat,GLfloat,GLfloat);
|
|
162
|
-
static VALUE
|
|
163
|
-
gl_MultiTexCoord3f(obj,arg1,arg2,arg3,arg4)
|
|
164
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
|
165
|
-
{
|
|
166
|
-
GLenum target;
|
|
167
|
-
GLfloat s;
|
|
168
|
-
GLfloat t;
|
|
169
|
-
GLfloat r;
|
|
170
|
-
LOAD_GL_FUNC(glMultiTexCoord3f)
|
|
171
|
-
target = (GLenum)NUM2INT(arg1);
|
|
172
|
-
s = (GLfloat)NUM2DBL(arg2);
|
|
173
|
-
t = (GLfloat)NUM2DBL(arg3);
|
|
174
|
-
r = (GLfloat)NUM2DBL(arg4);
|
|
175
|
-
fptr_glMultiTexCoord3f(target,s,t,r);
|
|
176
|
-
return Qnil;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
static void (APIENTRY * fptr_glMultiTexCoord3i)(GLenum,GLint,GLint,GLint);
|
|
180
|
-
static VALUE
|
|
181
|
-
gl_MultiTexCoord3i(obj,arg1,arg2,arg3,arg4)
|
|
182
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
|
183
|
-
{
|
|
184
|
-
GLenum target;
|
|
185
|
-
GLint s;
|
|
186
|
-
GLint t;
|
|
187
|
-
GLint r;
|
|
188
|
-
LOAD_GL_FUNC(glMultiTexCoord3i)
|
|
189
|
-
target = (GLenum)NUM2INT(arg1);
|
|
190
|
-
s = (GLint)NUM2INT(arg2);
|
|
191
|
-
t = (GLint)NUM2INT(arg3);
|
|
192
|
-
r = (GLint)NUM2INT(arg4);
|
|
193
|
-
fptr_glMultiTexCoord3i(target,s,t,r);
|
|
194
|
-
return Qnil;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
static void (APIENTRY * fptr_glMultiTexCoord3s)(GLenum,GLshort,GLshort,GLshort);
|
|
198
|
-
static VALUE
|
|
199
|
-
gl_MultiTexCoord3s(obj,arg1,arg2,arg3,arg4)
|
|
200
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
|
201
|
-
{
|
|
202
|
-
GLenum target;
|
|
203
|
-
GLshort s;
|
|
204
|
-
GLshort t;
|
|
205
|
-
GLshort r;
|
|
206
|
-
LOAD_GL_FUNC(glMultiTexCoord3s)
|
|
207
|
-
target = (GLenum)NUM2INT(arg1);
|
|
208
|
-
s = (GLshort)NUM2INT(arg2);
|
|
209
|
-
t = (GLshort)NUM2INT(arg3);
|
|
210
|
-
r = (GLshort)NUM2INT(arg4);
|
|
211
|
-
fptr_glMultiTexCoord3s(target,s,t,r);
|
|
212
|
-
return Qnil;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
static void (APIENTRY * fptr_glMultiTexCoord4d)(GLenum,GLdouble,GLdouble,GLdouble,GLdouble);
|
|
216
|
-
static VALUE
|
|
217
|
-
gl_MultiTexCoord4d(obj,arg1,arg2,arg3,arg4,arg5)
|
|
218
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
219
|
-
{
|
|
220
|
-
GLenum target;
|
|
221
|
-
GLdouble s;
|
|
222
|
-
GLdouble t;
|
|
223
|
-
GLdouble r;
|
|
224
|
-
GLdouble q;
|
|
225
|
-
LOAD_GL_FUNC(glMultiTexCoord4d)
|
|
226
|
-
target = (GLenum)NUM2INT(arg1);
|
|
227
|
-
s = (GLdouble)NUM2DBL(arg2);
|
|
228
|
-
t = (GLdouble)NUM2DBL(arg3);
|
|
229
|
-
r = (GLdouble)NUM2DBL(arg4);
|
|
230
|
-
q = (GLdouble)NUM2DBL(arg5);
|
|
231
|
-
fptr_glMultiTexCoord4d(target,s,t,r,q);
|
|
232
|
-
return Qnil;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
static void (APIENTRY * fptr_glMultiTexCoord4f)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat);
|
|
236
|
-
static VALUE
|
|
237
|
-
gl_MultiTexCoord4f(obj,arg1,arg2,arg3,arg4,arg5)
|
|
238
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
239
|
-
{
|
|
240
|
-
GLenum target;
|
|
241
|
-
GLfloat s;
|
|
242
|
-
GLfloat t;
|
|
243
|
-
GLfloat r;
|
|
244
|
-
GLfloat q;
|
|
245
|
-
LOAD_GL_FUNC(glMultiTexCoord4f)
|
|
246
|
-
target = (GLenum)NUM2INT(arg1);
|
|
247
|
-
s = (GLfloat)NUM2DBL(arg2);
|
|
248
|
-
t = (GLfloat)NUM2DBL(arg3);
|
|
249
|
-
r = (GLfloat)NUM2DBL(arg4);
|
|
250
|
-
q = (GLfloat)NUM2DBL(arg5);
|
|
251
|
-
fptr_glMultiTexCoord4f(target,s,t,r,q);
|
|
252
|
-
return Qnil;
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
static void (APIENTRY * fptr_glMultiTexCoord4i)(GLenum,GLint,GLint,GLint,GLint);
|
|
256
|
-
static VALUE
|
|
257
|
-
gl_MultiTexCoord4i(obj,arg1,arg2,arg3,arg4,arg5)
|
|
258
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
259
|
-
{
|
|
260
|
-
GLenum target;
|
|
261
|
-
GLint s;
|
|
262
|
-
GLint t;
|
|
263
|
-
GLint r;
|
|
264
|
-
GLint q;
|
|
265
|
-
LOAD_GL_FUNC(glMultiTexCoord4i)
|
|
266
|
-
target = (GLenum)NUM2INT(arg1);
|
|
267
|
-
s = (GLint)NUM2INT(arg2);
|
|
268
|
-
t = (GLint)NUM2INT(arg3);
|
|
269
|
-
r = (GLint)NUM2INT(arg4);
|
|
270
|
-
q = (GLint)NUM2INT(arg5);
|
|
271
|
-
fptr_glMultiTexCoord4i(target,s,t,r,q);
|
|
272
|
-
return Qnil;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
static void (APIENTRY * fptr_glMultiTexCoord4s)(GLenum,GLshort,GLshort,GLshort,GLshort);
|
|
276
|
-
static VALUE
|
|
277
|
-
gl_MultiTexCoord4s(obj,arg1,arg2,arg3,arg4,arg5)
|
|
278
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
279
|
-
{
|
|
280
|
-
GLenum target;
|
|
281
|
-
GLshort s;
|
|
282
|
-
GLshort t;
|
|
283
|
-
GLshort r;
|
|
284
|
-
GLshort q;
|
|
285
|
-
LOAD_GL_FUNC(glMultiTexCoord4s)
|
|
286
|
-
target = (GLenum)NUM2INT(arg1);
|
|
287
|
-
s = (GLshort)NUM2INT(arg2);
|
|
288
|
-
t = (GLshort)NUM2INT(arg3);
|
|
289
|
-
r = (GLshort)NUM2INT(arg4);
|
|
290
|
-
q = (GLshort)NUM2INT(arg5);
|
|
291
|
-
fptr_glMultiTexCoord4s(target,s,t,r,q);
|
|
292
|
-
return Qnil;
|
|
293
|
-
}
|
|
20
|
+
GL_FUNC_LOAD_1(ActiveTexture,GLvoid, GLenum, "1.3")
|
|
21
|
+
GL_FUNC_LOAD_1(ClientActiveTexture,GLvoid, GLenum, "1.3")
|
|
22
|
+
GL_FUNC_LOAD_2(MultiTexCoord1d,GLvoid, GLenum,GLdouble, "1.3")
|
|
23
|
+
GL_FUNC_LOAD_2(MultiTexCoord1f,GLvoid, GLenum,GLfloat, "1.3")
|
|
24
|
+
GL_FUNC_LOAD_2(MultiTexCoord1i,GLvoid, GLenum,GLint, "1.3")
|
|
25
|
+
GL_FUNC_LOAD_2(MultiTexCoord1s,GLvoid, GLenum,GLshort, "1.3")
|
|
26
|
+
GL_FUNC_LOAD_3(MultiTexCoord2d,GLvoid, GLenum,GLdouble,GLdouble, "1.3")
|
|
27
|
+
GL_FUNC_LOAD_3(MultiTexCoord2f,GLvoid, GLenum,GLfloat,GLfloat, "1.3")
|
|
28
|
+
GL_FUNC_LOAD_3(MultiTexCoord2i,GLvoid, GLenum,GLint,GLint, "1.3")
|
|
29
|
+
GL_FUNC_LOAD_3(MultiTexCoord2s,GLvoid, GLenum,GLshort,GLshort, "1.3")
|
|
30
|
+
GL_FUNC_LOAD_4(MultiTexCoord3d,GLvoid, GLenum,GLdouble,GLdouble,GLdouble, "1.3")
|
|
31
|
+
GL_FUNC_LOAD_4(MultiTexCoord3f,GLvoid, GLenum,GLfloat,GLfloat,GLfloat, "1.3")
|
|
32
|
+
GL_FUNC_LOAD_4(MultiTexCoord3i,GLvoid, GLenum,GLint,GLint,GLint, "1.3")
|
|
33
|
+
GL_FUNC_LOAD_4(MultiTexCoord3s,GLvoid, GLenum,GLshort,GLshort,GLshort, "1.3")
|
|
34
|
+
GL_FUNC_LOAD_5(MultiTexCoord4d,GLvoid, GLenum,GLdouble,GLdouble,GLdouble,GLdouble, "1.3")
|
|
35
|
+
GL_FUNC_LOAD_5(MultiTexCoord4f,GLvoid, GLenum,GLfloat,GLfloat,GLfloat,GLfloat, "1.3")
|
|
36
|
+
GL_FUNC_LOAD_5(MultiTexCoord4i,GLvoid, GLenum,GLint,GLint,GLint,GLint, "1.3")
|
|
37
|
+
GL_FUNC_LOAD_5(MultiTexCoord4s,GLvoid, GLenum,GLshort,GLshort,GLshort,GLshort, "1.3")
|
|
38
|
+
GL_FUNC_LOAD_2(SampleCoverage,GLvoid, GLclampf,GLboolean, "1.3")
|
|
294
39
|
|
|
295
40
|
#define GLMULTITEXCOORD_VFUNC(_type_) \
|
|
296
41
|
static VALUE \
|
|
@@ -350,40 +95,27 @@ GLMULTITEXCOORD_VFUNC(i)
|
|
|
350
95
|
GLMULTITEXCOORD_VFUNC(s)
|
|
351
96
|
#undef GLTEXCOORD_VFUNC
|
|
352
97
|
|
|
353
|
-
#define TRANSPOSEMATRIX_FUNC(_name_,_type_
|
|
98
|
+
#define TRANSPOSEMATRIX_FUNC(_name_,_type_) \
|
|
354
99
|
static void (APIENTRY * fptr_gl##_name_)(const _type_[]); \
|
|
355
100
|
static VALUE \
|
|
356
101
|
gl_##_name_(obj,arg1) \
|
|
357
102
|
VALUE obj,arg1; \
|
|
358
103
|
{ \
|
|
359
104
|
_type_ m[4*4]; \
|
|
360
|
-
LOAD_GL_FUNC(gl##_name_) \
|
|
361
|
-
|
|
105
|
+
LOAD_GL_FUNC(gl##_name_,"1.3") \
|
|
106
|
+
ary2cmat##_type_(arg1, m, 4, 4); \
|
|
362
107
|
fptr_gl##_name_(m); \
|
|
108
|
+
CHECK_GLERROR \
|
|
363
109
|
return Qnil; \
|
|
364
110
|
}
|
|
365
111
|
|
|
366
|
-
TRANSPOSEMATRIX_FUNC(LoadTransposeMatrixf,
|
|
367
|
-
TRANSPOSEMATRIX_FUNC(LoadTransposeMatrixd,
|
|
368
|
-
TRANSPOSEMATRIX_FUNC(MultTransposeMatrixf,
|
|
369
|
-
TRANSPOSEMATRIX_FUNC(MultTransposeMatrixd,
|
|
112
|
+
TRANSPOSEMATRIX_FUNC(LoadTransposeMatrixf,float)
|
|
113
|
+
TRANSPOSEMATRIX_FUNC(LoadTransposeMatrixd,double)
|
|
114
|
+
TRANSPOSEMATRIX_FUNC(MultTransposeMatrixf,float)
|
|
115
|
+
TRANSPOSEMATRIX_FUNC(MultTransposeMatrixd,double)
|
|
370
116
|
|
|
371
117
|
#undef TRANSPOSEMATRIX_FUNC
|
|
372
118
|
|
|
373
|
-
static void (APIENTRY * fptr_glSampleCoverage)(GLclampf,GLboolean);
|
|
374
|
-
static VALUE
|
|
375
|
-
gl_SampleCoverage(obj,arg1,arg2)
|
|
376
|
-
VALUE obj,arg1,arg2;
|
|
377
|
-
{
|
|
378
|
-
GLclampf value;
|
|
379
|
-
GLboolean invert;
|
|
380
|
-
LOAD_GL_FUNC(glSampleCoverage)
|
|
381
|
-
value = (GLclampf)NUM2DBL(arg1);
|
|
382
|
-
invert = (GLboolean)NUM2INT(arg2);
|
|
383
|
-
fptr_glSampleCoverage(value,invert);
|
|
384
|
-
return Qnil;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
119
|
static void (APIENTRY * fptr_glCompressedTexImage3D)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLsizei,GLint,GLsizei,GLvoid*);
|
|
388
120
|
static VALUE
|
|
389
121
|
gl_CompressedTexImage3D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
|
|
@@ -398,7 +130,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
|
398
130
|
GLint border;
|
|
399
131
|
GLsizei imagesize;
|
|
400
132
|
GLvoid *pixels;
|
|
401
|
-
LOAD_GL_FUNC(glCompressedTexImage3D)
|
|
133
|
+
LOAD_GL_FUNC(glCompressedTexImage3D,"1.3")
|
|
402
134
|
target = (GLenum)NUM2INT(arg1);
|
|
403
135
|
level = (GLint)NUM2INT(arg2);
|
|
404
136
|
internalformat = (GLenum)NUM2INT(arg3);
|
|
@@ -410,10 +142,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
|
410
142
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
411
143
|
fptr_glCompressedTexImage3D(target,level,internalformat,width,height,depth,border,imagesize,(GLvoid *)NUM2INT(arg9));
|
|
412
144
|
} else {
|
|
413
|
-
if (TYPE(arg9) == T_STRING) {
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
145
|
+
if (TYPE(arg9) == T_STRING || TYPE(arg9) == T_ARRAY) {
|
|
146
|
+
VALUE data;
|
|
147
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg9);
|
|
148
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
149
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
150
|
+
pixels = RSTRING_PTR(data);
|
|
417
151
|
} else if (NIL_P(arg9)) {
|
|
418
152
|
pixels = NULL;
|
|
419
153
|
} else {
|
|
@@ -422,6 +156,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
|
422
156
|
}
|
|
423
157
|
fptr_glCompressedTexImage3D(target,level,internalformat,width,height,depth,border,imagesize,pixels);
|
|
424
158
|
}
|
|
159
|
+
CHECK_GLERROR
|
|
425
160
|
return Qnil;
|
|
426
161
|
}
|
|
427
162
|
|
|
@@ -438,7 +173,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
|
438
173
|
GLint border;
|
|
439
174
|
GLsizei imagesize;
|
|
440
175
|
GLvoid *pixels;
|
|
441
|
-
LOAD_GL_FUNC(glCompressedTexImage2D)
|
|
176
|
+
LOAD_GL_FUNC(glCompressedTexImage2D,"1.3")
|
|
442
177
|
target = (GLenum)NUM2INT(arg1);
|
|
443
178
|
level = (GLint)NUM2INT(arg2);
|
|
444
179
|
internalformat = (GLenum)NUM2INT(arg3);
|
|
@@ -449,10 +184,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
|
449
184
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
450
185
|
fptr_glCompressedTexImage2D(target,level,internalformat,width,height,border,imagesize,(GLvoid *)NUM2INT(arg8));
|
|
451
186
|
} else {
|
|
452
|
-
if (TYPE(arg8) == T_STRING) {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
187
|
+
if (TYPE(arg8) == T_STRING || TYPE(arg8) == T_ARRAY) {
|
|
188
|
+
VALUE data;
|
|
189
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg8);
|
|
190
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
191
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
192
|
+
pixels = RSTRING_PTR(data);
|
|
456
193
|
} else if (NIL_P(arg8)) {
|
|
457
194
|
pixels = NULL;
|
|
458
195
|
} else {
|
|
@@ -461,6 +198,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
|
461
198
|
}
|
|
462
199
|
fptr_glCompressedTexImage2D(target,level,internalformat,width,height,border,imagesize,pixels);
|
|
463
200
|
}
|
|
201
|
+
CHECK_GLERROR
|
|
464
202
|
return Qnil;
|
|
465
203
|
}
|
|
466
204
|
|
|
@@ -476,7 +214,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
476
214
|
GLint border;
|
|
477
215
|
GLsizei imagesize;
|
|
478
216
|
GLvoid *pixels;
|
|
479
|
-
LOAD_GL_FUNC(glCompressedTexImage1D)
|
|
217
|
+
LOAD_GL_FUNC(glCompressedTexImage1D,"1.3")
|
|
480
218
|
target = (GLenum)NUM2INT(arg1);
|
|
481
219
|
level = (GLint)NUM2INT(arg2);
|
|
482
220
|
internalformat = (GLenum)NUM2INT(arg3);
|
|
@@ -486,10 +224,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
486
224
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
487
225
|
fptr_glCompressedTexImage1D(target,level,internalformat,width,border,imagesize,(GLvoid *)NUM2INT(arg7));
|
|
488
226
|
} else {
|
|
489
|
-
if (TYPE(arg7) == T_STRING) {
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
227
|
+
if (TYPE(arg7) == T_STRING || TYPE(arg7) == T_ARRAY) {
|
|
228
|
+
VALUE data;
|
|
229
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg7);
|
|
230
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
231
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
232
|
+
pixels = RSTRING_PTR(data);
|
|
493
233
|
} else if (NIL_P(arg7)) {
|
|
494
234
|
pixels = NULL;
|
|
495
235
|
} else {
|
|
@@ -498,6 +238,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
498
238
|
}
|
|
499
239
|
fptr_glCompressedTexImage1D(target,level,internalformat,width,border,imagesize,pixels);
|
|
500
240
|
}
|
|
241
|
+
CHECK_GLERROR
|
|
501
242
|
return Qnil;
|
|
502
243
|
}
|
|
503
244
|
|
|
@@ -517,7 +258,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11;
|
|
|
517
258
|
GLenum format;
|
|
518
259
|
GLsizei imagesize;
|
|
519
260
|
GLvoid *pixels;
|
|
520
|
-
LOAD_GL_FUNC(glCompressedTexSubImage3D)
|
|
261
|
+
LOAD_GL_FUNC(glCompressedTexSubImage3D,"1.3")
|
|
521
262
|
target = (GLenum)NUM2INT(arg1);
|
|
522
263
|
level = (GLint)NUM2INT(arg2);
|
|
523
264
|
xoffset = (GLint)NUM2INT(arg3);
|
|
@@ -531,16 +272,15 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11;
|
|
|
531
272
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
532
273
|
fptr_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imagesize,(GLvoid *)NUM2INT(arg11));
|
|
533
274
|
} else {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
return Qnil;
|
|
541
|
-
}
|
|
275
|
+
VALUE data;
|
|
276
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg11);
|
|
277
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
278
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
279
|
+
pixels = RSTRING_PTR(data);
|
|
280
|
+
|
|
542
281
|
fptr_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imagesize,pixels);
|
|
543
282
|
}
|
|
283
|
+
CHECK_GLERROR
|
|
544
284
|
return Qnil;
|
|
545
285
|
}
|
|
546
286
|
|
|
@@ -558,7 +298,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
|
558
298
|
GLenum format;
|
|
559
299
|
GLsizei imagesize;
|
|
560
300
|
GLvoid *pixels;
|
|
561
|
-
LOAD_GL_FUNC(glCompressedTexSubImage2D)
|
|
301
|
+
LOAD_GL_FUNC(glCompressedTexSubImage2D,"1.3")
|
|
562
302
|
target = (GLenum)NUM2INT(arg1);
|
|
563
303
|
level = (GLint)NUM2INT(arg2);
|
|
564
304
|
xoffset = (GLint)NUM2INT(arg3);
|
|
@@ -570,16 +310,14 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
|
570
310
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
571
311
|
fptr_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imagesize,(GLvoid *)NUM2INT(arg9));
|
|
572
312
|
} else {
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
Check_Type(arg9,T_STRING); /* force exception */
|
|
579
|
-
return Qnil;
|
|
580
|
-
}
|
|
313
|
+
VALUE data;
|
|
314
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg9);
|
|
315
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
316
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
317
|
+
pixels = RSTRING_PTR(data);
|
|
581
318
|
fptr_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imagesize,pixels);
|
|
582
319
|
}
|
|
320
|
+
CHECK_GLERROR
|
|
583
321
|
return Qnil;
|
|
584
322
|
}
|
|
585
323
|
|
|
@@ -595,7 +333,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
595
333
|
GLenum format;
|
|
596
334
|
GLsizei imagesize;
|
|
597
335
|
GLvoid *pixels;
|
|
598
|
-
LOAD_GL_FUNC(glCompressedTexSubImage1D)
|
|
336
|
+
LOAD_GL_FUNC(glCompressedTexSubImage1D,"1.3")
|
|
599
337
|
target = (GLenum)NUM2INT(arg1);
|
|
600
338
|
level = (GLint)NUM2INT(arg2);
|
|
601
339
|
xoffset = (GLint)NUM2INT(arg3);
|
|
@@ -605,16 +343,14 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
605
343
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
606
344
|
fptr_glCompressedTexSubImage1D(target,level,xoffset,width,format,imagesize,(GLvoid *)NUM2INT(arg7));
|
|
607
345
|
} else {
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
Check_Type(arg7,T_STRING); /* force exception */
|
|
614
|
-
return Qnil;
|
|
615
|
-
}
|
|
346
|
+
VALUE data;
|
|
347
|
+
data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg7);
|
|
348
|
+
if (RSTRING_LEN(data) < imagesize)
|
|
349
|
+
rb_raise(rb_eArgError, "string length:%li",RSTRING_LEN(data));
|
|
350
|
+
pixels = RSTRING_PTR(data);
|
|
616
351
|
fptr_glCompressedTexSubImage1D(target,level,xoffset,width,format,imagesize,pixels);
|
|
617
352
|
}
|
|
353
|
+
CHECK_GLERROR
|
|
618
354
|
return Qnil;
|
|
619
355
|
}
|
|
620
356
|
|
|
@@ -631,7 +367,7 @@ VALUE obj;
|
|
|
631
367
|
VALUE data;
|
|
632
368
|
VALUE args[3];
|
|
633
369
|
int numargs;
|
|
634
|
-
LOAD_GL_FUNC(glGetCompressedTexImage)
|
|
370
|
+
LOAD_GL_FUNC(glGetCompressedTexImage,"1.3")
|
|
635
371
|
numargs = rb_scan_args(argc, argv, "21", &args[0], &args[1], &args[2]);
|
|
636
372
|
target = (GLenum)NUM2INT(args[0]);
|
|
637
373
|
lod = (GLenum)NUM2INT(args[1]);
|
|
@@ -641,11 +377,14 @@ VALUE obj;
|
|
|
641
377
|
if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
|
642
378
|
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
|
|
643
379
|
glGetTexLevelParameteriv(target,lod,GL_TEXTURE_COMPRESSED_IMAGE_SIZE,&size); /* 1.0 function */
|
|
380
|
+
CHECK_GLERROR
|
|
644
381
|
data = allocate_buffer_with_string(size);
|
|
645
|
-
fptr_glGetCompressedTexImage(target,lod,(GLvoid*)
|
|
382
|
+
fptr_glGetCompressedTexImage(target,lod,(GLvoid*)RSTRING_PTR(data));
|
|
383
|
+
CHECK_GLERROR
|
|
646
384
|
return data;
|
|
647
385
|
case 3:
|
|
648
386
|
fptr_glGetCompressedTexImage(target,lod,(GLvoid*)NUM2INT(args[2]));
|
|
387
|
+
CHECK_GLERROR
|
|
649
388
|
return Qnil;
|
|
650
389
|
}
|
|
651
390
|
}
|