opengl 0.7.0.pre1-x86-mingw32 → 0.7.0.pre2-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.
- data/.autotest +29 -0
- data/.gitignore +5 -8
- data/History.rdoc +33 -0
- data/Manifest.txt +72 -57
- data/README.rdoc +72 -25
- data/Rakefile +60 -72
- data/Rakefile.cross +5 -2
- data/{doc → docs}/build_install.txt +0 -0
- data/{doc → docs}/extensions.txt.in +0 -0
- data/{doc → docs}/history.txt +0 -0
- data/{doc → docs}/requirements_and_design.txt +0 -0
- data/{doc → docs}/roadmap.txt +0 -0
- data/{doc → docs}/scientific_use.txt +0 -0
- data/{doc → docs}/supplies/page_template.html +0 -0
- data/{doc → docs}/thanks.txt +0 -0
- data/{doc → docs}/tutorial.txt +0 -0
- data/examples/NeHe/NeHe.png +0 -0
- data/examples/NeHe/crate.png +0 -0
- data/examples/NeHe/glass.png +0 -0
- data/examples/NeHe/nehe_lesson02.rb +82 -83
- data/examples/NeHe/nehe_lesson03.rb +88 -88
- data/examples/NeHe/nehe_lesson04.rb +93 -96
- data/examples/NeHe/nehe_lesson05.rb +137 -144
- data/examples/NeHe/nehe_lesson06.rb +183 -0
- data/examples/NeHe/nehe_lesson07.rb +237 -0
- data/examples/NeHe/nehe_lesson08.rb +252 -0
- data/examples/NeHe/nehe_lesson09.rb +199 -0
- data/examples/NeHe/nehe_lesson11.rb +173 -0
- data/examples/NeHe/nehe_lesson12.rb +200 -0
- data/examples/NeHe/nehe_lesson16.rb +208 -0
- data/examples/NeHe/nehe_lesson19.rb +206 -0
- data/examples/NeHe/particle.png +0 -0
- data/examples/NeHe/star.png +0 -0
- data/examples/NeHe/tim.png +0 -0
- data/examples/RedBook/light.rb +154 -0
- data/examples/misc/OGLBench.rb +2 -2
- data/examples/misc/trislam.rb +2 -2
- data/ext/{common → opengl}/common.h +2 -11
- data/ext/{common → opengl}/conv.h +43 -31
- data/ext/{glut → opengl}/extconf.rb +14 -7
- data/ext/{common → opengl}/funcdef.h +155 -125
- data/ext/{gl → opengl}/gl-1.0-1.1.c +426 -162
- data/ext/{gl → opengl}/gl-1.2.c +70 -66
- data/ext/{gl → opengl}/gl-1.3.c +19 -19
- data/ext/{gl → opengl}/gl-1.4.c +23 -23
- data/ext/{gl → opengl}/gl-1.5.c +46 -47
- data/ext/{gl → opengl}/gl-2.0.c +66 -60
- data/ext/{gl → opengl}/gl-2.1.c +4 -4
- data/ext/{gl → opengl}/gl-enums.c +2 -1
- data/ext/{common → opengl}/gl-enums.h +0 -0
- data/ext/{gl → opengl}/gl-error.c +12 -4
- data/ext/{common → opengl}/gl-error.h +7 -2
- data/ext/{gl → opengl}/gl-ext-3dfx.c +1 -1
- data/ext/{gl → opengl}/gl-ext-arb.c +75 -70
- data/ext/{gl → opengl}/gl-ext-ati.c +3 -3
- data/ext/{gl → opengl}/gl-ext-ext.c +54 -54
- data/ext/{gl → opengl}/gl-ext-gremedy.c +3 -3
- data/ext/{gl → opengl}/gl-ext-nv.c +49 -48
- data/ext/{common → opengl}/gl-types.h +0 -0
- data/ext/{gl → opengl}/gl.c +8 -10
- data/ext/{glu → opengl}/glu-enums.c +1 -1
- data/ext/{common → opengl}/glu-enums.h +0 -0
- data/ext/{glu → opengl}/glu.c +7 -3
- data/ext/{glut → opengl}/glut.c +98 -48
- data/ext/opengl/opengl.c +11 -0
- data/lib/gl.rb +1 -0
- data/lib/glu.rb +1 -0
- data/lib/glut.rb +1 -0
- data/lib/opengl.rb +13 -14
- data/lib/opengl/opengl.so +0 -0
- data/lib/opengl/test_case.rb +87 -0
- data/test/{tc_misc.rb → test_gl.rb} +2 -14
- data/test/test_gl_10_11.rb +1363 -0
- data/test/test_gl_12.rb +182 -0
- data/test/{tc_func_13.rb → test_gl_13.rb} +14 -14
- data/test/test_gl_14.rb +221 -0
- data/test/test_gl_15.rb +260 -0
- data/test/test_gl_20.rb +430 -0
- data/test/test_gl_21.rb +553 -0
- data/test/test_gl_ext_arb.rb +526 -0
- data/test/{tc_ext_ati.rb → test_gl_ext_ati.rb} +11 -14
- data/test/test_gl_ext_ext.rb +608 -0
- data/test/{tc_ext_gremedy.rb → test_gl_ext_gremedy.rb} +6 -6
- data/test/test_gl_ext_nv.rb +352 -0
- data/test/test_glu.rb +309 -0
- metadata +159 -102
- data/History.txt +0 -36
- data/ext/gl/extconf.rb +0 -43
- data/ext/glu/extconf.rb +0 -51
- data/test/README +0 -10
- data/test/tc_common.rb +0 -98
- data/test/tc_ext_arb.rb +0 -467
- data/test/tc_ext_ext.rb +0 -551
- data/test/tc_ext_nv.rb +0 -357
- data/test/tc_func_10_11.rb +0 -1281
- data/test/tc_func_12.rb +0 -186
- data/test/tc_func_14.rb +0 -197
- data/test/tc_func_15.rb +0 -270
- data/test/tc_func_20.rb +0 -346
- data/test/tc_func_21.rb +0 -541
- data/test/tc_glu.rb +0 -310
- data/test/tc_include_gl.rb +0 -35
- data/test/tc_require_gl.rb +0 -34
data/ext/{gl → opengl}/gl-2.0.c
RENAMED
@@ -13,7 +13,7 @@
|
|
13
13
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
14
|
*/
|
15
15
|
|
16
|
-
#include "
|
16
|
+
#include "common.h"
|
17
17
|
|
18
18
|
GL_FUNC_LOAD_2(BlendEquationSeparate,GLvoid, GLenum,GLenum, "2.0")
|
19
19
|
GL_FUNC_LOAD_4(StencilOpSeparate,GLvoid, GLenum,GLenum,GLenum,GLenum, "2.0")
|
@@ -62,14 +62,14 @@ VALUE obj,arg1;
|
|
62
62
|
{
|
63
63
|
GLsizei size;
|
64
64
|
GLenum *buffers;
|
65
|
-
LOAD_GL_FUNC(glDrawBuffers,"2.0")
|
65
|
+
LOAD_GL_FUNC(glDrawBuffers, "2.0");
|
66
66
|
Check_Type(arg1,T_ARRAY);
|
67
67
|
size = (GLsizei)RARRAY_LENINT(arg1);
|
68
68
|
buffers = ALLOC_N(GLenum,size);
|
69
69
|
ary2cuint(arg1,buffers,size);
|
70
70
|
fptr_glDrawBuffers(size,buffers);
|
71
71
|
xfree(buffers);
|
72
|
-
|
72
|
+
CHECK_GLERROR_FROM("glDrawBuffers");
|
73
73
|
return Qnil;
|
74
74
|
}
|
75
75
|
|
@@ -80,12 +80,12 @@ VALUE obj,arg1,arg2,arg3;
|
|
80
80
|
{
|
81
81
|
GLuint program;
|
82
82
|
GLuint index;
|
83
|
-
LOAD_GL_FUNC(glBindAttribLocation,"2.0")
|
83
|
+
LOAD_GL_FUNC(glBindAttribLocation, "2.0");
|
84
84
|
program = (GLuint)NUM2UINT(arg1);
|
85
85
|
index = (GLuint)NUM2UINT(arg2);
|
86
86
|
Check_Type(arg3, T_STRING);
|
87
87
|
fptr_glBindAttribLocation(program,index,RSTRING_PTR(arg3));
|
88
|
-
|
88
|
+
CHECK_GLERROR_FROM("glBindAttribLocation");
|
89
89
|
return Qnil;
|
90
90
|
}
|
91
91
|
|
@@ -97,11 +97,11 @@ VALUE obj,arg1,arg2;
|
|
97
97
|
GLuint program;
|
98
98
|
GLenum pname;
|
99
99
|
GLint params = 0;
|
100
|
-
LOAD_GL_FUNC(glGetProgramiv,"2.0")
|
100
|
+
LOAD_GL_FUNC(glGetProgramiv, "2.0");
|
101
101
|
program = (GLuint)NUM2UINT(arg1);
|
102
102
|
pname = (GLenum)NUM2INT(arg2);
|
103
103
|
fptr_glGetProgramiv(program,pname,¶ms);
|
104
|
-
|
104
|
+
CHECK_GLERROR_FROM("glGetProgramiv");
|
105
105
|
return cond_GLBOOL2RUBY(pname,params);
|
106
106
|
}
|
107
107
|
|
@@ -118,12 +118,12 @@ VALUE obj,arg1,arg2;
|
|
118
118
|
GLenum attrib_type = 0;
|
119
119
|
VALUE buffer;
|
120
120
|
VALUE retary;
|
121
|
-
LOAD_GL_FUNC(glGetActiveAttrib,"2.0")
|
122
|
-
LOAD_GL_FUNC(glGetProgramiv,"2.0")
|
121
|
+
LOAD_GL_FUNC(glGetActiveAttrib, "2.0");
|
122
|
+
LOAD_GL_FUNC(glGetProgramiv, "2.0");
|
123
123
|
program = (GLuint)NUM2UINT(arg1);
|
124
124
|
index = (GLuint)NUM2UINT(arg2);
|
125
125
|
fptr_glGetProgramiv(program,GL_ACTIVE_ATTRIBUTE_MAX_LENGTH,&max_size);
|
126
|
-
|
126
|
+
CHECK_GLERROR_FROM("glGetProgramiv");
|
127
127
|
if (max_size==0)
|
128
128
|
rb_raise(rb_eTypeError, "Can't determine maximum attribute name length");
|
129
129
|
buffer = allocate_buffer_with_string(max_size-1);
|
@@ -132,7 +132,7 @@ VALUE obj,arg1,arg2;
|
|
132
132
|
rb_ary_push(retary, INT2NUM(attrib_size));
|
133
133
|
rb_ary_push(retary, INT2NUM(attrib_type));
|
134
134
|
rb_ary_push(retary, buffer);
|
135
|
-
|
135
|
+
CHECK_GLERROR_FROM("glGetActiveAttrib");
|
136
136
|
return retary;
|
137
137
|
}
|
138
138
|
|
@@ -149,21 +149,24 @@ VALUE obj,arg1,arg2;
|
|
149
149
|
GLenum uniform_type = 0;
|
150
150
|
VALUE buffer;
|
151
151
|
VALUE retary;
|
152
|
-
LOAD_GL_FUNC(glGetActiveUniform,"2.0")
|
153
|
-
LOAD_GL_FUNC(glGetProgramiv,"2.0")
|
152
|
+
LOAD_GL_FUNC(glGetActiveUniform, "2.0");
|
153
|
+
LOAD_GL_FUNC(glGetProgramiv, "2.0");
|
154
154
|
program = (GLuint)NUM2UINT(arg1);
|
155
155
|
index = (GLuint)NUM2UINT(arg2);
|
156
156
|
fptr_glGetProgramiv(program,GL_ACTIVE_UNIFORM_MAX_LENGTH,&max_size);
|
157
|
-
|
157
|
+
CHECK_GLERROR_FROM("glGetProgramiv");
|
158
158
|
if (max_size==0)
|
159
159
|
rb_raise(rb_eTypeError, "Can't determine maximum uniform name length");
|
160
160
|
buffer = allocate_buffer_with_string(max_size-1);
|
161
|
+
|
161
162
|
fptr_glGetActiveUniform(program,index,max_size,&written,&uniform_size,&uniform_type,RSTRING_PTR(buffer));
|
163
|
+
|
164
|
+
rb_str_set_len(buffer, strnlen(RSTRING_PTR(buffer), max_size));
|
162
165
|
retary = rb_ary_new2(3);
|
163
166
|
rb_ary_push(retary, INT2NUM(uniform_size));
|
164
167
|
rb_ary_push(retary, INT2NUM(uniform_type));
|
165
168
|
rb_ary_push(retary, buffer);
|
166
|
-
|
169
|
+
CHECK_GLERROR_FROM("glGetActiveUniform");
|
167
170
|
return retary;
|
168
171
|
}
|
169
172
|
|
@@ -176,16 +179,17 @@ VALUE obj,arg1;
|
|
176
179
|
GLint shaders_num = 0;
|
177
180
|
GLuint *shaders;
|
178
181
|
GLsizei count = 0;
|
179
|
-
LOAD_GL_FUNC(glGetAttachedShaders,"2.0")
|
180
|
-
LOAD_GL_FUNC(glGetProgramiv,"2.0")
|
182
|
+
LOAD_GL_FUNC(glGetAttachedShaders, "2.0");
|
183
|
+
LOAD_GL_FUNC(glGetProgramiv, "2.0");
|
181
184
|
program = (GLuint)NUM2UINT(arg1);
|
182
185
|
fptr_glGetProgramiv(program,GL_ATTACHED_SHADERS,&shaders_num);
|
183
|
-
|
186
|
+
CHECK_GLERROR_FROM("glGetProgramiv");
|
184
187
|
if (shaders_num<=0)
|
185
188
|
return Qnil;
|
186
189
|
shaders = ALLOC_N(GLuint,shaders_num);
|
187
190
|
fptr_glGetAttachedShaders(program,shaders_num,&count,shaders);
|
188
|
-
|
191
|
+
RET_ARRAY_OR_SINGLE_FREE("glGetAttachedShaders", count, RETCONV_GLuint,
|
192
|
+
shaders);
|
189
193
|
}
|
190
194
|
|
191
195
|
static GLint (APIENTRY * fptr_glGetAttribLocation)(GLuint, GLchar *);
|
@@ -195,11 +199,11 @@ VALUE obj,arg1,arg2;
|
|
195
199
|
{
|
196
200
|
GLuint program;
|
197
201
|
GLint ret;
|
198
|
-
LOAD_GL_FUNC(glGetAttribLocation,"2.0")
|
202
|
+
LOAD_GL_FUNC(glGetAttribLocation, "2.0");
|
199
203
|
program=(GLuint)NUM2UINT(arg1);
|
200
204
|
Check_Type(arg2,T_STRING);
|
201
205
|
ret = fptr_glGetAttribLocation(program,RSTRING_PTR(arg2));
|
202
|
-
|
206
|
+
CHECK_GLERROR_FROM("glGetAttribLocation");
|
203
207
|
return INT2NUM(ret);
|
204
208
|
}
|
205
209
|
|
@@ -212,16 +216,16 @@ VALUE obj,arg1;
|
|
212
216
|
GLint max_size = 0;
|
213
217
|
GLsizei ret_length = 0;
|
214
218
|
VALUE buffer;
|
215
|
-
LOAD_GL_FUNC(glGetProgramInfoLog,"2.0")
|
216
|
-
LOAD_GL_FUNC(glGetProgramiv,"2.0")
|
219
|
+
LOAD_GL_FUNC(glGetProgramInfoLog, "2.0");
|
220
|
+
LOAD_GL_FUNC(glGetProgramiv, "2.0");
|
217
221
|
program = (GLuint)NUM2UINT(arg1);
|
218
222
|
fptr_glGetProgramiv(program,GL_INFO_LOG_LENGTH,&max_size);
|
219
|
-
|
223
|
+
CHECK_GLERROR_FROM("glGetProgramiv");
|
220
224
|
if (max_size<=0)
|
221
225
|
return rb_str_new2("");
|
222
226
|
buffer = allocate_buffer_with_string(max_size);
|
223
227
|
fptr_glGetProgramInfoLog(program,max_size,&ret_length,RSTRING_PTR(buffer));
|
224
|
-
|
228
|
+
CHECK_GLERROR_FROM("glGetProgramInfoLog");
|
225
229
|
return buffer;
|
226
230
|
}
|
227
231
|
|
@@ -233,11 +237,11 @@ VALUE obj,arg1,arg2;
|
|
233
237
|
GLuint program;
|
234
238
|
GLenum pname;
|
235
239
|
GLint params = 0;
|
236
|
-
LOAD_GL_FUNC(glGetShaderiv,"2.0")
|
240
|
+
LOAD_GL_FUNC(glGetShaderiv, "2.0");
|
237
241
|
program = (GLuint)NUM2UINT(arg1);
|
238
242
|
pname = (GLenum)NUM2INT(arg2);
|
239
243
|
fptr_glGetShaderiv(program,pname,¶ms);
|
240
|
-
|
244
|
+
CHECK_GLERROR_FROM("glGetShaderiv");
|
241
245
|
return cond_GLBOOL2RUBY(pname,params);
|
242
246
|
}
|
243
247
|
|
@@ -251,11 +255,11 @@ VALUE obj,arg1;
|
|
251
255
|
GLsizei ret_length = 0;
|
252
256
|
VALUE ret_buffer;
|
253
257
|
GLchar *buffer;
|
254
|
-
LOAD_GL_FUNC(glGetShaderInfoLog,"2.0")
|
255
|
-
LOAD_GL_FUNC(glGetShaderiv,"2.0")
|
258
|
+
LOAD_GL_FUNC(glGetShaderInfoLog, "2.0");
|
259
|
+
LOAD_GL_FUNC(glGetShaderiv, "2.0");
|
256
260
|
program = (GLuint)NUM2UINT(arg1);
|
257
261
|
fptr_glGetShaderiv(program,GL_INFO_LOG_LENGTH,&max_size);
|
258
|
-
|
262
|
+
CHECK_GLERROR_FROM("glGetShaderiv");
|
259
263
|
if (max_size<=0)
|
260
264
|
return rb_str_new2("");
|
261
265
|
buffer = ALLOC_N(GLchar,max_size+1);
|
@@ -263,7 +267,7 @@ VALUE obj,arg1;
|
|
263
267
|
fptr_glGetShaderInfoLog(program,max_size,&ret_length,buffer);
|
264
268
|
ret_buffer = rb_str_new(buffer, ret_length);
|
265
269
|
xfree(buffer);
|
266
|
-
|
270
|
+
CHECK_GLERROR_FROM("glGetShaderInfoLog");
|
267
271
|
return ret_buffer;
|
268
272
|
}
|
269
273
|
|
@@ -276,16 +280,16 @@ VALUE obj,arg1;
|
|
276
280
|
GLint max_size = 0;
|
277
281
|
GLsizei ret_length = 0;
|
278
282
|
VALUE buffer;
|
279
|
-
LOAD_GL_FUNC(glGetShaderSource,"2.0")
|
280
|
-
LOAD_GL_FUNC(glGetShaderiv,"2.0")
|
283
|
+
LOAD_GL_FUNC(glGetShaderSource, "2.0");
|
284
|
+
LOAD_GL_FUNC(glGetShaderiv, "2.0");
|
281
285
|
shader = (GLuint)NUM2UINT(arg1);
|
282
286
|
fptr_glGetShaderiv(shader,GL_SHADER_SOURCE_LENGTH,&max_size);
|
283
|
-
|
287
|
+
CHECK_GLERROR_FROM("glGetShaderiv");
|
284
288
|
if (max_size==0)
|
285
289
|
rb_raise(rb_eTypeError, "Can't determine maximum shader source length");
|
286
290
|
buffer = allocate_buffer_with_string(max_size-1);
|
287
291
|
fptr_glGetShaderSource(shader,max_size,&ret_length,RSTRING_PTR(buffer));
|
288
|
-
|
292
|
+
CHECK_GLERROR_FROM("glGetShaderSource");
|
289
293
|
return buffer;
|
290
294
|
}
|
291
295
|
|
@@ -296,11 +300,12 @@ VALUE obj,arg1,arg2;
|
|
296
300
|
{
|
297
301
|
GLuint program;
|
298
302
|
GLint ret;
|
299
|
-
LOAD_GL_FUNC(glGetUniformLocation,"2.0")
|
303
|
+
LOAD_GL_FUNC(glGetUniformLocation, "2.0");
|
300
304
|
program=(GLuint)NUM2UINT(arg1);
|
301
305
|
Check_Type(arg2,T_STRING);
|
302
|
-
ret = fptr_glGetUniformLocation(program,RSTRING_PTR(arg2));
|
303
|
-
|
306
|
+
ret = fptr_glGetUniformLocation(program, RSTRING_PTR(arg2));
|
307
|
+
|
308
|
+
CHECK_GLERROR_FROM("glGetUniformLocation");
|
304
309
|
return INT2NUM(ret);
|
305
310
|
}
|
306
311
|
|
@@ -317,13 +322,13 @@ VALUE obj,arg1,arg2; \
|
|
317
322
|
GLenum uniform_type = 0; \
|
318
323
|
GLint uniform_size = 0; \
|
319
324
|
\
|
320
|
-
LOAD_GL_FUNC(gl##_name_,"2.0") \
|
321
|
-
LOAD_GL_FUNC(glGetActiveUniform,"2.0") \
|
325
|
+
LOAD_GL_FUNC(gl##_name_, "2.0"); \
|
326
|
+
LOAD_GL_FUNC(glGetActiveUniform, "2.0"); \
|
322
327
|
program = (GLuint)NUM2UINT(arg1); \
|
323
328
|
location = (GLint)NUM2INT(arg2); \
|
324
329
|
\
|
325
330
|
fptr_glGetActiveUniform(program,location,0,NULL,&unused,&uniform_type,NULL); \
|
326
|
-
|
331
|
+
CHECK_GLERROR_FROM("glGetActiveUniform"); \
|
327
332
|
if (uniform_type==0) \
|
328
333
|
rb_raise(rb_eTypeError, "Can't determine the uniform's type"); \
|
329
334
|
\
|
@@ -331,7 +336,7 @@ VALUE obj,arg1,arg2; \
|
|
331
336
|
\
|
332
337
|
memset(params,0,16*sizeof(_type_)); \
|
333
338
|
fptr_gl##_name_(program,location,params); \
|
334
|
-
RET_ARRAY_OR_SINGLE(uniform_size,RETCONV_##_type_,params) \
|
339
|
+
RET_ARRAY_OR_SINGLE("gl" #_name_, uniform_size, RETCONV_##_type_, params); \
|
335
340
|
}
|
336
341
|
|
337
342
|
GETUNIFORM_FUNC(GetUniformfv,GLfloat)
|
@@ -348,7 +353,7 @@ VALUE obj,arg1,arg2; \
|
|
348
353
|
GLenum pname; \
|
349
354
|
_type_ params[4] = {0,0,0,0}; \
|
350
355
|
GLint size; \
|
351
|
-
LOAD_GL_FUNC(gl##_name_,"2.0") \
|
356
|
+
LOAD_GL_FUNC(gl##_name_, "2.0"); \
|
352
357
|
index = (GLuint)NUM2UINT(arg1); \
|
353
358
|
pname = (GLenum)NUM2INT(arg2); \
|
354
359
|
if (pname==GL_CURRENT_VERTEX_ATTRIB) \
|
@@ -356,7 +361,7 @@ VALUE obj,arg1,arg2; \
|
|
356
361
|
else \
|
357
362
|
size = 1; \
|
358
363
|
fptr_gl##_name_(index,pname,params); \
|
359
|
-
RET_ARRAY_OR_SINGLE(size,RETCONV_##_type_,params) \
|
364
|
+
RET_ARRAY_OR_SINGLE("gl" #_name_, size, RETCONV_##_type_, params); \
|
360
365
|
}
|
361
366
|
|
362
367
|
GETVERTEXATTRIB_FUNC(GetVertexAttribdv,GLdouble)
|
@@ -373,7 +378,7 @@ VALUE obj,arg1,arg2;
|
|
373
378
|
GLenum pname;
|
374
379
|
GLint params[4] = {0,0,0,0};
|
375
380
|
GLint size;
|
376
|
-
LOAD_GL_FUNC(glGetVertexAttribiv,"2.0")
|
381
|
+
LOAD_GL_FUNC(glGetVertexAttribiv, "2.0");
|
377
382
|
index = (GLuint)NUM2UINT(arg1);
|
378
383
|
pname = (GLenum)NUM2INT(arg2);
|
379
384
|
if (pname==GL_CURRENT_VERTEX_ATTRIB)
|
@@ -381,7 +386,8 @@ VALUE obj,arg1,arg2;
|
|
381
386
|
else
|
382
387
|
size = 1;
|
383
388
|
fptr_glGetVertexAttribiv(index,pname,params);
|
384
|
-
|
389
|
+
RET_ARRAY_OR_SINGLE_BOOL("glGetVertexAttribiv", size, cond_GLBOOL2RUBY,
|
390
|
+
pname, params);
|
385
391
|
}
|
386
392
|
|
387
393
|
|
@@ -393,7 +399,7 @@ gl_GetVertexAttribPointerv(obj,arg1)
|
|
393
399
|
VALUE obj,arg1;
|
394
400
|
{
|
395
401
|
GLuint index;
|
396
|
-
LOAD_GL_FUNC(glGetVertexAttribPointerv,"2.0")
|
402
|
+
LOAD_GL_FUNC(glGetVertexAttribPointerv, "2.0");
|
397
403
|
index =(GLuint) NUM2INT(arg1);
|
398
404
|
if (index>_MAX_VERTEX_ATTRIBS)
|
399
405
|
rb_raise(rb_eArgError, "Index too large, maximum allowed value '%i'",_MAX_VERTEX_ATTRIBS);
|
@@ -409,13 +415,13 @@ VALUE obj,arg1,arg2;
|
|
409
415
|
GLuint shader;
|
410
416
|
GLint length;
|
411
417
|
GLchar *str;
|
412
|
-
LOAD_GL_FUNC(glShaderSource,"2.0")
|
418
|
+
LOAD_GL_FUNC(glShaderSource, "2.0");
|
413
419
|
shader = (GLuint)NUM2UINT(arg1);
|
414
420
|
Check_Type(arg2,T_STRING);
|
415
421
|
str = RSTRING_PTR(arg2);
|
416
422
|
length = (GLint)RSTRING_LENINT(arg2);
|
417
423
|
fptr_glShaderSource(shader,1,&str,&length);
|
418
|
-
|
424
|
+
CHECK_GLERROR_FROM("glShaderSource");
|
419
425
|
return Qnil;
|
420
426
|
}
|
421
427
|
|
@@ -428,7 +434,7 @@ VALUE obj,arg1,arg2; \
|
|
428
434
|
GLint location; \
|
429
435
|
GLsizei count; \
|
430
436
|
_type_ *value; \
|
431
|
-
LOAD_GL_FUNC(gl##_name_,"2.0") \
|
437
|
+
LOAD_GL_FUNC(gl##_name_,"2.0"); \
|
432
438
|
Check_Type(arg2,T_ARRAY); \
|
433
439
|
count = (GLsizei)RARRAY_LENINT(arg2); \
|
434
440
|
if (count<=0 || (count % _size_) != 0) \
|
@@ -438,7 +444,7 @@ VALUE obj,arg1,arg2; \
|
|
438
444
|
_conv_(arg2,value,count); \
|
439
445
|
fptr_gl##_name_(location,count / _size_,value); \
|
440
446
|
xfree(value); \
|
441
|
-
|
447
|
+
CHECK_GLERROR_FROM("gl" #_name_); \
|
442
448
|
return Qnil; \
|
443
449
|
}
|
444
450
|
|
@@ -462,15 +468,15 @@ VALUE obj,arg1,arg2,arg3; \
|
|
462
468
|
GLsizei count; \
|
463
469
|
GLboolean transpose; \
|
464
470
|
GLfloat *value; \
|
465
|
-
LOAD_GL_FUNC(gl##_name_,"2.0") \
|
471
|
+
LOAD_GL_FUNC(gl##_name_, "2.0"); \
|
466
472
|
location = (GLint)NUM2INT(arg1); \
|
467
|
-
count = (GLsizei)RARRAY_LENINT(rb_funcall(rb_Array(arg3),rb_intern("flatten"),0)); \
|
468
|
-
transpose = (GLboolean)
|
473
|
+
count = (GLsizei)RARRAY_LENINT(rb_funcall(rb_Array(arg3), rb_intern("flatten"), 0)); \
|
474
|
+
transpose = (GLboolean)RUBYBOOL2GL(arg2); \
|
469
475
|
value = ALLOC_N(GLfloat, count); \
|
470
476
|
ary2cmatfloatcount(arg3,value,_size_,_size_); \
|
471
477
|
fptr_gl##_name_(location,count / (_size_*_size_),transpose,value); \
|
472
478
|
xfree(value); \
|
473
|
-
|
479
|
+
CHECK_GLERROR_FROM("gl" #_name_); \
|
474
480
|
return Qnil; \
|
475
481
|
}
|
476
482
|
|
@@ -487,11 +493,11 @@ VALUE obj,arg1,arg2; \
|
|
487
493
|
{ \
|
488
494
|
GLuint index; \
|
489
495
|
_type_ v[_size_]; \
|
490
|
-
LOAD_GL_FUNC(gl##_name_,"2.0")
|
496
|
+
LOAD_GL_FUNC(gl##_name_, "2.0"); \
|
491
497
|
index = (GLuint)NUM2UINT(arg1); \
|
492
498
|
_conv_(arg2,v,_size_); \
|
493
499
|
fptr_gl##_name_(index,v); \
|
494
|
-
|
500
|
+
CHECK_GLERROR_FROM("gl" #_name_); \
|
495
501
|
return Qnil; \
|
496
502
|
}
|
497
503
|
|
@@ -530,11 +536,11 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
530
536
|
GLenum type;
|
531
537
|
GLboolean normalized;
|
532
538
|
GLsizei stride;
|
533
|
-
LOAD_GL_FUNC(glVertexAttribPointer,"2.0")
|
539
|
+
LOAD_GL_FUNC(glVertexAttribPointer, "2.0");
|
534
540
|
index = (GLuint)NUM2UINT(arg1);
|
535
541
|
size = (GLuint)NUM2UINT(arg2);
|
536
542
|
type = (GLenum)NUM2INT(arg3);
|
537
|
-
normalized = (GLboolean)
|
543
|
+
normalized = (GLboolean)RUBYBOOL2GL(arg4);
|
538
544
|
stride = (GLsizei)NUM2UINT(arg5);
|
539
545
|
if (index>_MAX_VERTEX_ATTRIBS)
|
540
546
|
rb_raise(rb_eArgError, "Index too large, maximum allowed value '%i'",_MAX_VERTEX_ATTRIBS);
|
@@ -549,7 +555,7 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
549
555
|
g_VertexAttrib_ptr[index] = data;
|
550
556
|
fptr_glVertexAttribPointer(index,size,type,normalized,stride,(GLvoid *)RSTRING_PTR(data));
|
551
557
|
}
|
552
|
-
|
558
|
+
CHECK_GLERROR_FROM("glVertexAttribPointer");
|
553
559
|
return Qnil;
|
554
560
|
}
|
555
561
|
|
data/ext/{gl → opengl}/gl-2.1.c
RENAMED
@@ -13,7 +13,7 @@
|
|
13
13
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
14
|
*/
|
15
15
|
|
16
|
-
#include "
|
16
|
+
#include "common.h"
|
17
17
|
|
18
18
|
#define UNIFORMMATRIX_FUNC(_x_,_y_) \
|
19
19
|
static void (APIENTRY * fptr_glUniformMatrix##_x_##x##_y_##fv)(GLint,GLsizei,GLboolean,GLfloat *); \
|
@@ -25,15 +25,15 @@ VALUE obj,arg1,arg2,arg3; \
|
|
25
25
|
GLsizei count; \
|
26
26
|
GLboolean transpose; \
|
27
27
|
GLfloat *value; \
|
28
|
-
LOAD_GL_FUNC(glUniformMatrix##_x_##x##_y_##fv,"2.1") \
|
28
|
+
LOAD_GL_FUNC(glUniformMatrix##_x_##x##_y_##fv,"2.1"); \
|
29
29
|
location = (GLint)NUM2INT(arg1); \
|
30
30
|
count = (GLsizei)RARRAY_LENINT(rb_funcall(rb_Array(arg3),rb_intern("flatten"),0)); \
|
31
|
-
transpose = (GLboolean)
|
31
|
+
transpose = (GLboolean)RUBYBOOL2GL(arg2); \
|
32
32
|
value = ALLOC_N(GLfloat, count); \
|
33
33
|
ary2cmatfloatcount(arg3,value, _x_, _y_); \
|
34
34
|
fptr_glUniformMatrix##_x_##x##_y_##fv(location,count /(_x_ * _y_),transpose,value); \
|
35
35
|
xfree(value); \
|
36
|
-
|
36
|
+
CHECK_GLERROR_FROM("glUniformMatrix" #_x_ "x" #_y_ "fv"); \
|
37
37
|
return Qnil; \
|
38
38
|
}
|
39
39
|
|
File without changes
|
@@ -13,7 +13,7 @@
|
|
13
13
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
14
14
|
*/
|
15
15
|
|
16
|
-
#include "
|
16
|
+
#include "common.h"
|
17
17
|
|
18
18
|
VALUE error_checking = Qtrue;
|
19
19
|
|
@@ -21,7 +21,7 @@ VALUE Class_GLError;
|
|
21
21
|
|
22
22
|
#define BUFSIZE 256
|
23
23
|
|
24
|
-
void check_for_glerror(
|
24
|
+
void check_for_glerror(const char *caller)
|
25
25
|
{
|
26
26
|
GLenum error;
|
27
27
|
|
@@ -31,9 +31,16 @@ void check_for_glerror(void)
|
|
31
31
|
return;
|
32
32
|
} else { /* process errors */
|
33
33
|
const char *error_string;
|
34
|
+
const char *from = "";
|
34
35
|
int queued_errors = 0;
|
35
36
|
char message[BUFSIZE];
|
36
37
|
VALUE exc;
|
38
|
+
|
39
|
+
if (caller) {
|
40
|
+
from = " for ";
|
41
|
+
} else {
|
42
|
+
caller = "";
|
43
|
+
}
|
37
44
|
|
38
45
|
/* check for queued errors */
|
39
46
|
for(queued_errors = 0;
|
@@ -54,9 +61,10 @@ void check_for_glerror(void)
|
|
54
61
|
}
|
55
62
|
|
56
63
|
if (queued_errors==0) {
|
57
|
-
snprintf(message,BUFSIZE,"%s",error_string);
|
64
|
+
snprintf(message, BUFSIZE, "%s%s%s", error_string, from, caller);
|
58
65
|
} else {
|
59
|
-
snprintf(message,BUFSIZE,"%s [%i queued error(s) cleaned]",
|
66
|
+
snprintf(message, BUFSIZE, "%s%s%s [%i queued error(s) cleaned]",
|
67
|
+
error_string, from, caller, queued_errors);
|
60
68
|
}
|
61
69
|
|
62
70
|
exc = rb_funcall(Class_GLError, rb_intern("new"), 2, rb_str_new2(message), INT2NUM(error));
|