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.2.c
CHANGED
|
@@ -19,8 +19,19 @@
|
|
|
19
19
|
|
|
20
20
|
/* OpenGL 1.2 functions */
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
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")
|
|
24
35
|
|
|
25
36
|
static void (APIENTRY * fptr_glDrawRangeElements)(GLenum,GLuint,GLuint,GLsizei,GLenum,GLvoid*);
|
|
26
37
|
static VALUE
|
|
@@ -32,7 +43,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
32
43
|
GLuint end;
|
|
33
44
|
GLsizei count;
|
|
34
45
|
GLenum type;
|
|
35
|
-
LOAD_GL_FUNC(glDrawRangeElements)
|
|
46
|
+
LOAD_GL_FUNC(glDrawRangeElements,"1.2")
|
|
36
47
|
mode = (GLenum)NUM2INT(arg1);
|
|
37
48
|
start = (GLuint)NUM2UINT(arg2);
|
|
38
49
|
end = (GLuint)NUM2UINT(arg3);
|
|
@@ -41,9 +52,11 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
41
52
|
if (CheckBufferBinding(GL_ELEMENT_ARRAY_BUFFER_BINDING)) {
|
|
42
53
|
fptr_glDrawRangeElements(mode, start, end, count, type, (GLvoid *)NUM2INT(arg6));
|
|
43
54
|
} else {
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
VALUE data;
|
|
56
|
+
data = pack_array_or_pass_string(type,arg6);
|
|
57
|
+
fptr_glDrawRangeElements(mode, start, end, count, type, RSTRING_PTR(data));
|
|
46
58
|
}
|
|
59
|
+
CHECK_GLERROR
|
|
47
60
|
return Qnil;
|
|
48
61
|
}
|
|
49
62
|
|
|
@@ -57,7 +70,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
57
70
|
GLsizei width;
|
|
58
71
|
GLenum format;
|
|
59
72
|
GLenum type;
|
|
60
|
-
LOAD_GL_FUNC(glColorTable)
|
|
73
|
+
LOAD_GL_FUNC(glColorTable,"1.2")
|
|
61
74
|
target = (GLenum)NUM2INT(arg1);
|
|
62
75
|
internalformat = (GLenum)NUM2INT(arg2);
|
|
63
76
|
width = (GLsizei)NUM2UINT(arg3);
|
|
@@ -66,10 +79,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
66
79
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
67
80
|
fptr_glColorTable(target,internalformat,width,format,type,(GLvoid *)NUM2INT(arg6));
|
|
68
81
|
} else {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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,RSTRING_PTR(data));
|
|
72
86
|
}
|
|
87
|
+
CHECK_GLERROR
|
|
73
88
|
return Qnil;
|
|
74
89
|
}
|
|
75
90
|
|
|
@@ -81,12 +96,13 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
81
96
|
GLenum target;
|
|
82
97
|
GLenum pname;
|
|
83
98
|
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
|
84
|
-
LOAD_GL_FUNC(glColorTableParameterfv)
|
|
99
|
+
LOAD_GL_FUNC(glColorTableParameterfv,"1.2")
|
|
85
100
|
target = (GLenum)NUM2INT(arg1);
|
|
86
101
|
pname = (GLenum)NUM2INT(arg2);
|
|
87
102
|
Check_Type(arg3,T_ARRAY);
|
|
88
103
|
ary2cflt(arg3,params,4);
|
|
89
104
|
fptr_glColorTableParameterfv(target,pname,params);
|
|
105
|
+
CHECK_GLERROR
|
|
90
106
|
return Qnil;
|
|
91
107
|
}
|
|
92
108
|
|
|
@@ -98,34 +114,16 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
98
114
|
GLenum target;
|
|
99
115
|
GLenum pname;
|
|
100
116
|
GLint params[4] = {0,0,0,0};
|
|
101
|
-
LOAD_GL_FUNC(glColorTableParameteriv)
|
|
117
|
+
LOAD_GL_FUNC(glColorTableParameteriv,"1.2")
|
|
102
118
|
target = (GLenum)NUM2INT(arg1);
|
|
103
119
|
pname = (GLenum)NUM2INT(arg2);
|
|
104
120
|
Check_Type(arg3,T_ARRAY);
|
|
105
121
|
ary2cint(arg3,params,4);
|
|
106
122
|
fptr_glColorTableParameteriv(target,pname,params);
|
|
123
|
+
CHECK_GLERROR
|
|
107
124
|
return Qnil;
|
|
108
125
|
}
|
|
109
126
|
|
|
110
|
-
static void (APIENTRY * fptr_glCopyColorTable)(GLenum,GLenum,GLint,GLint,GLsizei);
|
|
111
|
-
static VALUE
|
|
112
|
-
gl_CopyColorTable(obj,arg1,arg2,arg3,arg4,arg5)
|
|
113
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
114
|
-
{
|
|
115
|
-
GLenum target;
|
|
116
|
-
GLenum internalformat;
|
|
117
|
-
GLint x;
|
|
118
|
-
GLint y;
|
|
119
|
-
GLsizei width;
|
|
120
|
-
LOAD_GL_FUNC(glCopyColorTable)
|
|
121
|
-
target = (GLenum)NUM2INT(arg1);
|
|
122
|
-
internalformat = (GLenum)NUM2INT(arg2);
|
|
123
|
-
x = (GLint)NUM2INT(arg3);
|
|
124
|
-
y = (GLint)NUM2INT(arg4);
|
|
125
|
-
width = (GLsizei)NUM2INT(arg5);
|
|
126
|
-
fptr_glCopyColorTable(target,internalformat,x,y,width);
|
|
127
|
-
return Qnil;
|
|
128
|
-
}
|
|
129
127
|
|
|
130
128
|
static void (APIENTRY * fptr_glGetColorTableParameterfv)(GLenum,GLenum,GLfloat *);
|
|
131
129
|
static VALUE
|
|
@@ -136,9 +134,7 @@ VALUE obj,arg1,arg2;
|
|
|
136
134
|
GLenum pname;
|
|
137
135
|
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
|
138
136
|
GLsizei size;
|
|
139
|
-
|
|
140
|
-
int i;
|
|
141
|
-
LOAD_GL_FUNC(glGetColorTableParameterfv)
|
|
137
|
+
LOAD_GL_FUNC(glGetColorTableParameterfv,"1.2")
|
|
142
138
|
target = (GLenum)NUM2INT(arg1);
|
|
143
139
|
pname = (GLenum)NUM2INT(arg2);
|
|
144
140
|
switch (pname) {
|
|
@@ -151,10 +147,7 @@ VALUE obj,arg1,arg2;
|
|
|
151
147
|
break;
|
|
152
148
|
}
|
|
153
149
|
fptr_glGetColorTableParameterfv(target,pname,params);
|
|
154
|
-
|
|
155
|
-
for(i=0;i<size;i++)
|
|
156
|
-
rb_ary_push(retary, rb_float_new(params[i]));
|
|
157
|
-
return retary;
|
|
150
|
+
RET_ARRAY_OR_SINGLE(size,RETCONV_GLfloat,params)
|
|
158
151
|
}
|
|
159
152
|
|
|
160
153
|
static void (APIENTRY * fptr_glGetColorTableParameteriv)(GLenum,GLenum,GLint *);
|
|
@@ -166,9 +159,7 @@ VALUE obj,arg1,arg2;
|
|
|
166
159
|
GLenum pname;
|
|
167
160
|
GLint params[4] = {0,0,0,0};
|
|
168
161
|
GLsizei size;
|
|
169
|
-
|
|
170
|
-
int i;
|
|
171
|
-
LOAD_GL_FUNC(glGetColorTableParameteriv)
|
|
162
|
+
LOAD_GL_FUNC(glGetColorTableParameteriv,"1.2")
|
|
172
163
|
target = (GLenum)NUM2INT(arg1);
|
|
173
164
|
pname = (GLenum)NUM2INT(arg2);
|
|
174
165
|
switch (pname) {
|
|
@@ -181,10 +172,7 @@ VALUE obj,arg1,arg2;
|
|
|
181
172
|
break;
|
|
182
173
|
}
|
|
183
174
|
fptr_glGetColorTableParameteriv(target,pname,params);
|
|
184
|
-
|
|
185
|
-
for(i=0;i<size;i++)
|
|
186
|
-
rb_ary_push(retary, INT2NUM(params[i]));
|
|
187
|
-
return retary;
|
|
175
|
+
RET_ARRAY_OR_SINGLE(size,RETCONV_GLint,params)
|
|
188
176
|
}
|
|
189
177
|
|
|
190
178
|
static void (APIENTRY * fptr_glGetColorTable)(GLenum,GLenum,GLenum,GLvoid *);
|
|
@@ -197,16 +185,18 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
197
185
|
GLenum type;
|
|
198
186
|
GLsizei width = 0;
|
|
199
187
|
VALUE data;
|
|
200
|
-
LOAD_GL_FUNC(glGetColorTable)
|
|
201
|
-
LOAD_GL_FUNC(glGetColorTableParameteriv)
|
|
188
|
+
LOAD_GL_FUNC(glGetColorTable,"1.2")
|
|
189
|
+
LOAD_GL_FUNC(glGetColorTableParameteriv,"1.2")
|
|
202
190
|
target = (GLenum)NUM2INT(arg1);
|
|
203
191
|
format = (GLenum)NUM2INT(arg2);
|
|
204
192
|
type = (GLenum)NUM2INT(arg3);
|
|
205
193
|
fptr_glGetColorTableParameteriv(target,GL_COLOR_TABLE_WIDTH,&width);
|
|
194
|
+
CHECK_GLERROR
|
|
206
195
|
data = allocate_buffer_with_string(GetDataSize(type,format,width));
|
|
207
196
|
FORCE_PIXEL_STORE_MODE
|
|
208
|
-
fptr_glGetColorTable(target,format,type,(GLvoid*)
|
|
197
|
+
fptr_glGetColorTable(target,format,type,(GLvoid*)RSTRING_PTR(data));
|
|
209
198
|
RESTORE_PIXEL_STORE_MODE
|
|
199
|
+
CHECK_GLERROR
|
|
210
200
|
return data;
|
|
211
201
|
}
|
|
212
202
|
|
|
@@ -220,7 +210,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
220
210
|
GLsizei count;
|
|
221
211
|
GLenum format;
|
|
222
212
|
GLenum type;
|
|
223
|
-
LOAD_GL_FUNC(glColorSubTable)
|
|
213
|
+
LOAD_GL_FUNC(glColorSubTable,"1.2")
|
|
224
214
|
target = (GLenum)NUM2INT(arg1);
|
|
225
215
|
start = (GLsizei)NUM2UINT(arg2);
|
|
226
216
|
count = (GLsizei)NUM2UINT(arg3);
|
|
@@ -229,30 +219,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
229
219
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
230
220
|
fptr_glColorSubTable(target,start,count,format,type,(GLvoid *)NUM2INT(arg6));
|
|
231
221
|
} else {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
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));
|
|
235
226
|
}
|
|
236
|
-
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
static void (APIENTRY * fptr_glCopyColorSubTable)(GLenum,GLsizei,GLint,GLint,GLsizei);
|
|
240
|
-
static VALUE
|
|
241
|
-
gl_CopyColorSubTable(obj,arg1,arg2,arg3,arg4,arg5)
|
|
242
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
243
|
-
{
|
|
244
|
-
GLenum target;
|
|
245
|
-
GLsizei start;
|
|
246
|
-
GLint x;
|
|
247
|
-
GLint y;
|
|
248
|
-
GLsizei width;
|
|
249
|
-
LOAD_GL_FUNC(glCopyColorSubTable)
|
|
250
|
-
target = (GLenum)NUM2INT(arg1);
|
|
251
|
-
start = (GLsizei)NUM2UINT(arg2);
|
|
252
|
-
x = (GLint)NUM2INT(arg3);
|
|
253
|
-
y = (GLint)NUM2INT(arg4);
|
|
254
|
-
width = (GLsizei)NUM2UINT(arg5);
|
|
255
|
-
fptr_glCopyColorSubTable(target,start,x,y,width);
|
|
227
|
+
CHECK_GLERROR
|
|
256
228
|
return Qnil;
|
|
257
229
|
}
|
|
258
230
|
|
|
@@ -266,7 +238,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
266
238
|
GLsizei width;
|
|
267
239
|
GLenum format;
|
|
268
240
|
GLenum type;
|
|
269
|
-
LOAD_GL_FUNC(glConvolutionFilter1D)
|
|
241
|
+
LOAD_GL_FUNC(glConvolutionFilter1D,"1.2")
|
|
270
242
|
target = (GLenum)NUM2INT(arg1);
|
|
271
243
|
internalformat = (GLenum)NUM2INT(arg2);
|
|
272
244
|
width = (GLsizei)NUM2UINT(arg3);
|
|
@@ -275,10 +247,12 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
|
275
247
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
276
248
|
fptr_glConvolutionFilter1D(target,internalformat,width,format,type,(GLvoid *)NUM2INT(arg6));
|
|
277
249
|
} else {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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));
|
|
281
254
|
}
|
|
255
|
+
CHECK_GLERROR
|
|
282
256
|
return Qnil;
|
|
283
257
|
}
|
|
284
258
|
|
|
@@ -293,7 +267,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
293
267
|
GLsizei height;
|
|
294
268
|
GLenum format;
|
|
295
269
|
GLenum type;
|
|
296
|
-
LOAD_GL_FUNC(glConvolutionFilter2D)
|
|
270
|
+
LOAD_GL_FUNC(glConvolutionFilter2D,"1.2")
|
|
297
271
|
target = (GLenum)NUM2INT(arg1);
|
|
298
272
|
internalformat = (GLenum)NUM2INT(arg2);
|
|
299
273
|
width = (GLsizei)NUM2UINT(arg3);
|
|
@@ -303,26 +277,13 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
|
303
277
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
304
278
|
fptr_glConvolutionFilter2D(target,internalformat,width,height,format,type,(GLvoid *)NUM2INT(arg7));
|
|
305
279
|
} else {
|
|
280
|
+
VALUE data;
|
|
281
|
+
data = pack_array_or_pass_string(type,arg7);
|
|
306
282
|
Check_Type(arg7,T_STRING);
|
|
307
|
-
CheckDataSize(type,format,width*height,
|
|
308
|
-
fptr_glConvolutionFilter2D(target,internalformat,width,height,format,type,
|
|
283
|
+
CheckDataSize(type,format,width*height,data);
|
|
284
|
+
fptr_glConvolutionFilter2D(target,internalformat,width,height,format,type,RSTRING_PTR(data));
|
|
309
285
|
}
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
static void (APIENTRY * fptr_glConvolutionParameterf)(GLenum,GLenum,GLfloat);
|
|
314
|
-
static VALUE
|
|
315
|
-
gl_ConvolutionParameterf(obj,arg1,arg2,arg3)
|
|
316
|
-
VALUE obj,arg1,arg2,arg3;
|
|
317
|
-
{
|
|
318
|
-
GLenum target;
|
|
319
|
-
GLenum pname;
|
|
320
|
-
GLfloat params;
|
|
321
|
-
LOAD_GL_FUNC(glConvolutionParameterf)
|
|
322
|
-
target = (GLenum)NUM2INT(arg1);
|
|
323
|
-
pname = (GLenum)NUM2INT(arg2);
|
|
324
|
-
params = (GLfloat)NUM2INT(arg3);
|
|
325
|
-
fptr_glConvolutionParameterf(target,pname,params);
|
|
286
|
+
CHECK_GLERROR
|
|
326
287
|
return Qnil;
|
|
327
288
|
}
|
|
328
289
|
|
|
@@ -334,28 +295,13 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
334
295
|
GLenum target;
|
|
335
296
|
GLenum pname;
|
|
336
297
|
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
|
337
|
-
LOAD_GL_FUNC(glConvolutionParameterfv)
|
|
298
|
+
LOAD_GL_FUNC(glConvolutionParameterfv,"1.2")
|
|
338
299
|
target = (GLenum)NUM2INT(arg1);
|
|
339
300
|
pname = (GLenum)NUM2INT(arg2);
|
|
340
301
|
Check_Type(arg3,T_ARRAY);
|
|
341
302
|
ary2cflt(arg3,params,4);
|
|
342
303
|
fptr_glConvolutionParameterfv(target,pname,params);
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
static void (APIENTRY * fptr_glConvolutionParameteri)(GLenum,GLenum,GLint);
|
|
347
|
-
static VALUE
|
|
348
|
-
gl_ConvolutionParameteri(obj,arg1,arg2,arg3)
|
|
349
|
-
VALUE obj,arg1,arg2,arg3;
|
|
350
|
-
{
|
|
351
|
-
GLenum target;
|
|
352
|
-
GLenum pname;
|
|
353
|
-
GLint params;
|
|
354
|
-
LOAD_GL_FUNC(glConvolutionParameteri)
|
|
355
|
-
target = (GLenum)NUM2INT(arg1);
|
|
356
|
-
pname = (GLenum)NUM2INT(arg2);
|
|
357
|
-
params = (GLint)NUM2INT(arg3);
|
|
358
|
-
fptr_glConvolutionParameteri(target,pname,params);
|
|
304
|
+
CHECK_GLERROR
|
|
359
305
|
return Qnil;
|
|
360
306
|
}
|
|
361
307
|
|
|
@@ -367,54 +313,13 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
367
313
|
GLenum target;
|
|
368
314
|
GLenum pname;
|
|
369
315
|
GLint params[4] = {0,0,0,0};
|
|
370
|
-
LOAD_GL_FUNC(glConvolutionParameteriv)
|
|
316
|
+
LOAD_GL_FUNC(glConvolutionParameteriv,"1.2")
|
|
371
317
|
target = (GLenum)NUM2INT(arg1);
|
|
372
318
|
pname = (GLenum)NUM2INT(arg2);
|
|
373
319
|
Check_Type(arg3,T_ARRAY);
|
|
374
320
|
ary2cint(arg3,params,4);
|
|
375
321
|
fptr_glConvolutionParameteriv(target,pname,params);
|
|
376
|
-
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
static void (APIENTRY * fptr_glCopyConvolutionFilter1D)(GLenum,GLenum,GLint,GLint,GLsizei);
|
|
380
|
-
static VALUE
|
|
381
|
-
gl_CopyConvolutionFilter1D(obj,arg1,arg2,arg3,arg4,arg5)
|
|
382
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
383
|
-
{
|
|
384
|
-
GLenum target;
|
|
385
|
-
GLenum internalformat;
|
|
386
|
-
GLint x;
|
|
387
|
-
GLint y;
|
|
388
|
-
GLsizei width;
|
|
389
|
-
LOAD_GL_FUNC(glCopyConvolutionFilter1D)
|
|
390
|
-
target = (GLenum)NUM2INT(arg1);
|
|
391
|
-
internalformat = (GLenum)NUM2INT(arg2);
|
|
392
|
-
x = (GLint)NUM2INT(arg3);
|
|
393
|
-
y = (GLint)NUM2INT(arg4);
|
|
394
|
-
width = (GLsizei)NUM2UINT(arg5);
|
|
395
|
-
fptr_glCopyConvolutionFilter1D(target,internalformat,x,y,width);
|
|
396
|
-
return Qnil;
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
static void (APIENTRY * fptr_glCopyConvolutionFilter2D)(GLenum,GLenum,GLint,GLint,GLsizei,GLsizei);
|
|
400
|
-
static VALUE
|
|
401
|
-
gl_CopyConvolutionFilter2D(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
|
402
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
403
|
-
{
|
|
404
|
-
GLenum target;
|
|
405
|
-
GLenum internalformat;
|
|
406
|
-
GLint x;
|
|
407
|
-
GLint y;
|
|
408
|
-
GLsizei width;
|
|
409
|
-
GLsizei height;
|
|
410
|
-
LOAD_GL_FUNC(glCopyConvolutionFilter2D)
|
|
411
|
-
target = (GLenum)NUM2INT(arg1);
|
|
412
|
-
internalformat = (GLenum)NUM2INT(arg2);
|
|
413
|
-
x = (GLint)NUM2INT(arg3);
|
|
414
|
-
y = (GLint)NUM2INT(arg4);
|
|
415
|
-
width = (GLsizei)NUM2UINT(arg5);
|
|
416
|
-
height = (GLsizei)NUM2UINT(arg6);
|
|
417
|
-
fptr_glCopyConvolutionFilter2D(target,internalformat,x,y,width,height);
|
|
322
|
+
CHECK_GLERROR
|
|
418
323
|
return Qnil;
|
|
419
324
|
}
|
|
420
325
|
|
|
@@ -427,9 +332,7 @@ VALUE obj,arg1,arg2;
|
|
|
427
332
|
GLenum pname;
|
|
428
333
|
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
|
429
334
|
GLsizei size;
|
|
430
|
-
|
|
431
|
-
VALUE retary;
|
|
432
|
-
LOAD_GL_FUNC(glGetConvolutionParameterfv)
|
|
335
|
+
LOAD_GL_FUNC(glGetConvolutionParameterfv,"1.2")
|
|
433
336
|
target = (GLenum)NUM2INT(arg1);
|
|
434
337
|
pname = (GLenum)NUM2INT(arg2);
|
|
435
338
|
switch(pname) {
|
|
@@ -443,10 +346,7 @@ VALUE obj,arg1,arg2;
|
|
|
443
346
|
break;
|
|
444
347
|
}
|
|
445
348
|
fptr_glGetConvolutionParameterfv(target,pname,params);
|
|
446
|
-
|
|
447
|
-
for(i=0;i<size;i++)
|
|
448
|
-
rb_ary_push(retary, rb_float_new(params[i]));
|
|
449
|
-
return retary;
|
|
349
|
+
RET_ARRAY_OR_SINGLE(size,RETCONV_GLfloat,params)
|
|
450
350
|
}
|
|
451
351
|
|
|
452
352
|
static void (APIENTRY * fptr_glGetConvolutionParameteriv)(GLenum,GLenum,GLint *);
|
|
@@ -458,9 +358,7 @@ VALUE obj,arg1,arg2;
|
|
|
458
358
|
GLenum pname;
|
|
459
359
|
GLint params[4] = {0,0,0,0};
|
|
460
360
|
GLsizei size;
|
|
461
|
-
|
|
462
|
-
VALUE retary;
|
|
463
|
-
LOAD_GL_FUNC(glGetConvolutionParameteriv)
|
|
361
|
+
LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
|
|
464
362
|
target = (GLenum)NUM2INT(arg1);
|
|
465
363
|
pname = (GLenum)NUM2INT(arg2);
|
|
466
364
|
switch(pname) {
|
|
@@ -474,10 +372,7 @@ VALUE obj,arg1,arg2;
|
|
|
474
372
|
break;
|
|
475
373
|
}
|
|
476
374
|
fptr_glGetConvolutionParameteriv(target,pname,params);
|
|
477
|
-
|
|
478
|
-
for(i=0;i<size;i++)
|
|
479
|
-
rb_ary_push(retary, INT2NUM(params[i]));
|
|
480
|
-
return retary;
|
|
375
|
+
RET_ARRAY_OR_SINGLE(size,RETCONV_GLint,params)
|
|
481
376
|
}
|
|
482
377
|
|
|
483
378
|
static void (APIENTRY * fptr_glGetConvolutionFilter)(GLenum,GLenum,GLenum,GLvoid *);
|
|
@@ -490,14 +385,12 @@ VALUE obj;
|
|
|
490
385
|
GLenum target;
|
|
491
386
|
GLenum format;
|
|
492
387
|
GLenum type;
|
|
493
|
-
//GLsizei format_size;
|
|
494
|
-
//GLsizei type_size;
|
|
495
388
|
GLint size = 0;
|
|
496
389
|
VALUE data;
|
|
497
390
|
VALUE args[4];
|
|
498
391
|
int numargs;
|
|
499
|
-
LOAD_GL_FUNC(glGetConvolutionFilter)
|
|
500
|
-
LOAD_GL_FUNC(glGetConvolutionParameteriv)
|
|
392
|
+
LOAD_GL_FUNC(glGetConvolutionFilter,"1.2")
|
|
393
|
+
LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
|
|
501
394
|
numargs = rb_scan_args(argc, argv, "31", &args[0], &args[1], &args[2], &args[3]);
|
|
502
395
|
target = (GLenum)NUM2INT(args[0]);
|
|
503
396
|
format = (GLenum)NUM2INT(args[1]);
|
|
@@ -517,10 +410,12 @@ VALUE obj;
|
|
|
517
410
|
fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_HEIGHT,&size);
|
|
518
411
|
size *=tmp;
|
|
519
412
|
}
|
|
413
|
+
CHECK_GLERROR
|
|
520
414
|
data = allocate_buffer_with_string(GetDataSize(type,format,size));
|
|
521
415
|
FORCE_PIXEL_STORE_MODE
|
|
522
|
-
fptr_glGetConvolutionFilter(target,format,type,(GLvoid*)
|
|
416
|
+
fptr_glGetConvolutionFilter(target,format,type,(GLvoid*)RSTRING_PTR(data));
|
|
523
417
|
RESTORE_PIXEL_STORE_MODE
|
|
418
|
+
CHECK_GLERROR
|
|
524
419
|
return data;
|
|
525
420
|
case 4:
|
|
526
421
|
if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
|
@@ -529,6 +424,7 @@ VALUE obj;
|
|
|
529
424
|
FORCE_PIXEL_STORE_MODE
|
|
530
425
|
fptr_glGetConvolutionFilter(target,format,type,(GLvoid*)NUM2INT(args[3]));
|
|
531
426
|
RESTORE_PIXEL_STORE_MODE
|
|
427
|
+
CHECK_GLERROR
|
|
532
428
|
return Qnil;
|
|
533
429
|
}
|
|
534
430
|
}
|
|
@@ -550,8 +446,8 @@ VALUE obj;
|
|
|
550
446
|
VALUE retary;
|
|
551
447
|
VALUE args[6];
|
|
552
448
|
int numargs;
|
|
553
|
-
LOAD_GL_FUNC(glGetSeparableFilter)
|
|
554
|
-
LOAD_GL_FUNC(glGetConvolutionParameteriv)
|
|
449
|
+
LOAD_GL_FUNC(glGetSeparableFilter,"1.2")
|
|
450
|
+
LOAD_GL_FUNC(glGetConvolutionParameteriv,"1.2")
|
|
555
451
|
numargs = rb_scan_args(argc, argv, "33", &args[0], &args[1], &args[2], &args[3], &args[4], &args[5]);
|
|
556
452
|
target = (GLenum)NUM2INT(args[0]);
|
|
557
453
|
format = (GLenum)NUM2INT(args[1]);
|
|
@@ -565,14 +461,16 @@ VALUE obj;
|
|
|
565
461
|
|
|
566
462
|
fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_WIDTH,&size_row);
|
|
567
463
|
fptr_glGetConvolutionParameteriv(target,GL_CONVOLUTION_HEIGHT,&size_column);
|
|
464
|
+
CHECK_GLERROR
|
|
568
465
|
data_row = allocate_buffer_with_string(GetDataSize(type,format,size_row));
|
|
569
466
|
data_column = allocate_buffer_with_string(GetDataSize(type,format,size_column));
|
|
570
467
|
FORCE_PIXEL_STORE_MODE
|
|
571
|
-
fptr_glGetSeparableFilter(target,format,type,(GLvoid*)
|
|
468
|
+
fptr_glGetSeparableFilter(target,format,type,(GLvoid*)RSTRING_PTR(data_row),(GLvoid*)RSTRING_PTR(data_column),0);
|
|
572
469
|
RESTORE_PIXEL_STORE_MODE
|
|
573
470
|
retary = rb_ary_new2(2);
|
|
574
471
|
rb_ary_push(retary, data_row);
|
|
575
472
|
rb_ary_push(retary, data_column);
|
|
473
|
+
CHECK_GLERROR
|
|
576
474
|
return retary;
|
|
577
475
|
break;
|
|
578
476
|
case 6:
|
|
@@ -581,6 +479,7 @@ VALUE obj;
|
|
|
581
479
|
FORCE_PIXEL_STORE_MODE
|
|
582
480
|
fptr_glGetSeparableFilter(target,format,type,(GLvoid*)NUM2INT(args[3]),(GLvoid*)NUM2INT(args[4]),(GLvoid*)NUM2INT(args[5]));
|
|
583
481
|
RESTORE_PIXEL_STORE_MODE
|
|
482
|
+
CHECK_GLERROR
|
|
584
483
|
return Qnil;
|
|
585
484
|
}
|
|
586
485
|
}
|
|
@@ -596,7 +495,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
|
596
495
|
GLsizei height;
|
|
597
496
|
GLenum format;
|
|
598
497
|
GLenum type;
|
|
599
|
-
LOAD_GL_FUNC(glSeparableFilter2D)
|
|
498
|
+
LOAD_GL_FUNC(glSeparableFilter2D,"1.2")
|
|
600
499
|
target = (GLenum)NUM2INT(arg1);
|
|
601
500
|
internalformat = (GLenum)NUM2INT(arg2);
|
|
602
501
|
width = (GLsizei)NUM2UINT(arg3);
|
|
@@ -606,12 +505,15 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
|
606
505
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
607
506
|
fptr_glSeparableFilter2D(target,internalformat,width,height,format,type,(GLvoid *)NUM2INT(arg7),(GLvoid *)NUM2INT(arg8));
|
|
608
507
|
} else {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
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));
|
|
614
515
|
}
|
|
516
|
+
CHECK_GLERROR
|
|
615
517
|
return Qnil;
|
|
616
518
|
}
|
|
617
519
|
|
|
@@ -623,14 +525,12 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
623
525
|
GLenum target;
|
|
624
526
|
GLenum pname;
|
|
625
527
|
GLfloat params = 0.0;
|
|
626
|
-
|
|
627
|
-
LOAD_GL_FUNC(glGetHistogramParameterfv)
|
|
528
|
+
LOAD_GL_FUNC(glGetHistogramParameterfv,"1.2")
|
|
628
529
|
target = (GLenum)NUM2INT(arg1);
|
|
629
530
|
pname = (GLenum)NUM2INT(arg2);
|
|
630
531
|
fptr_glGetHistogramParameterfv(target,pname,¶ms);
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
return retary;
|
|
532
|
+
CHECK_GLERROR
|
|
533
|
+
return RETCONV_GLfloat(params);
|
|
634
534
|
}
|
|
635
535
|
|
|
636
536
|
static void (APIENTRY * fptr_glGetHistogramParameteriv)(GLenum,GLenum,GLint *);
|
|
@@ -641,14 +541,12 @@ VALUE obj,arg1,arg2,arg3;
|
|
|
641
541
|
GLenum target;
|
|
642
542
|
GLenum pname;
|
|
643
543
|
GLint params = 0;
|
|
644
|
-
|
|
645
|
-
LOAD_GL_FUNC(glGetHistogramParameteriv)
|
|
544
|
+
LOAD_GL_FUNC(glGetHistogramParameteriv,"1.2")
|
|
646
545
|
target = (GLenum)NUM2INT(arg1);
|
|
647
546
|
pname = (GLenum)NUM2INT(arg2);
|
|
648
547
|
fptr_glGetHistogramParameteriv(target,pname,¶ms);
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
return retary;
|
|
548
|
+
CHECK_GLERROR
|
|
549
|
+
return cond_GLBOOL2RUBY(pname,params);
|
|
652
550
|
}
|
|
653
551
|
|
|
654
552
|
static void (APIENTRY * fptr_glGetHistogram)(GLenum,GLboolean,GLenum,GLenum,GLvoid*);
|
|
@@ -666,8 +564,8 @@ VALUE obj;
|
|
|
666
564
|
VALUE data;
|
|
667
565
|
VALUE args[5];
|
|
668
566
|
int numargs;
|
|
669
|
-
LOAD_GL_FUNC(glGetHistogram)
|
|
670
|
-
LOAD_GL_FUNC(glGetHistogramParameteriv)
|
|
567
|
+
LOAD_GL_FUNC(glGetHistogram,"1.2")
|
|
568
|
+
LOAD_GL_FUNC(glGetHistogramParameteriv,"1.2")
|
|
671
569
|
numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
|
|
672
570
|
target = (GLenum)NUM2INT(args[0]);
|
|
673
571
|
reset = (GLboolean)NUM2INT(args[1]);
|
|
@@ -681,10 +579,12 @@ VALUE obj;
|
|
|
681
579
|
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
|
|
682
580
|
|
|
683
581
|
fptr_glGetHistogramParameteriv(target,GL_HISTOGRAM_WIDTH,&size);
|
|
582
|
+
CHECK_GLERROR
|
|
684
583
|
data = allocate_buffer_with_string(GetDataSize(type,format,size));
|
|
685
584
|
FORCE_PIXEL_STORE_MODE
|
|
686
|
-
fptr_glGetHistogram(target,reset,format,type,(GLvoid*)
|
|
585
|
+
fptr_glGetHistogram(target,reset,format,type,(GLvoid*)RSTRING_PTR(data));
|
|
687
586
|
RESTORE_PIXEL_STORE_MODE
|
|
587
|
+
CHECK_GLERROR
|
|
688
588
|
return data;
|
|
689
589
|
break;
|
|
690
590
|
case 5:
|
|
@@ -694,6 +594,7 @@ VALUE obj;
|
|
|
694
594
|
FORCE_PIXEL_STORE_MODE
|
|
695
595
|
fptr_glGetHistogram(target,reset,format,type,(GLvoid*)NUM2INT(args[4]));
|
|
696
596
|
RESTORE_PIXEL_STORE_MODE
|
|
597
|
+
CHECK_GLERROR
|
|
697
598
|
return Qnil;
|
|
698
599
|
}
|
|
699
600
|
}
|
|
@@ -712,7 +613,7 @@ VALUE obj;
|
|
|
712
613
|
VALUE data;
|
|
713
614
|
VALUE args[5];
|
|
714
615
|
int numargs;
|
|
715
|
-
LOAD_GL_FUNC(glGetMinmax)
|
|
616
|
+
LOAD_GL_FUNC(glGetMinmax,"1.2")
|
|
716
617
|
numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
|
|
717
618
|
target = (GLenum)NUM2INT(args[0]);
|
|
718
619
|
reset = (GLboolean)NUM2INT(args[1]);
|
|
@@ -727,8 +628,9 @@ VALUE obj;
|
|
|
727
628
|
|
|
728
629
|
data = allocate_buffer_with_string(GetDataSize(type,format,2));
|
|
729
630
|
FORCE_PIXEL_STORE_MODE
|
|
730
|
-
fptr_glGetMinmax(target,reset,format,type,(GLvoid*)
|
|
631
|
+
fptr_glGetMinmax(target,reset,format,type,(GLvoid*)RSTRING_PTR(data));
|
|
731
632
|
RESTORE_PIXEL_STORE_MODE
|
|
633
|
+
CHECK_GLERROR
|
|
732
634
|
return data;
|
|
733
635
|
break;
|
|
734
636
|
case 5:
|
|
@@ -738,6 +640,7 @@ VALUE obj;
|
|
|
738
640
|
FORCE_PIXEL_STORE_MODE
|
|
739
641
|
fptr_glGetMinmax(target,reset,format,type,(GLvoid*)NUM2INT(args[4]));
|
|
740
642
|
RESTORE_PIXEL_STORE_MODE
|
|
643
|
+
CHECK_GLERROR
|
|
741
644
|
return Qnil;
|
|
742
645
|
}
|
|
743
646
|
}
|
|
@@ -750,14 +653,12 @@ VALUE obj,arg1,arg2;
|
|
|
750
653
|
GLenum target;
|
|
751
654
|
GLenum pname;
|
|
752
655
|
GLfloat params = 0.0;
|
|
753
|
-
|
|
754
|
-
LOAD_GL_FUNC(glGetMinmaxParameterfv)
|
|
656
|
+
LOAD_GL_FUNC(glGetMinmaxParameterfv,"1.2")
|
|
755
657
|
target = (GLenum)NUM2INT(arg1);
|
|
756
658
|
pname = (GLenum)NUM2INT(arg2);
|
|
757
659
|
fptr_glGetMinmaxParameterfv(target,pname,¶ms);
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
return retary;
|
|
660
|
+
CHECK_GLERROR
|
|
661
|
+
return RETCONV_GLfloat(params);
|
|
761
662
|
}
|
|
762
663
|
|
|
763
664
|
static void (APIENTRY * fptr_glGetMinmaxParameteriv)(GLenum,GLenum,GLint *);
|
|
@@ -768,72 +669,12 @@ VALUE obj,arg1,arg2;
|
|
|
768
669
|
GLenum target;
|
|
769
670
|
GLenum pname;
|
|
770
671
|
GLint params = 0;
|
|
771
|
-
|
|
772
|
-
LOAD_GL_FUNC(glGetMinmaxParameteriv)
|
|
672
|
+
LOAD_GL_FUNC(glGetMinmaxParameteriv,"1.2")
|
|
773
673
|
target = (GLenum)NUM2INT(arg1);
|
|
774
674
|
pname = (GLenum)NUM2INT(arg2);
|
|
775
675
|
fptr_glGetMinmaxParameteriv(target,pname,¶ms);
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
return retary;
|
|
779
|
-
}
|
|
780
|
-
|
|
781
|
-
static void (APIENTRY * fptr_glHistogram)(GLenum,GLsizei,GLenum,GLboolean);
|
|
782
|
-
static VALUE
|
|
783
|
-
gl_Histogram(obj,arg1,arg2,arg3,arg4)
|
|
784
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
|
785
|
-
{
|
|
786
|
-
GLenum target;
|
|
787
|
-
GLsizei width;
|
|
788
|
-
GLenum internalformat;
|
|
789
|
-
GLboolean sink;
|
|
790
|
-
LOAD_GL_FUNC(glHistogram)
|
|
791
|
-
target = (GLenum)NUM2INT(arg1);
|
|
792
|
-
width = (GLsizei)NUM2UINT(arg2);
|
|
793
|
-
internalformat = (GLenum)NUM2INT(arg3);
|
|
794
|
-
sink = (GLboolean)NUM2INT(arg4);
|
|
795
|
-
fptr_glHistogram(target,width,internalformat,sink);
|
|
796
|
-
return Qnil;
|
|
797
|
-
}
|
|
798
|
-
|
|
799
|
-
static void (APIENTRY * fptr_glMinmax)(GLenum,GLenum,GLboolean);
|
|
800
|
-
static VALUE
|
|
801
|
-
gl_Minmax(obj,arg1,arg2,arg3)
|
|
802
|
-
VALUE obj,arg1,arg2,arg3;
|
|
803
|
-
{
|
|
804
|
-
GLenum target;
|
|
805
|
-
GLenum internalformat;
|
|
806
|
-
GLboolean sink;
|
|
807
|
-
LOAD_GL_FUNC(glMinmax)
|
|
808
|
-
target = (GLenum)NUM2INT(arg1);
|
|
809
|
-
internalformat = (GLenum)NUM2INT(arg2);
|
|
810
|
-
sink = (GLboolean)NUM2INT(arg3);
|
|
811
|
-
fptr_glMinmax(target,internalformat,sink);
|
|
812
|
-
return Qnil;
|
|
813
|
-
}
|
|
814
|
-
|
|
815
|
-
static void (APIENTRY * fptr_glResetHistogram)(GLenum);
|
|
816
|
-
static VALUE
|
|
817
|
-
gl_ResetHistogram(obj,arg1)
|
|
818
|
-
VALUE obj,arg1;
|
|
819
|
-
{
|
|
820
|
-
GLenum target;
|
|
821
|
-
LOAD_GL_FUNC(glResetHistogram)
|
|
822
|
-
target = (GLenum)NUM2INT(arg1);
|
|
823
|
-
fptr_glResetHistogram(target);
|
|
824
|
-
return Qnil;
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
static void (APIENTRY * fptr_glResetMinmax)(GLenum);
|
|
828
|
-
static VALUE
|
|
829
|
-
gl_ResetMinmax(obj,arg1)
|
|
830
|
-
VALUE obj,arg1;
|
|
831
|
-
{
|
|
832
|
-
GLenum target;
|
|
833
|
-
LOAD_GL_FUNC(glResetMinmax)
|
|
834
|
-
target = (GLenum)NUM2INT(arg1);
|
|
835
|
-
fptr_glResetMinmax(target);
|
|
836
|
-
return Qnil;
|
|
676
|
+
CHECK_GLERROR
|
|
677
|
+
return cond_GLBOOL2RUBY(pname,params);
|
|
837
678
|
}
|
|
838
679
|
|
|
839
680
|
static void (APIENTRY * fptr_glTexImage3D)(GLenum,GLint,GLint,GLsizei,GLsizei,GLsizei,GLint,GLenum,GLenum,const GLvoid*);
|
|
@@ -851,7 +692,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
|
|
|
851
692
|
GLenum format;
|
|
852
693
|
GLenum type;
|
|
853
694
|
const char *pixels;
|
|
854
|
-
LOAD_GL_FUNC(glTexImage3D)
|
|
695
|
+
LOAD_GL_FUNC(glTexImage3D,"1.2")
|
|
855
696
|
target = (GLenum)NUM2INT(arg1);
|
|
856
697
|
level = (GLint)NUM2INT(arg2);
|
|
857
698
|
internalFormat = (GLint)NUM2INT(arg3);
|
|
@@ -865,6 +706,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
|
|
|
865
706
|
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
|
866
707
|
fptr_glTexImage3D( target, level, internalFormat, width, height,
|
|
867
708
|
depth, border, format, type,(GLvoid *)NUM2INT(arg10));
|
|
709
|
+
CHECK_GLERROR
|
|
868
710
|
return Qnil;
|
|
869
711
|
}
|
|
870
712
|
|
|
@@ -875,19 +717,22 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
|
|
|
875
717
|
NIL_P(arg10)) { /* proxy texture, no data read */
|
|
876
718
|
pixels = NULL;
|
|
877
719
|
} else {
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
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);
|
|
881
725
|
}
|
|
882
726
|
fptr_glTexImage3D( target, level, internalFormat, width, height,
|
|
883
727
|
depth, border, format, type,pixels);
|
|
728
|
+
CHECK_GLERROR
|
|
884
729
|
return Qnil;
|
|
885
730
|
}
|
|
886
731
|
|
|
887
732
|
static void (APIENTRY * fptr_glTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLsizei,GLsizei,GLsizei,GLenum,GLenum,const GLvoid*);
|
|
888
733
|
static VALUE
|
|
889
734
|
gl_TexSubImage3D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11)
|
|
890
|
-
VALUE 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;
|
|
891
736
|
{
|
|
892
737
|
GLenum target;
|
|
893
738
|
GLint level;
|
|
@@ -899,7 +744,7 @@ VALUE arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11;
|
|
|
899
744
|
GLsizei depth;
|
|
900
745
|
GLenum format;
|
|
901
746
|
GLenum type;
|
|
902
|
-
LOAD_GL_FUNC(glTexSubImage3D)
|
|
747
|
+
LOAD_GL_FUNC(glTexSubImage3D,"1.2")
|
|
903
748
|
target = (GLenum)NUM2INT(arg1);
|
|
904
749
|
level = (GLint)NUM2INT(arg2);
|
|
905
750
|
xoffset = (GLint)NUM2INT(arg3);
|
|
@@ -915,42 +760,14 @@ VALUE arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11;
|
|
|
915
760
|
width, height, depth,
|
|
916
761
|
format, type, (GLvoid *)NUM2INT(arg11));
|
|
917
762
|
} else {
|
|
918
|
-
|
|
919
|
-
|
|
763
|
+
VALUE data;
|
|
764
|
+
data = pack_array_or_pass_string(type,arg11);
|
|
765
|
+
CheckDataSize(type,format,height*width*depth,data);
|
|
920
766
|
fptr_glTexSubImage3D( target, level, xoffset, yoffset, zoffset,
|
|
921
767
|
width, height, depth,
|
|
922
|
-
format, type,
|
|
768
|
+
format, type, RSTRING_PTR(data));
|
|
923
769
|
}
|
|
924
|
-
|
|
925
|
-
}
|
|
926
|
-
|
|
927
|
-
static void (APIENTRY * fptr_glCopyTexSubImage3D)(GLenum,GLint,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei);
|
|
928
|
-
static VALUE
|
|
929
|
-
gl_CopyTexSubImage3D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
|
|
930
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
931
|
-
{
|
|
932
|
-
GLenum target;
|
|
933
|
-
GLint level;
|
|
934
|
-
GLint xoffset;
|
|
935
|
-
GLint yoffset;
|
|
936
|
-
GLint zoffset;
|
|
937
|
-
GLint x;
|
|
938
|
-
GLint y;
|
|
939
|
-
GLsizei width;
|
|
940
|
-
GLsizei height;
|
|
941
|
-
LOAD_GL_FUNC(glCopyTexSubImage3D)
|
|
942
|
-
target = (GLenum)NUM2INT(arg1);
|
|
943
|
-
level = (GLint)NUM2INT(arg2);
|
|
944
|
-
xoffset = (GLint)NUM2INT(arg3);
|
|
945
|
-
yoffset = (GLint)NUM2INT(arg4);
|
|
946
|
-
zoffset = (GLint)NUM2INT(arg5);
|
|
947
|
-
x = (GLint)NUM2INT(arg6);
|
|
948
|
-
y = (GLint)NUM2INT(arg7);
|
|
949
|
-
width = (GLsizei)NUM2UINT(arg8);
|
|
950
|
-
height = (GLsizei)NUM2UINT(arg9);
|
|
951
|
-
fptr_glCopyTexSubImage3D( target, level,
|
|
952
|
-
xoffset, yoffset, zoffset,
|
|
953
|
-
x, y, width, height );
|
|
770
|
+
CHECK_GLERROR
|
|
954
771
|
return Qnil;
|
|
955
772
|
}
|
|
956
773
|
|