ruby-opengl 0.33.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 +129 -0
- data/doc/build_install.txt +53 -0
- data/doc/history.txt +48 -0
- data/doc/requirements_and_design.txt +131 -0
- data/doc/roadmap.txt +19 -0
- data/doc/scientific_use.txt +28 -0
- data/doc/supplies/page_template.html +63 -0
- data/doc/thanks.txt +23 -0
- data/doc/tutorial.txt +160 -0
- data/examples/README +36 -0
- data/examples/aaindex.rb +97 -0
- data/examples/all_tests.rb +24 -0
- data/examples/plane.rb +161 -0
- data/examples/smooth.rb +40 -0
- data/examples/smooth_prev.rb +40 -0
- data/examples/test.rb +64 -0
- data/ext/common/Rakefile +39 -0
- data/ext/common/gl-enums.h +10349 -0
- data/ext/common/rbogl.c +260 -0
- data/ext/common/rbogl.h +52 -0
- data/ext/gl/gl-1.0-1.1.c +5152 -0
- data/ext/gl/gl-1.2.c +166 -0
- data/ext/gl/gl-enums.c +2905 -0
- data/ext/gl/gl.c +31 -0
- data/ext/gl/mkrf_conf.rb +27 -0
- data/ext/glu/glu.c +1636 -0
- data/ext/glu/mkrf_conf.rb +28 -0
- data/ext/glut/glut.c +1776 -0
- data/ext/glut/mkrf_conf.rb +28 -0
- data/lib/gl_prev.rb +45 -0
- data/lib/glu_prev.rb +45 -0
- data/lib/glut_prev.rb +45 -0
- data/test/README +23 -0
- data/test/runtests.sh +7 -0
- data/test/tc_gl_vertex.rb +180 -0
- data/test/tc_include_gl.rb +35 -0
- data/test/tc_opengl_namespace.rb +40 -0
- data/test/tc_require_gl.rb +34 -0
- metadata +96 -0
data/ext/gl/gl-1.0-1.1.c
ADDED
@@ -0,0 +1,5152 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) 1999 - 2005 Yoshi <yoshi@giganet.net>
|
3
|
+
* Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
+
*
|
5
|
+
* This program is distributed under the terms of the MIT license.
|
6
|
+
* See the included MIT-LICENSE file for the terms of this license.
|
7
|
+
*
|
8
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
9
|
+
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
10
|
+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
11
|
+
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
12
|
+
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
13
|
+
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
14
|
+
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
|
+
*/
|
16
|
+
|
17
|
+
#ifdef __APPLE__
|
18
|
+
#include <OpenGL/gl.h>
|
19
|
+
#elif defined WIN32
|
20
|
+
#include <windows.h>
|
21
|
+
#include <GL/gl.h>
|
22
|
+
#else
|
23
|
+
#include <GL/gl.h>
|
24
|
+
#endif
|
25
|
+
#include "../common/rbogl.h"
|
26
|
+
#include "../common/gl-enums.h"
|
27
|
+
|
28
|
+
#ifndef MAX
|
29
|
+
#define MAX(a, b) (((a) > (b)) ? (a) : (b))
|
30
|
+
#endif
|
31
|
+
|
32
|
+
/* OpenGL 1.0 + 1.1 functions */
|
33
|
+
|
34
|
+
static VALUE
|
35
|
+
gl_NewList(obj,arg1,arg2)
|
36
|
+
VALUE obj,arg1,arg2;
|
37
|
+
{
|
38
|
+
GLuint list;
|
39
|
+
GLenum mode;
|
40
|
+
list = (GLuint)NUM2INT(arg1);
|
41
|
+
mode = (GLenum)NUM2INT(arg2);
|
42
|
+
glNewList(list,mode);
|
43
|
+
return Qnil;
|
44
|
+
}
|
45
|
+
|
46
|
+
static VALUE
|
47
|
+
gl_EndList(obj)
|
48
|
+
VALUE obj;
|
49
|
+
{
|
50
|
+
glEndList();
|
51
|
+
return Qnil;
|
52
|
+
}
|
53
|
+
|
54
|
+
static VALUE
|
55
|
+
gl_CallList(obj,arg1)
|
56
|
+
VALUE obj,arg1;
|
57
|
+
{
|
58
|
+
GLuint list;
|
59
|
+
list = (GLuint)NUM2INT(arg1);
|
60
|
+
glCallList(list);
|
61
|
+
return Qnil;
|
62
|
+
}
|
63
|
+
|
64
|
+
static VALUE
|
65
|
+
gl_CallLists(obj,arg1)
|
66
|
+
VALUE obj,arg1;
|
67
|
+
{
|
68
|
+
GLsizei n;
|
69
|
+
GLenum type;
|
70
|
+
GLvoid *lists;
|
71
|
+
if (TYPE(arg1) == T_STRING) {
|
72
|
+
type = GL_BYTE;
|
73
|
+
lists = RSTRING(arg1)->ptr;
|
74
|
+
n = RSTRING(arg1)->len;
|
75
|
+
} else if (TYPE(arg1) == T_ARRAY) {
|
76
|
+
type = GL_INT;
|
77
|
+
lists = ALLOC_N(int, RARRAY(arg1)->len);
|
78
|
+
n = ary2cint(arg1,lists,0);
|
79
|
+
} else {
|
80
|
+
rb_raise(rb_eArgError,"GL.CallLists wrong arguments");
|
81
|
+
return Qnil; /* not reached */
|
82
|
+
}
|
83
|
+
glCallLists(n, type, lists);
|
84
|
+
if (type == GL_INT) xfree(lists);
|
85
|
+
return Qnil;
|
86
|
+
}
|
87
|
+
|
88
|
+
static VALUE
|
89
|
+
gl_DeleteLists(obj,arg1,arg2)
|
90
|
+
VALUE obj,arg1,arg2;
|
91
|
+
{
|
92
|
+
GLuint list;
|
93
|
+
GLsizei range;
|
94
|
+
list = (GLuint)NUM2INT(arg1);
|
95
|
+
range = (GLsizei)NUM2INT(arg2);
|
96
|
+
glDeleteLists(list,range);
|
97
|
+
return Qnil;
|
98
|
+
}
|
99
|
+
|
100
|
+
static VALUE
|
101
|
+
gl_GenLists(obj,arg1)
|
102
|
+
VALUE obj,arg1;
|
103
|
+
{
|
104
|
+
GLsizei range;
|
105
|
+
GLuint ret;
|
106
|
+
range = (GLsizei)NUM2INT(arg1);
|
107
|
+
ret = glGenLists(range);
|
108
|
+
return INT2NUM(ret);
|
109
|
+
}
|
110
|
+
|
111
|
+
static VALUE
|
112
|
+
gl_ListBase(obj,arg1)
|
113
|
+
VALUE obj,arg1;
|
114
|
+
{
|
115
|
+
GLuint base;
|
116
|
+
base = (GLuint)NUM2INT(arg1);
|
117
|
+
glListBase(base);
|
118
|
+
return Qnil;
|
119
|
+
}
|
120
|
+
|
121
|
+
static VALUE
|
122
|
+
gl_Begin(obj,arg1)
|
123
|
+
VALUE obj,arg1;
|
124
|
+
{
|
125
|
+
GLenum mode;
|
126
|
+
mode = (GLenum)NUM2INT(arg1);
|
127
|
+
glBegin(mode);
|
128
|
+
return Qnil;
|
129
|
+
}
|
130
|
+
|
131
|
+
static VALUE
|
132
|
+
gl_Bitmap(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
133
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
134
|
+
{
|
135
|
+
GLsizei width;
|
136
|
+
GLsizei height;
|
137
|
+
GLfloat xorig;
|
138
|
+
GLfloat yorig;
|
139
|
+
GLfloat xmove;
|
140
|
+
GLfloat ymove;
|
141
|
+
const GLubyte *bitmap;
|
142
|
+
width = (GLsizei)NUM2INT(arg1);
|
143
|
+
height = (GLsizei)NUM2INT(arg2);
|
144
|
+
xorig = (GLfloat)NUM2DBL(arg3);
|
145
|
+
yorig = (GLfloat)NUM2DBL(arg4);
|
146
|
+
xmove = (GLfloat)NUM2DBL(arg5);
|
147
|
+
ymove = (GLfloat)NUM2DBL(arg6);
|
148
|
+
if (TYPE(arg7) != T_STRING)
|
149
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(arg7)));
|
150
|
+
if (RSTRING(arg7)->len < (width * height / 8))
|
151
|
+
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg7)->len);
|
152
|
+
bitmap = (const GLubyte*)RSTRING(arg7)->ptr;
|
153
|
+
glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
|
154
|
+
return Qnil;
|
155
|
+
}
|
156
|
+
|
157
|
+
static VALUE
|
158
|
+
gl_Color3b(obj,arg1,arg2,arg3)
|
159
|
+
VALUE obj,arg1,arg2,arg3;
|
160
|
+
{
|
161
|
+
GLbyte red;
|
162
|
+
GLbyte green;
|
163
|
+
GLbyte blue;
|
164
|
+
red = (GLbyte)NUM2INT(arg1);
|
165
|
+
green = (GLbyte)NUM2INT(arg2);
|
166
|
+
blue = (GLbyte)NUM2INT(arg3);
|
167
|
+
glColor3b(red,green,blue);
|
168
|
+
return Qnil;
|
169
|
+
}
|
170
|
+
|
171
|
+
static VALUE
|
172
|
+
gl_Color3d(obj,arg1,arg2,arg3)
|
173
|
+
VALUE obj,arg1,arg2,arg3;
|
174
|
+
{
|
175
|
+
GLdouble red;
|
176
|
+
GLdouble green;
|
177
|
+
GLdouble blue;
|
178
|
+
red = (GLdouble)NUM2DBL(arg1);
|
179
|
+
green = (GLdouble)NUM2DBL(arg2);
|
180
|
+
blue = (GLdouble)NUM2DBL(arg3);
|
181
|
+
glColor3d(red,green,blue);
|
182
|
+
return Qnil;
|
183
|
+
}
|
184
|
+
|
185
|
+
static VALUE
|
186
|
+
gl_Color3f(obj,arg1,arg2,arg3)
|
187
|
+
VALUE obj,arg1,arg2,arg3;
|
188
|
+
{
|
189
|
+
GLfloat red;
|
190
|
+
GLfloat green;
|
191
|
+
GLfloat blue;
|
192
|
+
red = (GLfloat)NUM2DBL(arg1);
|
193
|
+
green = (GLfloat)NUM2DBL(arg2);
|
194
|
+
blue = (GLfloat)NUM2DBL(arg3);
|
195
|
+
glColor3f(red,green,blue);
|
196
|
+
return Qnil;
|
197
|
+
}
|
198
|
+
|
199
|
+
static VALUE
|
200
|
+
gl_Color3i(obj,arg1,arg2,arg3)
|
201
|
+
VALUE obj,arg1,arg2,arg3;
|
202
|
+
{
|
203
|
+
GLint red;
|
204
|
+
GLint green;
|
205
|
+
GLint blue;
|
206
|
+
red = (GLint)NUM2INT(arg1);
|
207
|
+
green = (GLint)NUM2INT(arg2);
|
208
|
+
blue = (GLint)NUM2INT(arg3);
|
209
|
+
glColor3i(red,green,blue);
|
210
|
+
return Qnil;
|
211
|
+
}
|
212
|
+
|
213
|
+
static VALUE
|
214
|
+
gl_Color3s(obj,arg1,arg2,arg3)
|
215
|
+
VALUE obj,arg1,arg2,arg3;
|
216
|
+
{
|
217
|
+
GLshort red;
|
218
|
+
GLshort green;
|
219
|
+
GLshort blue;
|
220
|
+
red = (GLshort)NUM2INT(arg1);
|
221
|
+
green = (GLshort)NUM2INT(arg2);
|
222
|
+
blue = (GLshort)NUM2INT(arg3);
|
223
|
+
glColor3s(red,green,blue);
|
224
|
+
return Qnil;
|
225
|
+
}
|
226
|
+
|
227
|
+
static VALUE
|
228
|
+
gl_Color3ub(obj,arg1,arg2,arg3)
|
229
|
+
VALUE obj,arg1,arg2,arg3;
|
230
|
+
{
|
231
|
+
GLubyte red;
|
232
|
+
GLubyte green;
|
233
|
+
GLubyte blue;
|
234
|
+
red = (GLubyte)NUM2INT(arg1);
|
235
|
+
green = (GLubyte)NUM2INT(arg2);
|
236
|
+
blue = (GLubyte)NUM2INT(arg3);
|
237
|
+
glColor3ub(red,green,blue);
|
238
|
+
return Qnil;
|
239
|
+
}
|
240
|
+
|
241
|
+
static VALUE
|
242
|
+
gl_Color3ui(obj,arg1,arg2,arg3)
|
243
|
+
VALUE obj,arg1,arg2,arg3;
|
244
|
+
{
|
245
|
+
GLuint red;
|
246
|
+
GLuint green;
|
247
|
+
GLuint blue;
|
248
|
+
red = (GLuint)NUM2INT(arg1);
|
249
|
+
green = (GLuint)NUM2INT(arg2);
|
250
|
+
blue = (GLuint)NUM2INT(arg3);
|
251
|
+
glColor3ui(red,green,blue);
|
252
|
+
return Qnil;
|
253
|
+
}
|
254
|
+
|
255
|
+
static VALUE
|
256
|
+
gl_Color3us(obj,arg1,arg2,arg3)
|
257
|
+
VALUE obj,arg1,arg2,arg3;
|
258
|
+
{
|
259
|
+
GLushort red;
|
260
|
+
GLushort green;
|
261
|
+
GLushort blue;
|
262
|
+
red = (GLushort)NUM2INT(arg1);
|
263
|
+
green = (GLushort)NUM2INT(arg2);
|
264
|
+
blue = (GLushort)NUM2INT(arg3);
|
265
|
+
glColor3us(red,green,blue);
|
266
|
+
return Qnil;
|
267
|
+
}
|
268
|
+
|
269
|
+
static VALUE
|
270
|
+
gl_Color4b(obj,arg1,arg2,arg3,arg4)
|
271
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
272
|
+
{
|
273
|
+
GLbyte red;
|
274
|
+
GLbyte green;
|
275
|
+
GLbyte blue;
|
276
|
+
GLbyte alpha;
|
277
|
+
red = (GLbyte)NUM2INT(arg1);
|
278
|
+
green = (GLbyte)NUM2INT(arg2);
|
279
|
+
blue = (GLbyte)NUM2INT(arg3);
|
280
|
+
alpha = (GLbyte)NUM2INT(arg4);
|
281
|
+
glColor4b(red,green,blue,alpha);
|
282
|
+
return Qnil;
|
283
|
+
}
|
284
|
+
|
285
|
+
static VALUE
|
286
|
+
gl_Color4d(obj,arg1,arg2,arg3,arg4)
|
287
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
288
|
+
{
|
289
|
+
GLdouble red;
|
290
|
+
GLdouble green;
|
291
|
+
GLdouble blue;
|
292
|
+
GLdouble alpha;
|
293
|
+
red = (GLdouble)NUM2DBL(arg1);
|
294
|
+
green = (GLdouble)NUM2DBL(arg2);
|
295
|
+
blue = (GLdouble)NUM2DBL(arg3);
|
296
|
+
alpha = (GLdouble)NUM2DBL(arg4);
|
297
|
+
glColor4d(red,green,blue,alpha);
|
298
|
+
return Qnil;
|
299
|
+
}
|
300
|
+
|
301
|
+
static VALUE
|
302
|
+
gl_Color4f(obj,arg1,arg2,arg3,arg4)
|
303
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
304
|
+
{
|
305
|
+
GLfloat red;
|
306
|
+
GLfloat green;
|
307
|
+
GLfloat blue;
|
308
|
+
GLfloat alpha;
|
309
|
+
red = (GLfloat)NUM2DBL(arg1);
|
310
|
+
green = (GLfloat)NUM2DBL(arg2);
|
311
|
+
blue = (GLfloat)NUM2DBL(arg3);
|
312
|
+
alpha = (GLfloat)NUM2DBL(arg4);
|
313
|
+
glColor4f(red,green,blue,alpha);
|
314
|
+
return Qnil;
|
315
|
+
}
|
316
|
+
|
317
|
+
static VALUE
|
318
|
+
gl_Color4i(obj,arg1,arg2,arg3,arg4)
|
319
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
320
|
+
{
|
321
|
+
GLint red;
|
322
|
+
GLint green;
|
323
|
+
GLint blue;
|
324
|
+
GLint alpha;
|
325
|
+
red = (GLint)NUM2INT(arg1);
|
326
|
+
green = (GLint)NUM2INT(arg2);
|
327
|
+
blue = (GLint)NUM2INT(arg3);
|
328
|
+
alpha = (GLint)NUM2INT(arg4);
|
329
|
+
glColor4i(red,green,blue,alpha);
|
330
|
+
return Qnil;
|
331
|
+
}
|
332
|
+
|
333
|
+
static VALUE
|
334
|
+
gl_Color4s(obj,arg1,arg2,arg3,arg4)
|
335
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
336
|
+
{
|
337
|
+
GLshort red;
|
338
|
+
GLshort green;
|
339
|
+
GLshort blue;
|
340
|
+
GLshort alpha;
|
341
|
+
red = (GLshort)NUM2INT(arg1);
|
342
|
+
green = (GLshort)NUM2INT(arg2);
|
343
|
+
blue = (GLshort)NUM2INT(arg3);
|
344
|
+
alpha = (GLshort)NUM2INT(arg4);
|
345
|
+
glColor4s(red,green,blue,alpha);
|
346
|
+
return Qnil;
|
347
|
+
}
|
348
|
+
|
349
|
+
static VALUE
|
350
|
+
gl_Color4ub(obj,arg1,arg2,arg3,arg4)
|
351
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
352
|
+
{
|
353
|
+
GLubyte red;
|
354
|
+
GLubyte green;
|
355
|
+
GLubyte blue;
|
356
|
+
GLubyte alpha;
|
357
|
+
red = (GLubyte)NUM2INT(arg1);
|
358
|
+
green = (GLubyte)NUM2INT(arg2);
|
359
|
+
blue = (GLubyte)NUM2INT(arg3);
|
360
|
+
alpha = (GLubyte)NUM2INT(arg4);
|
361
|
+
glColor4ub(red,green,blue,alpha);
|
362
|
+
return Qnil;
|
363
|
+
}
|
364
|
+
|
365
|
+
static VALUE
|
366
|
+
gl_Color4ui(obj,arg1,arg2,arg3,arg4)
|
367
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
368
|
+
{
|
369
|
+
GLuint red;
|
370
|
+
GLuint green;
|
371
|
+
GLuint blue;
|
372
|
+
GLuint alpha;
|
373
|
+
red = (GLuint)NUM2INT(arg1);
|
374
|
+
green = (GLuint)NUM2INT(arg2);
|
375
|
+
blue = (GLuint)NUM2INT(arg3);
|
376
|
+
alpha = (GLuint)NUM2INT(arg4);
|
377
|
+
glColor4ui(red,green,blue,alpha);
|
378
|
+
return Qnil;
|
379
|
+
}
|
380
|
+
|
381
|
+
static VALUE
|
382
|
+
gl_Color4us(obj,arg1,arg2,arg3,arg4)
|
383
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
384
|
+
{
|
385
|
+
GLushort red;
|
386
|
+
GLushort green;
|
387
|
+
GLushort blue;
|
388
|
+
GLushort alpha;
|
389
|
+
red = (GLushort)NUM2INT(arg1);
|
390
|
+
green = (GLushort)NUM2INT(arg2);
|
391
|
+
blue = (GLushort)NUM2INT(arg3);
|
392
|
+
alpha = (GLushort)NUM2INT(arg4);
|
393
|
+
glColor4us(red,green,blue,alpha);
|
394
|
+
return Qnil;
|
395
|
+
}
|
396
|
+
|
397
|
+
static VALUE
|
398
|
+
gl_EdgeFlag(obj,arg1)
|
399
|
+
VALUE obj,arg1;
|
400
|
+
{
|
401
|
+
GLboolean flag;
|
402
|
+
flag = (GLboolean)NUM2INT(arg1);
|
403
|
+
glEdgeFlag(flag);
|
404
|
+
return Qnil;
|
405
|
+
}
|
406
|
+
|
407
|
+
static VALUE
|
408
|
+
gl_EdgeFlagv(obj,arg1)
|
409
|
+
VALUE obj,arg1;
|
410
|
+
{
|
411
|
+
GLboolean flag[1] = { GL_FALSE };
|
412
|
+
if (TYPE(arg1) != T_ARRAY)
|
413
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
414
|
+
ary2cboolean(arg1,flag,1);
|
415
|
+
glEdgeFlagv(flag);
|
416
|
+
return Qnil;
|
417
|
+
}
|
418
|
+
|
419
|
+
static VALUE
|
420
|
+
gl_End(obj)
|
421
|
+
VALUE obj;
|
422
|
+
{
|
423
|
+
glEnd();
|
424
|
+
return Qnil;
|
425
|
+
}
|
426
|
+
|
427
|
+
static VALUE
|
428
|
+
gl_Indexd(obj,arg1)
|
429
|
+
VALUE obj,arg1;
|
430
|
+
{
|
431
|
+
GLdouble c;
|
432
|
+
c = (GLdouble)NUM2DBL(arg1);
|
433
|
+
glIndexd(c);
|
434
|
+
return Qnil;
|
435
|
+
}
|
436
|
+
|
437
|
+
static VALUE
|
438
|
+
gl_Indexdv(obj,arg1)
|
439
|
+
VALUE obj,arg1;
|
440
|
+
{
|
441
|
+
GLdouble c[1] = {0.0};
|
442
|
+
if (TYPE(arg1) != T_ARRAY)
|
443
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
444
|
+
ary2cdbl(arg1,c,1);
|
445
|
+
glIndexdv(c);
|
446
|
+
return Qnil;
|
447
|
+
}
|
448
|
+
|
449
|
+
static VALUE
|
450
|
+
gl_Indexf(obj,arg1)
|
451
|
+
VALUE obj,arg1;
|
452
|
+
{
|
453
|
+
GLfloat c;
|
454
|
+
c = (GLfloat)NUM2DBL(arg1);
|
455
|
+
glIndexf(c);
|
456
|
+
return Qnil;
|
457
|
+
}
|
458
|
+
|
459
|
+
static VALUE
|
460
|
+
gl_Indexfv(obj,arg1)
|
461
|
+
VALUE obj,arg1;
|
462
|
+
{
|
463
|
+
GLfloat c[1] = {0.0};
|
464
|
+
if (TYPE(arg1) != T_ARRAY)
|
465
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
466
|
+
ary2cflt(arg1,c,1);
|
467
|
+
glIndexfv(c);
|
468
|
+
return Qnil;
|
469
|
+
}
|
470
|
+
|
471
|
+
static VALUE
|
472
|
+
gl_Indexi(obj,arg1)
|
473
|
+
VALUE obj,arg1;
|
474
|
+
{
|
475
|
+
GLint c;
|
476
|
+
c = (GLint)NUM2INT(arg1);
|
477
|
+
glIndexi(c);
|
478
|
+
return Qnil;
|
479
|
+
}
|
480
|
+
|
481
|
+
static VALUE
|
482
|
+
gl_Indexiv(obj,arg1)
|
483
|
+
VALUE obj,arg1;
|
484
|
+
{
|
485
|
+
GLint c[1] = {0.0};
|
486
|
+
if (TYPE(arg1) != T_ARRAY)
|
487
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
488
|
+
ary2cint(arg1,c,1);
|
489
|
+
glIndexiv(c);
|
490
|
+
return Qnil;
|
491
|
+
}
|
492
|
+
|
493
|
+
static VALUE
|
494
|
+
gl_Indexs(obj,arg1)
|
495
|
+
VALUE obj,arg1;
|
496
|
+
{
|
497
|
+
GLshort c;
|
498
|
+
c = (GLshort)NUM2INT(arg1);
|
499
|
+
glIndexs(c);
|
500
|
+
return Qnil;
|
501
|
+
}
|
502
|
+
|
503
|
+
static VALUE
|
504
|
+
gl_Indexsv(obj,arg1)
|
505
|
+
VALUE obj,arg1;
|
506
|
+
{
|
507
|
+
GLshort c[1] = {0};
|
508
|
+
if (TYPE(arg1) != T_ARRAY)
|
509
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
510
|
+
ary2cshort(arg1,c,1);
|
511
|
+
glIndexsv(c);
|
512
|
+
return Qnil;
|
513
|
+
}
|
514
|
+
|
515
|
+
static VALUE
|
516
|
+
gl_Normal3b(obj,arg1,arg2,arg3)
|
517
|
+
VALUE obj,arg1,arg2,arg3;
|
518
|
+
{
|
519
|
+
GLbyte nx;
|
520
|
+
GLbyte ny;
|
521
|
+
GLbyte nz;
|
522
|
+
nx = (GLbyte)NUM2INT(arg1);
|
523
|
+
ny = (GLbyte)NUM2INT(arg2);
|
524
|
+
nz = (GLbyte)NUM2INT(arg3);
|
525
|
+
glNormal3b(nx,ny,nz);
|
526
|
+
return Qnil;
|
527
|
+
}
|
528
|
+
|
529
|
+
static VALUE
|
530
|
+
gl_Normal3d(obj,arg1,arg2,arg3)
|
531
|
+
VALUE obj,arg1,arg2,arg3;
|
532
|
+
{
|
533
|
+
GLdouble nx;
|
534
|
+
GLdouble ny;
|
535
|
+
GLdouble nz;
|
536
|
+
nx = (GLdouble)NUM2DBL(arg1);
|
537
|
+
ny = (GLdouble)NUM2DBL(arg2);
|
538
|
+
nz = (GLdouble)NUM2DBL(arg3);
|
539
|
+
glNormal3d(nx,ny,nz);
|
540
|
+
return Qnil;
|
541
|
+
}
|
542
|
+
|
543
|
+
static VALUE
|
544
|
+
gl_Normal3f(obj,arg1,arg2,arg3)
|
545
|
+
VALUE obj,arg1,arg2,arg3;
|
546
|
+
{
|
547
|
+
GLfloat nx;
|
548
|
+
GLfloat ny;
|
549
|
+
GLfloat nz;
|
550
|
+
nx = (GLfloat)NUM2DBL(arg1);
|
551
|
+
ny = (GLfloat)NUM2DBL(arg2);
|
552
|
+
nz = (GLfloat)NUM2DBL(arg3);
|
553
|
+
glNormal3f(nx,ny,nz);
|
554
|
+
return Qnil;
|
555
|
+
}
|
556
|
+
|
557
|
+
static VALUE
|
558
|
+
gl_Normal3i(obj,arg1,arg2,arg3)
|
559
|
+
VALUE obj,arg1,arg2,arg3;
|
560
|
+
{
|
561
|
+
GLint nx;
|
562
|
+
GLint ny;
|
563
|
+
GLint nz;
|
564
|
+
nx = (GLint)NUM2INT(arg1);
|
565
|
+
ny = (GLint)NUM2INT(arg2);
|
566
|
+
nz = (GLint)NUM2INT(arg3);
|
567
|
+
glNormal3i(nx,ny,nz);
|
568
|
+
return Qnil;
|
569
|
+
}
|
570
|
+
|
571
|
+
static VALUE
|
572
|
+
gl_Normal3s(obj,arg1,arg2,arg3)
|
573
|
+
VALUE obj,arg1,arg2,arg3;
|
574
|
+
{
|
575
|
+
GLshort nx;
|
576
|
+
GLshort ny;
|
577
|
+
GLshort nz;
|
578
|
+
nx = (GLshort)NUM2INT(arg1);
|
579
|
+
ny = (GLshort)NUM2INT(arg2);
|
580
|
+
nz = (GLshort)NUM2INT(arg3);
|
581
|
+
glNormal3s(nx,ny,nz);
|
582
|
+
return Qnil;
|
583
|
+
}
|
584
|
+
|
585
|
+
static VALUE
|
586
|
+
gl_RasterPos2d(obj,arg1,arg2)
|
587
|
+
VALUE obj,arg1,arg2;
|
588
|
+
{
|
589
|
+
GLdouble x;
|
590
|
+
GLdouble y;
|
591
|
+
x = (GLdouble)NUM2DBL(arg1);
|
592
|
+
y = (GLdouble)NUM2DBL(arg2);
|
593
|
+
glRasterPos2d(x,y);
|
594
|
+
return Qnil;
|
595
|
+
}
|
596
|
+
|
597
|
+
static VALUE
|
598
|
+
gl_RasterPos2f(obj,arg1,arg2)
|
599
|
+
VALUE obj,arg1,arg2;
|
600
|
+
{
|
601
|
+
GLfloat x;
|
602
|
+
GLfloat y;
|
603
|
+
x = (GLfloat)NUM2DBL(arg1);
|
604
|
+
y = (GLfloat)NUM2DBL(arg2);
|
605
|
+
glRasterPos2f(x,y);
|
606
|
+
return Qnil;
|
607
|
+
}
|
608
|
+
|
609
|
+
static VALUE
|
610
|
+
gl_RasterPos2i(obj,arg1,arg2)
|
611
|
+
VALUE obj,arg1,arg2;
|
612
|
+
{
|
613
|
+
GLint x;
|
614
|
+
GLint y;
|
615
|
+
x = (GLint)NUM2INT(arg1);
|
616
|
+
y = (GLint)NUM2INT(arg2);
|
617
|
+
glRasterPos2i(x,y);
|
618
|
+
return Qnil;
|
619
|
+
}
|
620
|
+
|
621
|
+
static VALUE
|
622
|
+
gl_RasterPos2s(obj,arg1,arg2)
|
623
|
+
VALUE obj,arg1,arg2;
|
624
|
+
{
|
625
|
+
GLshort x;
|
626
|
+
GLshort y;
|
627
|
+
x = (GLshort)NUM2INT(arg1);
|
628
|
+
y = (GLshort)NUM2INT(arg2);
|
629
|
+
glRasterPos2s(x,y);
|
630
|
+
return Qnil;
|
631
|
+
}
|
632
|
+
|
633
|
+
static VALUE
|
634
|
+
gl_RasterPos3d(obj,arg1,arg2,arg3)
|
635
|
+
VALUE obj,arg1,arg2,arg3;
|
636
|
+
{
|
637
|
+
GLdouble x;
|
638
|
+
GLdouble y;
|
639
|
+
GLdouble z;
|
640
|
+
x = (GLdouble)NUM2DBL(arg1);
|
641
|
+
y = (GLdouble)NUM2DBL(arg2);
|
642
|
+
z = (GLdouble)NUM2DBL(arg3);
|
643
|
+
glRasterPos3d(x,y,z);
|
644
|
+
return Qnil;
|
645
|
+
}
|
646
|
+
|
647
|
+
static VALUE
|
648
|
+
gl_RasterPos3f(obj,arg1,arg2,arg3)
|
649
|
+
VALUE obj,arg1,arg2,arg3;
|
650
|
+
{
|
651
|
+
GLfloat x;
|
652
|
+
GLfloat y;
|
653
|
+
GLfloat z;
|
654
|
+
x = (GLfloat)NUM2DBL(arg1);
|
655
|
+
y = (GLfloat)NUM2DBL(arg2);
|
656
|
+
z = (GLfloat)NUM2DBL(arg3);
|
657
|
+
glRasterPos3f(x,y,z);
|
658
|
+
return Qnil;
|
659
|
+
}
|
660
|
+
|
661
|
+
static VALUE
|
662
|
+
gl_RasterPos3i(obj,arg1,arg2,arg3)
|
663
|
+
VALUE obj,arg1,arg2,arg3;
|
664
|
+
{
|
665
|
+
GLint x;
|
666
|
+
GLint y;
|
667
|
+
GLint z;
|
668
|
+
x = (GLint)NUM2INT(arg1);
|
669
|
+
y = (GLint)NUM2INT(arg2);
|
670
|
+
z = (GLint)NUM2INT(arg3);
|
671
|
+
glRasterPos3i(x,y,z);
|
672
|
+
return Qnil;
|
673
|
+
}
|
674
|
+
|
675
|
+
static VALUE
|
676
|
+
gl_RasterPos3s(obj,arg1,arg2,arg3)
|
677
|
+
VALUE obj,arg1,arg2,arg3;
|
678
|
+
{
|
679
|
+
GLshort x;
|
680
|
+
GLshort y;
|
681
|
+
GLshort z;
|
682
|
+
x = (GLshort)NUM2INT(arg1);
|
683
|
+
y = (GLshort)NUM2INT(arg2);
|
684
|
+
z = (GLshort)NUM2INT(arg3);
|
685
|
+
glRasterPos3s(x,y,z);
|
686
|
+
return Qnil;
|
687
|
+
}
|
688
|
+
|
689
|
+
static VALUE
|
690
|
+
gl_RasterPos4d(obj,arg1,arg2,arg3,arg4)
|
691
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
692
|
+
{
|
693
|
+
GLdouble x;
|
694
|
+
GLdouble y;
|
695
|
+
GLdouble z;
|
696
|
+
GLdouble w;
|
697
|
+
x = (GLdouble)NUM2DBL(arg1);
|
698
|
+
y = (GLdouble)NUM2DBL(arg2);
|
699
|
+
z = (GLdouble)NUM2DBL(arg3);
|
700
|
+
w = (GLdouble)NUM2DBL(arg4);
|
701
|
+
glRasterPos4d(x,y,z,w);
|
702
|
+
return Qnil;
|
703
|
+
}
|
704
|
+
|
705
|
+
static VALUE
|
706
|
+
gl_RasterPos4f(obj,arg1,arg2,arg3,arg4)
|
707
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
708
|
+
{
|
709
|
+
GLfloat x;
|
710
|
+
GLfloat y;
|
711
|
+
GLfloat z;
|
712
|
+
GLfloat w;
|
713
|
+
x = (GLfloat)NUM2DBL(arg1);
|
714
|
+
y = (GLfloat)NUM2DBL(arg2);
|
715
|
+
z = (GLfloat)NUM2DBL(arg3);
|
716
|
+
w = (GLfloat)NUM2DBL(arg4);
|
717
|
+
glRasterPos4f(x,y,z,w);
|
718
|
+
return Qnil;
|
719
|
+
}
|
720
|
+
|
721
|
+
static VALUE
|
722
|
+
gl_RasterPos4i(obj,arg1,arg2,arg3,arg4)
|
723
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
724
|
+
{
|
725
|
+
GLint x;
|
726
|
+
GLint y;
|
727
|
+
GLint z;
|
728
|
+
GLint w;
|
729
|
+
x = (GLint)NUM2INT(arg1);
|
730
|
+
y = (GLint)NUM2INT(arg2);
|
731
|
+
z = (GLint)NUM2INT(arg3);
|
732
|
+
w = (GLint)NUM2INT(arg4);
|
733
|
+
glRasterPos4i(x,y,z,w);
|
734
|
+
return Qnil;
|
735
|
+
}
|
736
|
+
|
737
|
+
static VALUE
|
738
|
+
gl_RasterPos4s(obj,arg1,arg2,arg3,arg4)
|
739
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
740
|
+
{
|
741
|
+
GLshort x;
|
742
|
+
GLshort y;
|
743
|
+
GLshort z;
|
744
|
+
GLshort w;
|
745
|
+
x = (GLshort)NUM2INT(arg1);
|
746
|
+
y = (GLshort)NUM2INT(arg2);
|
747
|
+
z = (GLshort)NUM2INT(arg3);
|
748
|
+
w = (GLshort)NUM2INT(arg4);
|
749
|
+
glRasterPos4s(x,y,z,w);
|
750
|
+
return Qnil;
|
751
|
+
}
|
752
|
+
|
753
|
+
static VALUE
|
754
|
+
gl_Rectd(obj,arg1,arg2,arg3,arg4)
|
755
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
756
|
+
{
|
757
|
+
GLdouble x1;
|
758
|
+
GLdouble y1;
|
759
|
+
GLdouble x2;
|
760
|
+
GLdouble y2;
|
761
|
+
x1 = (GLdouble)NUM2DBL(arg1);
|
762
|
+
y1 = (GLdouble)NUM2DBL(arg2);
|
763
|
+
x2 = (GLdouble)NUM2DBL(arg3);
|
764
|
+
y2 = (GLdouble)NUM2DBL(arg4);
|
765
|
+
glRectd(x1,y1,x2,y2);
|
766
|
+
return Qnil;
|
767
|
+
}
|
768
|
+
|
769
|
+
static VALUE
|
770
|
+
gl_Rectf(obj,arg1,arg2,arg3,arg4)
|
771
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
772
|
+
{
|
773
|
+
GLfloat x1;
|
774
|
+
GLfloat y1;
|
775
|
+
GLfloat x2;
|
776
|
+
GLfloat y2;
|
777
|
+
x1 = (GLfloat)NUM2DBL(arg1);
|
778
|
+
y1 = (GLfloat)NUM2DBL(arg2);
|
779
|
+
x2 = (GLfloat)NUM2DBL(arg3);
|
780
|
+
y2 = (GLfloat)NUM2DBL(arg4);
|
781
|
+
glRectf(x1,y1,x2,y2);
|
782
|
+
return Qnil;
|
783
|
+
}
|
784
|
+
|
785
|
+
static VALUE
|
786
|
+
gl_Recti(obj,arg1,arg2,arg3,arg4)
|
787
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
788
|
+
{
|
789
|
+
GLint x1;
|
790
|
+
GLint y1;
|
791
|
+
GLint x2;
|
792
|
+
GLint y2;
|
793
|
+
x1 = (GLint)NUM2INT(arg1);
|
794
|
+
y1 = (GLint)NUM2INT(arg2);
|
795
|
+
x2 = (GLint)NUM2INT(arg3);
|
796
|
+
y2 = (GLint)NUM2INT(arg4);
|
797
|
+
glRecti(x1,y1,x2,y2);
|
798
|
+
return Qnil;
|
799
|
+
}
|
800
|
+
|
801
|
+
static VALUE
|
802
|
+
gl_Rects(obj,arg1,arg2,arg3,arg4)
|
803
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
804
|
+
{
|
805
|
+
GLshort x1;
|
806
|
+
GLshort y1;
|
807
|
+
GLshort x2;
|
808
|
+
GLshort y2;
|
809
|
+
x1 = (GLshort)NUM2INT(arg1);
|
810
|
+
y1 = (GLshort)NUM2INT(arg2);
|
811
|
+
x2 = (GLshort)NUM2INT(arg3);
|
812
|
+
y2 = (GLshort)NUM2INT(arg4);
|
813
|
+
glRects(x1,y1,x2,y2);
|
814
|
+
return Qnil;
|
815
|
+
}
|
816
|
+
|
817
|
+
static VALUE
|
818
|
+
gl_TexCoord1d(obj,arg1)
|
819
|
+
VALUE obj,arg1;
|
820
|
+
{
|
821
|
+
GLdouble s;
|
822
|
+
s = (GLdouble)NUM2DBL(arg1);
|
823
|
+
glTexCoord1d(s);
|
824
|
+
return Qnil;
|
825
|
+
}
|
826
|
+
|
827
|
+
static VALUE
|
828
|
+
gl_TexCoord1f(obj,arg1)
|
829
|
+
VALUE obj,arg1;
|
830
|
+
{
|
831
|
+
GLfloat s;
|
832
|
+
s = (GLfloat)NUM2DBL(arg1);
|
833
|
+
glTexCoord1f(s);
|
834
|
+
return Qnil;
|
835
|
+
}
|
836
|
+
|
837
|
+
static VALUE
|
838
|
+
gl_TexCoord1i(obj,arg1)
|
839
|
+
VALUE obj,arg1;
|
840
|
+
{
|
841
|
+
GLint s;
|
842
|
+
s = (GLint)NUM2INT(arg1);
|
843
|
+
glTexCoord1i(s);
|
844
|
+
return Qnil;
|
845
|
+
}
|
846
|
+
|
847
|
+
static VALUE
|
848
|
+
gl_TexCoord1s(obj,arg1)
|
849
|
+
VALUE obj,arg1;
|
850
|
+
{
|
851
|
+
GLshort s;
|
852
|
+
s = (GLshort)NUM2INT(arg1);
|
853
|
+
glTexCoord1s(s);
|
854
|
+
return Qnil;
|
855
|
+
}
|
856
|
+
|
857
|
+
static VALUE
|
858
|
+
gl_TexCoord2d(obj,arg1,arg2)
|
859
|
+
VALUE obj,arg1,arg2;
|
860
|
+
{
|
861
|
+
GLdouble s;
|
862
|
+
GLdouble t;
|
863
|
+
s = (GLdouble)NUM2DBL(arg1);
|
864
|
+
t = (GLdouble)NUM2DBL(arg2);
|
865
|
+
glTexCoord2d(s,t);
|
866
|
+
return Qnil;
|
867
|
+
}
|
868
|
+
|
869
|
+
static VALUE
|
870
|
+
gl_TexCoord2f(obj,arg1,arg2)
|
871
|
+
VALUE obj,arg1,arg2;
|
872
|
+
{
|
873
|
+
GLfloat s;
|
874
|
+
GLfloat t;
|
875
|
+
s = (GLfloat)NUM2DBL(arg1);
|
876
|
+
t = (GLfloat)NUM2DBL(arg2);
|
877
|
+
glTexCoord2f(s,t);
|
878
|
+
return Qnil;
|
879
|
+
}
|
880
|
+
|
881
|
+
static VALUE
|
882
|
+
gl_TexCoord2i(obj,arg1,arg2)
|
883
|
+
VALUE obj,arg1,arg2;
|
884
|
+
{
|
885
|
+
GLint s;
|
886
|
+
GLint t;
|
887
|
+
s = (GLint)NUM2INT(arg1);
|
888
|
+
t = (GLint)NUM2INT(arg2);
|
889
|
+
glTexCoord2i(s,t);
|
890
|
+
return Qnil;
|
891
|
+
}
|
892
|
+
|
893
|
+
static VALUE
|
894
|
+
gl_TexCoord2s(obj,arg1,arg2)
|
895
|
+
VALUE obj,arg1,arg2;
|
896
|
+
{
|
897
|
+
GLshort s;
|
898
|
+
GLshort t;
|
899
|
+
s = (GLshort)NUM2INT(arg1);
|
900
|
+
t = (GLshort)NUM2INT(arg2);
|
901
|
+
glTexCoord2s(s,t);
|
902
|
+
return Qnil;
|
903
|
+
}
|
904
|
+
|
905
|
+
static VALUE
|
906
|
+
gl_TexCoord3d(obj,arg1,arg2,arg3)
|
907
|
+
VALUE obj,arg1,arg2,arg3;
|
908
|
+
{
|
909
|
+
GLdouble s;
|
910
|
+
GLdouble t;
|
911
|
+
GLdouble r;
|
912
|
+
s = (GLdouble)NUM2DBL(arg1);
|
913
|
+
t = (GLdouble)NUM2DBL(arg2);
|
914
|
+
r = (GLdouble)NUM2DBL(arg3);
|
915
|
+
glTexCoord3d(s,t,r);
|
916
|
+
return Qnil;
|
917
|
+
}
|
918
|
+
|
919
|
+
static VALUE
|
920
|
+
gl_TexCoord3f(obj,arg1,arg2,arg3)
|
921
|
+
VALUE obj,arg1,arg2,arg3;
|
922
|
+
{
|
923
|
+
GLfloat s;
|
924
|
+
GLfloat t;
|
925
|
+
GLfloat r;
|
926
|
+
s = (GLfloat)NUM2DBL(arg1);
|
927
|
+
t = (GLfloat)NUM2DBL(arg2);
|
928
|
+
r = (GLfloat)NUM2DBL(arg3);
|
929
|
+
glTexCoord3f(s,t,r);
|
930
|
+
return Qnil;
|
931
|
+
}
|
932
|
+
|
933
|
+
static VALUE
|
934
|
+
gl_TexCoord3i(obj,arg1,arg2,arg3)
|
935
|
+
VALUE obj,arg1,arg2,arg3;
|
936
|
+
{
|
937
|
+
GLint s;
|
938
|
+
GLint t;
|
939
|
+
GLint r;
|
940
|
+
s = (GLint)NUM2INT(arg1);
|
941
|
+
t = (GLint)NUM2INT(arg2);
|
942
|
+
r = (GLint)NUM2INT(arg3);
|
943
|
+
glTexCoord3i(s,t,r);
|
944
|
+
return Qnil;
|
945
|
+
}
|
946
|
+
|
947
|
+
static VALUE
|
948
|
+
gl_TexCoord3s(obj,arg1,arg2,arg3)
|
949
|
+
VALUE obj,arg1,arg2,arg3;
|
950
|
+
{
|
951
|
+
GLshort s;
|
952
|
+
GLshort t;
|
953
|
+
GLshort r;
|
954
|
+
s = (GLshort)NUM2INT(arg1);
|
955
|
+
t = (GLshort)NUM2INT(arg2);
|
956
|
+
r = (GLshort)NUM2INT(arg3);
|
957
|
+
glTexCoord3s(s,t,r);
|
958
|
+
return Qnil;
|
959
|
+
}
|
960
|
+
|
961
|
+
static VALUE
|
962
|
+
gl_TexCoord4d(obj,arg1,arg2,arg3,arg4)
|
963
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
964
|
+
{
|
965
|
+
GLdouble s;
|
966
|
+
GLdouble t;
|
967
|
+
GLdouble r;
|
968
|
+
GLdouble q;
|
969
|
+
s = (GLdouble)NUM2DBL(arg1);
|
970
|
+
t = (GLdouble)NUM2DBL(arg2);
|
971
|
+
r = (GLdouble)NUM2DBL(arg3);
|
972
|
+
q = (GLdouble)NUM2DBL(arg4);
|
973
|
+
glTexCoord4d(s,t,r,q);
|
974
|
+
return Qnil;
|
975
|
+
}
|
976
|
+
|
977
|
+
static VALUE
|
978
|
+
gl_TexCoord4f(obj,arg1,arg2,arg3,arg4)
|
979
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
980
|
+
{
|
981
|
+
GLfloat s;
|
982
|
+
GLfloat t;
|
983
|
+
GLfloat r;
|
984
|
+
GLfloat q;
|
985
|
+
s = (GLfloat)NUM2DBL(arg1);
|
986
|
+
t = (GLfloat)NUM2DBL(arg2);
|
987
|
+
r = (GLfloat)NUM2DBL(arg3);
|
988
|
+
q = (GLfloat)NUM2DBL(arg4);
|
989
|
+
glTexCoord4f(s,t,r,q);
|
990
|
+
return Qnil;
|
991
|
+
}
|
992
|
+
|
993
|
+
static VALUE
|
994
|
+
gl_TexCoord4i(obj,arg1,arg2,arg3,arg4)
|
995
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
996
|
+
{
|
997
|
+
GLint s;
|
998
|
+
GLint t;
|
999
|
+
GLint r;
|
1000
|
+
GLint q;
|
1001
|
+
s = (GLint)NUM2INT(arg1);
|
1002
|
+
t = (GLint)NUM2INT(arg2);
|
1003
|
+
r = (GLint)NUM2INT(arg3);
|
1004
|
+
q = (GLint)NUM2INT(arg4);
|
1005
|
+
glTexCoord4i(s,t,r,q);
|
1006
|
+
return Qnil;
|
1007
|
+
}
|
1008
|
+
|
1009
|
+
static VALUE
|
1010
|
+
gl_TexCoord4s(obj,arg1,arg2,arg3,arg4)
|
1011
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1012
|
+
{
|
1013
|
+
GLshort s;
|
1014
|
+
GLshort t;
|
1015
|
+
GLshort r;
|
1016
|
+
GLshort q;
|
1017
|
+
s = (GLshort)NUM2INT(arg1);
|
1018
|
+
t = (GLshort)NUM2INT(arg2);
|
1019
|
+
r = (GLshort)NUM2INT(arg3);
|
1020
|
+
q = (GLshort)NUM2INT(arg4);
|
1021
|
+
glTexCoord4s(s,t,r,q);
|
1022
|
+
return Qnil;
|
1023
|
+
}
|
1024
|
+
|
1025
|
+
static VALUE
|
1026
|
+
gl_Vertex2d(obj,arg1,arg2)
|
1027
|
+
VALUE obj,arg1,arg2;
|
1028
|
+
{
|
1029
|
+
GLdouble x;
|
1030
|
+
GLdouble y;
|
1031
|
+
x = (GLdouble)NUM2DBL(arg1);
|
1032
|
+
y = (GLdouble)NUM2DBL(arg2);
|
1033
|
+
glVertex2d(x,y);
|
1034
|
+
return Qnil;
|
1035
|
+
}
|
1036
|
+
|
1037
|
+
static VALUE
|
1038
|
+
gl_Vertex2f(obj,arg1,arg2)
|
1039
|
+
VALUE obj,arg1,arg2;
|
1040
|
+
{
|
1041
|
+
GLfloat x;
|
1042
|
+
GLfloat y;
|
1043
|
+
x = (GLfloat)NUM2DBL(arg1);
|
1044
|
+
y = (GLfloat)NUM2DBL(arg2);
|
1045
|
+
glVertex2f(x,y);
|
1046
|
+
return Qnil;
|
1047
|
+
}
|
1048
|
+
|
1049
|
+
static VALUE
|
1050
|
+
gl_Vertex2i(obj,arg1,arg2)
|
1051
|
+
VALUE obj,arg1,arg2;
|
1052
|
+
{
|
1053
|
+
GLint x;
|
1054
|
+
GLint y;
|
1055
|
+
x = (GLint)NUM2INT(arg1);
|
1056
|
+
y = (GLint)NUM2INT(arg2);
|
1057
|
+
glVertex2i(x,y);
|
1058
|
+
return Qnil;
|
1059
|
+
}
|
1060
|
+
|
1061
|
+
static VALUE
|
1062
|
+
gl_Vertex2s(obj,arg1,arg2)
|
1063
|
+
VALUE obj,arg1,arg2;
|
1064
|
+
{
|
1065
|
+
GLshort x;
|
1066
|
+
GLshort y;
|
1067
|
+
x = (GLshort)NUM2INT(arg1);
|
1068
|
+
y = (GLshort)NUM2INT(arg2);
|
1069
|
+
glVertex2s(x,y);
|
1070
|
+
return Qnil;
|
1071
|
+
}
|
1072
|
+
|
1073
|
+
static VALUE
|
1074
|
+
gl_Vertex3d(obj,arg1,arg2,arg3)
|
1075
|
+
VALUE obj,arg1,arg2,arg3;
|
1076
|
+
{
|
1077
|
+
GLdouble x;
|
1078
|
+
GLdouble y;
|
1079
|
+
GLdouble z;
|
1080
|
+
x = (GLdouble)NUM2DBL(arg1);
|
1081
|
+
y = (GLdouble)NUM2DBL(arg2);
|
1082
|
+
z = (GLdouble)NUM2DBL(arg3);
|
1083
|
+
glVertex3d(x,y,z);
|
1084
|
+
return Qnil;
|
1085
|
+
}
|
1086
|
+
|
1087
|
+
static VALUE
|
1088
|
+
gl_Vertex3f(obj,arg1,arg2,arg3)
|
1089
|
+
VALUE obj,arg1,arg2,arg3;
|
1090
|
+
{
|
1091
|
+
GLfloat x;
|
1092
|
+
GLfloat y;
|
1093
|
+
GLfloat z;
|
1094
|
+
x = (GLfloat)NUM2DBL(arg1);
|
1095
|
+
y = (GLfloat)NUM2DBL(arg2);
|
1096
|
+
z = (GLfloat)NUM2DBL(arg3);
|
1097
|
+
glVertex3f(x,y,z);
|
1098
|
+
return Qnil;
|
1099
|
+
}
|
1100
|
+
|
1101
|
+
static VALUE
|
1102
|
+
gl_Vertex3i(obj,arg1,arg2,arg3)
|
1103
|
+
VALUE obj,arg1,arg2,arg3;
|
1104
|
+
{
|
1105
|
+
GLint x;
|
1106
|
+
GLint y;
|
1107
|
+
GLint z;
|
1108
|
+
x = (GLint)NUM2INT(arg1);
|
1109
|
+
y = (GLint)NUM2INT(arg2);
|
1110
|
+
z = (GLint)NUM2INT(arg3);
|
1111
|
+
glVertex3i(x,y,z);
|
1112
|
+
return Qnil;
|
1113
|
+
}
|
1114
|
+
|
1115
|
+
static VALUE
|
1116
|
+
gl_Vertex3s(obj,arg1,arg2,arg3)
|
1117
|
+
VALUE obj,arg1,arg2,arg3;
|
1118
|
+
{
|
1119
|
+
GLshort x;
|
1120
|
+
GLshort y;
|
1121
|
+
GLshort z;
|
1122
|
+
x = (GLshort)NUM2INT(arg1);
|
1123
|
+
y = (GLshort)NUM2INT(arg2);
|
1124
|
+
z = (GLshort)NUM2INT(arg3);
|
1125
|
+
glVertex3s(x,y,z);
|
1126
|
+
return Qnil;
|
1127
|
+
}
|
1128
|
+
|
1129
|
+
static VALUE
|
1130
|
+
gl_Vertex4d(obj,arg1,arg2,arg3,arg4)
|
1131
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1132
|
+
{
|
1133
|
+
GLdouble x;
|
1134
|
+
GLdouble y;
|
1135
|
+
GLdouble z;
|
1136
|
+
GLdouble w;
|
1137
|
+
x = (GLdouble)NUM2DBL(arg1);
|
1138
|
+
y = (GLdouble)NUM2DBL(arg2);
|
1139
|
+
z = (GLdouble)NUM2DBL(arg3);
|
1140
|
+
w = (GLdouble)NUM2DBL(arg4);
|
1141
|
+
glVertex4d(x,y,z,w);
|
1142
|
+
return Qnil;
|
1143
|
+
}
|
1144
|
+
|
1145
|
+
static VALUE
|
1146
|
+
gl_Vertex4f(obj,arg1,arg2,arg3,arg4)
|
1147
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1148
|
+
{
|
1149
|
+
GLfloat x;
|
1150
|
+
GLfloat y;
|
1151
|
+
GLfloat z;
|
1152
|
+
GLfloat w;
|
1153
|
+
x = (GLfloat)NUM2DBL(arg1);
|
1154
|
+
y = (GLfloat)NUM2DBL(arg2);
|
1155
|
+
z = (GLfloat)NUM2DBL(arg3);
|
1156
|
+
w = (GLfloat)NUM2DBL(arg4);
|
1157
|
+
glVertex4f(x,y,z,w);
|
1158
|
+
return Qnil;
|
1159
|
+
}
|
1160
|
+
|
1161
|
+
static VALUE
|
1162
|
+
gl_Vertex4i(obj,arg1,arg2,arg3,arg4)
|
1163
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1164
|
+
{
|
1165
|
+
GLint x;
|
1166
|
+
GLint y;
|
1167
|
+
GLint z;
|
1168
|
+
GLint w;
|
1169
|
+
x = (GLint)NUM2INT(arg1);
|
1170
|
+
y = (GLint)NUM2INT(arg2);
|
1171
|
+
z = (GLint)NUM2INT(arg3);
|
1172
|
+
w = (GLint)NUM2INT(arg4);
|
1173
|
+
glVertex4i(x,y,z,w);
|
1174
|
+
return Qnil;
|
1175
|
+
}
|
1176
|
+
|
1177
|
+
static VALUE
|
1178
|
+
gl_Vertex4s(obj,arg1,arg2,arg3,arg4)
|
1179
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1180
|
+
{
|
1181
|
+
GLshort x;
|
1182
|
+
GLshort y;
|
1183
|
+
GLshort z;
|
1184
|
+
GLshort w;
|
1185
|
+
x = (GLshort)NUM2INT(arg1);
|
1186
|
+
y = (GLshort)NUM2INT(arg2);
|
1187
|
+
z = (GLshort)NUM2INT(arg3);
|
1188
|
+
w = (GLshort)NUM2INT(arg4);
|
1189
|
+
glVertex4s(x,y,z,w);
|
1190
|
+
return Qnil;
|
1191
|
+
}
|
1192
|
+
|
1193
|
+
static VALUE
|
1194
|
+
gl_ClipPlane(obj,arg1,arg2)
|
1195
|
+
VALUE obj,arg1,arg2;
|
1196
|
+
{
|
1197
|
+
GLenum plane;
|
1198
|
+
GLdouble equation[4];
|
1199
|
+
plane = (GLenum)NUM2INT(arg1);
|
1200
|
+
if (TYPE(arg2) == T_ARRAY)
|
1201
|
+
ary2cdbl(arg2, equation, 4);
|
1202
|
+
else
|
1203
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
1204
|
+
glClipPlane(plane,equation);
|
1205
|
+
return Qnil;
|
1206
|
+
}
|
1207
|
+
|
1208
|
+
static VALUE
|
1209
|
+
gl_ColorMaterial(obj,arg1,arg2)
|
1210
|
+
VALUE obj,arg1,arg2;
|
1211
|
+
{
|
1212
|
+
GLenum face;
|
1213
|
+
GLenum mode;
|
1214
|
+
face = (GLenum)NUM2INT(arg1);
|
1215
|
+
mode = (GLenum)NUM2INT(arg2);
|
1216
|
+
glColorMaterial(face,mode);
|
1217
|
+
return Qnil;
|
1218
|
+
}
|
1219
|
+
|
1220
|
+
static VALUE
|
1221
|
+
gl_CullFace(obj,arg1)
|
1222
|
+
VALUE obj,arg1;
|
1223
|
+
{
|
1224
|
+
GLenum mode;
|
1225
|
+
mode = (GLenum)NUM2INT(arg1);
|
1226
|
+
glCullFace(mode);
|
1227
|
+
return Qnil;
|
1228
|
+
}
|
1229
|
+
|
1230
|
+
static VALUE
|
1231
|
+
gl_Fogf(obj,arg1,arg2)
|
1232
|
+
VALUE obj,arg1,arg2;
|
1233
|
+
{
|
1234
|
+
GLenum pname;
|
1235
|
+
GLfloat param;
|
1236
|
+
pname = (GLenum)NUM2INT(arg1);
|
1237
|
+
param = (GLfloat)NUM2DBL(arg2);
|
1238
|
+
glFogf(pname,param);
|
1239
|
+
return Qnil;
|
1240
|
+
}
|
1241
|
+
|
1242
|
+
static VALUE
|
1243
|
+
gl_Fogfv(obj,arg1,arg2)
|
1244
|
+
VALUE obj,arg1,arg2;
|
1245
|
+
{
|
1246
|
+
GLenum pname;
|
1247
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1248
|
+
pname = (GLenum)NUM2INT(arg1);
|
1249
|
+
if (TYPE(arg2) != T_ARRAY)
|
1250
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg2));
|
1251
|
+
ary2cflt(arg2,params,4);
|
1252
|
+
glFogfv(pname,params);
|
1253
|
+
return Qnil;
|
1254
|
+
}
|
1255
|
+
|
1256
|
+
static VALUE
|
1257
|
+
gl_Fogi(obj,arg1,arg2)
|
1258
|
+
VALUE obj,arg1,arg2;
|
1259
|
+
{
|
1260
|
+
GLenum pname;
|
1261
|
+
GLint param;
|
1262
|
+
pname = (GLenum)NUM2INT(arg1);
|
1263
|
+
param = (GLint)NUM2INT(arg2);
|
1264
|
+
glFogi(pname,param);
|
1265
|
+
return Qnil;
|
1266
|
+
}
|
1267
|
+
|
1268
|
+
static VALUE
|
1269
|
+
gl_Fogiv(obj,arg1,arg2)
|
1270
|
+
VALUE obj,arg1,arg2;
|
1271
|
+
{
|
1272
|
+
GLenum pname;
|
1273
|
+
GLint params[4] = {0,0,0,0};
|
1274
|
+
pname = (GLenum)NUM2INT(arg1);
|
1275
|
+
if (TYPE(arg2) != T_ARRAY)
|
1276
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg2));
|
1277
|
+
ary2cint(arg2,params,4);
|
1278
|
+
glFogiv(pname,params);
|
1279
|
+
return Qnil;
|
1280
|
+
}
|
1281
|
+
|
1282
|
+
static VALUE
|
1283
|
+
gl_FrontFace(obj,arg1)
|
1284
|
+
VALUE obj,arg1;
|
1285
|
+
{
|
1286
|
+
GLenum mode;
|
1287
|
+
mode = (GLenum)NUM2INT(arg1);
|
1288
|
+
glFrontFace(mode);
|
1289
|
+
return Qnil;
|
1290
|
+
}
|
1291
|
+
|
1292
|
+
static VALUE
|
1293
|
+
gl_Hint(obj,arg1,arg2)
|
1294
|
+
VALUE obj,arg1,arg2;
|
1295
|
+
{
|
1296
|
+
GLenum target;
|
1297
|
+
GLenum mode;
|
1298
|
+
target = (GLenum)NUM2INT(arg1);
|
1299
|
+
mode = (GLenum)NUM2INT(arg2);
|
1300
|
+
glHint(target,mode);
|
1301
|
+
return Qnil;
|
1302
|
+
}
|
1303
|
+
|
1304
|
+
static VALUE
|
1305
|
+
gl_Lightf(obj,arg1,arg2,arg3)
|
1306
|
+
VALUE obj,arg1,arg2,arg3;
|
1307
|
+
{
|
1308
|
+
GLenum light;
|
1309
|
+
GLenum pname;
|
1310
|
+
GLfloat param;
|
1311
|
+
light = (GLenum)NUM2INT(arg1);
|
1312
|
+
pname = (GLenum)NUM2INT(arg2);
|
1313
|
+
param = (GLfloat)NUM2DBL(arg3);
|
1314
|
+
glLightf(light,pname,param);
|
1315
|
+
return Qnil;
|
1316
|
+
}
|
1317
|
+
|
1318
|
+
static VALUE
|
1319
|
+
gl_Lightfv(obj,arg1,arg2,arg3)
|
1320
|
+
VALUE obj,arg1,arg2,arg3;
|
1321
|
+
{
|
1322
|
+
GLenum light;
|
1323
|
+
GLenum pname;
|
1324
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1325
|
+
light = (GLenum)NUM2INT(arg1);
|
1326
|
+
pname = (GLenum)NUM2INT(arg2);
|
1327
|
+
if (TYPE(arg3) != T_ARRAY)
|
1328
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1329
|
+
ary2cflt(arg3,params,4);
|
1330
|
+
glLightfv(light,pname,params);
|
1331
|
+
return Qnil;
|
1332
|
+
}
|
1333
|
+
|
1334
|
+
static VALUE
|
1335
|
+
gl_Lighti(obj,arg1,arg2,arg3)
|
1336
|
+
VALUE obj,arg1,arg2,arg3;
|
1337
|
+
{
|
1338
|
+
GLenum light;
|
1339
|
+
GLenum pname;
|
1340
|
+
GLint param;
|
1341
|
+
light = (GLenum)NUM2INT(arg1);
|
1342
|
+
pname = (GLenum)NUM2INT(arg2);
|
1343
|
+
param = (GLint)NUM2INT(arg3);
|
1344
|
+
glLighti(light,pname,param);
|
1345
|
+
return Qnil;
|
1346
|
+
}
|
1347
|
+
|
1348
|
+
static VALUE
|
1349
|
+
gl_Lightiv(obj,arg1,arg2,arg3)
|
1350
|
+
VALUE obj,arg1,arg2,arg3;
|
1351
|
+
{
|
1352
|
+
GLenum light;
|
1353
|
+
GLenum pname;
|
1354
|
+
GLint params[4]={0,0,0,0};
|
1355
|
+
light = (GLenum)NUM2INT(arg1);
|
1356
|
+
pname = (GLenum)NUM2INT(arg2);
|
1357
|
+
if (TYPE(arg3) != T_ARRAY)
|
1358
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1359
|
+
ary2cint(arg3,params,4);
|
1360
|
+
glLightiv(light,pname,params);
|
1361
|
+
return Qnil;
|
1362
|
+
}
|
1363
|
+
|
1364
|
+
static VALUE
|
1365
|
+
gl_LightModelf(obj,arg1,arg2)
|
1366
|
+
VALUE obj,arg1,arg2;
|
1367
|
+
{
|
1368
|
+
GLenum pname;
|
1369
|
+
GLfloat param;
|
1370
|
+
pname = (GLenum)NUM2INT(arg1);
|
1371
|
+
param = (GLfloat)NUM2DBL(arg2);
|
1372
|
+
glLightModelf(pname,param);
|
1373
|
+
return Qnil;
|
1374
|
+
}
|
1375
|
+
|
1376
|
+
static VALUE
|
1377
|
+
gl_LightModelfv(obj,arg1,arg2)
|
1378
|
+
VALUE obj,arg1,arg2;
|
1379
|
+
{
|
1380
|
+
GLenum pname;
|
1381
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1382
|
+
pname = (GLenum)NUM2INT(arg1);
|
1383
|
+
if (TYPE(arg2) != T_ARRAY)
|
1384
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg2));
|
1385
|
+
ary2cflt(arg2,params,4);
|
1386
|
+
glLightModelfv(pname,params);
|
1387
|
+
return Qnil;
|
1388
|
+
}
|
1389
|
+
|
1390
|
+
static VALUE
|
1391
|
+
gl_LightModeli(obj,arg1,arg2)
|
1392
|
+
VALUE obj,arg1,arg2;
|
1393
|
+
{
|
1394
|
+
GLenum pname;
|
1395
|
+
GLint param;
|
1396
|
+
pname = (GLenum)NUM2INT(arg1);
|
1397
|
+
param = (GLint)NUM2INT(arg2);
|
1398
|
+
glLightModeli(pname,param);
|
1399
|
+
return Qnil;
|
1400
|
+
}
|
1401
|
+
|
1402
|
+
static VALUE
|
1403
|
+
gl_LightModeliv(obj,arg1,arg2)
|
1404
|
+
VALUE obj,arg1,arg2;
|
1405
|
+
{
|
1406
|
+
GLenum pname;
|
1407
|
+
GLint params[4] = {0,0,0,0};
|
1408
|
+
pname = (GLenum)NUM2INT(arg1);
|
1409
|
+
if (TYPE(arg2) != T_ARRAY)
|
1410
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg2));
|
1411
|
+
ary2cint(arg2,params,4);
|
1412
|
+
glLightModeliv(pname,params);
|
1413
|
+
return Qnil;
|
1414
|
+
}
|
1415
|
+
|
1416
|
+
static VALUE
|
1417
|
+
gl_LineStipple(obj,arg1,arg2)
|
1418
|
+
VALUE obj,arg1,arg2;
|
1419
|
+
{
|
1420
|
+
GLint factor;
|
1421
|
+
GLushort pattern;
|
1422
|
+
factor = (GLint)NUM2INT(arg1);
|
1423
|
+
pattern = (GLushort)(NUM2INT(arg2) & 0xFFFF);
|
1424
|
+
glLineStipple(factor,pattern);
|
1425
|
+
return Qnil;
|
1426
|
+
}
|
1427
|
+
|
1428
|
+
static VALUE
|
1429
|
+
gl_LineWidth(obj,arg1)
|
1430
|
+
VALUE obj,arg1;
|
1431
|
+
{
|
1432
|
+
GLfloat width;
|
1433
|
+
width = (GLfloat)NUM2DBL(arg1);
|
1434
|
+
glLineWidth(width);
|
1435
|
+
return Qnil;
|
1436
|
+
}
|
1437
|
+
|
1438
|
+
static VALUE
|
1439
|
+
gl_Materialf(obj,arg1,arg2,arg3)
|
1440
|
+
VALUE obj,arg1,arg2,arg3;
|
1441
|
+
{
|
1442
|
+
GLenum face;
|
1443
|
+
GLenum pname;
|
1444
|
+
GLfloat param;
|
1445
|
+
face = (GLenum)NUM2INT(arg1);
|
1446
|
+
pname = (GLenum)NUM2INT(arg2);
|
1447
|
+
param = (GLfloat)NUM2DBL(arg3);
|
1448
|
+
glMaterialf(face,pname,param);
|
1449
|
+
return Qnil;
|
1450
|
+
}
|
1451
|
+
|
1452
|
+
static VALUE
|
1453
|
+
gl_Materialfv(obj,arg1,arg2,arg3)
|
1454
|
+
VALUE obj,arg1,arg2,arg3;
|
1455
|
+
{
|
1456
|
+
GLenum face;
|
1457
|
+
GLenum pname;
|
1458
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1459
|
+
face = (GLenum)NUM2INT(arg1);
|
1460
|
+
pname = (GLenum)NUM2INT(arg2);
|
1461
|
+
if (TYPE(arg3) != T_ARRAY)
|
1462
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg3));
|
1463
|
+
ary2cflt(arg3,params,4);
|
1464
|
+
glMaterialfv(face,pname,params);
|
1465
|
+
return Qnil;
|
1466
|
+
}
|
1467
|
+
|
1468
|
+
static VALUE
|
1469
|
+
gl_Materiali(obj,arg1,arg2,arg3)
|
1470
|
+
VALUE obj,arg1,arg2,arg3;
|
1471
|
+
{
|
1472
|
+
GLenum face;
|
1473
|
+
GLenum pname;
|
1474
|
+
GLint param;
|
1475
|
+
face = (GLenum)NUM2INT(arg1);
|
1476
|
+
pname = (GLenum)NUM2INT(arg2);
|
1477
|
+
param = (GLint)NUM2INT(arg3);
|
1478
|
+
glMateriali(face,pname,param);
|
1479
|
+
return Qnil;
|
1480
|
+
}
|
1481
|
+
|
1482
|
+
static VALUE
|
1483
|
+
gl_Materialiv(obj,arg1,arg2,arg3)
|
1484
|
+
VALUE obj,arg1,arg2,arg3;
|
1485
|
+
{
|
1486
|
+
GLenum face;
|
1487
|
+
GLenum pname;
|
1488
|
+
GLint params[4] = {0,0,0,0};
|
1489
|
+
face = (GLenum)NUM2INT(arg1);
|
1490
|
+
pname = (GLenum)NUM2INT(arg2);
|
1491
|
+
if (TYPE(arg3) != T_ARRAY)
|
1492
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg3));
|
1493
|
+
ary2cint(arg3,params,4);
|
1494
|
+
glMaterialiv(face,pname,params);
|
1495
|
+
return Qnil;
|
1496
|
+
}
|
1497
|
+
|
1498
|
+
static VALUE
|
1499
|
+
gl_PointSize(obj,arg1)
|
1500
|
+
VALUE obj,arg1;
|
1501
|
+
{
|
1502
|
+
GLfloat size;
|
1503
|
+
size = (GLfloat)NUM2DBL(arg1);
|
1504
|
+
glPointSize(size);
|
1505
|
+
return Qnil;
|
1506
|
+
}
|
1507
|
+
|
1508
|
+
static VALUE
|
1509
|
+
gl_PolygonMode(obj,arg1,arg2)
|
1510
|
+
VALUE obj,arg1,arg2;
|
1511
|
+
{
|
1512
|
+
GLenum face;
|
1513
|
+
GLenum mode;
|
1514
|
+
face = (GLenum)NUM2INT(arg1);
|
1515
|
+
mode = (GLenum)NUM2INT(arg2);
|
1516
|
+
glPolygonMode(face,mode);
|
1517
|
+
return Qnil;
|
1518
|
+
}
|
1519
|
+
|
1520
|
+
static VALUE
|
1521
|
+
gl_PolygonStipple(obj,arg1)
|
1522
|
+
VALUE obj,arg1;
|
1523
|
+
{
|
1524
|
+
GLubyte mask[128];
|
1525
|
+
RArray* ary;
|
1526
|
+
int i;
|
1527
|
+
memset(mask, 0x0, sizeof(GLubyte[128]));
|
1528
|
+
if (TYPE(arg1) == T_ARRAY) {
|
1529
|
+
ary = RARRAY(arg1);
|
1530
|
+
for(i = 0; i < ary->len && i < 128; i++)
|
1531
|
+
mask[i] = (GLubyte)NUM2INT(ary->ptr[i]);
|
1532
|
+
}
|
1533
|
+
else if (TYPE(arg1) == T_STRING) {
|
1534
|
+
if (RSTRING(arg1)->len < 128)
|
1535
|
+
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg1)->len);
|
1536
|
+
memcpy(mask, RSTRING(arg1)->ptr, 128);
|
1537
|
+
}
|
1538
|
+
else
|
1539
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg1));
|
1540
|
+
glPolygonStipple(mask);
|
1541
|
+
return Qnil;
|
1542
|
+
}
|
1543
|
+
|
1544
|
+
static VALUE
|
1545
|
+
gl_Scissor(obj,arg1,arg2,arg3,arg4)
|
1546
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1547
|
+
{
|
1548
|
+
GLint x;
|
1549
|
+
GLint y;
|
1550
|
+
GLsizei width;
|
1551
|
+
GLsizei height;
|
1552
|
+
x = (GLint)NUM2INT(arg1);
|
1553
|
+
y = (GLint)NUM2INT(arg2);
|
1554
|
+
width = (GLsizei)NUM2INT(arg3);
|
1555
|
+
height = (GLsizei)NUM2INT(arg4);
|
1556
|
+
glScissor(x,y,width,height);
|
1557
|
+
return Qnil;
|
1558
|
+
}
|
1559
|
+
|
1560
|
+
static VALUE
|
1561
|
+
gl_ShadeModel(obj,arg1)
|
1562
|
+
VALUE obj,arg1;
|
1563
|
+
{
|
1564
|
+
GLenum mode;
|
1565
|
+
mode = (GLenum)NUM2INT(arg1);
|
1566
|
+
glShadeModel(mode);
|
1567
|
+
return Qnil;
|
1568
|
+
}
|
1569
|
+
|
1570
|
+
static VALUE
|
1571
|
+
gl_TexParameterf(obj,arg1,arg2,arg3)
|
1572
|
+
VALUE obj,arg1,arg2,arg3;
|
1573
|
+
{
|
1574
|
+
GLenum target;
|
1575
|
+
GLenum pname;
|
1576
|
+
GLfloat param;
|
1577
|
+
target = (GLenum)NUM2INT(arg1);
|
1578
|
+
pname = (GLenum)NUM2INT(arg2);
|
1579
|
+
param = (GLfloat)NUM2DBL(arg3);
|
1580
|
+
glTexParameterf(target,pname,param);
|
1581
|
+
return Qnil;
|
1582
|
+
}
|
1583
|
+
|
1584
|
+
static VALUE
|
1585
|
+
gl_TexParameterfv(obj,arg1,arg2,arg3)
|
1586
|
+
VALUE obj,arg1,arg2,arg3;
|
1587
|
+
{
|
1588
|
+
GLenum target;
|
1589
|
+
GLenum pname;
|
1590
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1591
|
+
target = (GLenum)NUM2INT(arg1);
|
1592
|
+
pname = (GLenum)NUM2INT(arg2);
|
1593
|
+
if (TYPE(arg3) != T_ARRAY)
|
1594
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1595
|
+
ary2cflt(arg3,params,4);
|
1596
|
+
glTexParameterfv(target,pname,params);
|
1597
|
+
return Qnil;
|
1598
|
+
}
|
1599
|
+
|
1600
|
+
static VALUE
|
1601
|
+
gl_TexParameteri(obj,arg1,arg2,arg3)
|
1602
|
+
VALUE obj,arg1,arg2,arg3;
|
1603
|
+
{
|
1604
|
+
GLenum target;
|
1605
|
+
GLenum pname;
|
1606
|
+
GLint param;
|
1607
|
+
target = (GLenum)NUM2INT(arg1);
|
1608
|
+
pname = (GLenum)NUM2INT(arg2);
|
1609
|
+
param = (GLint)NUM2INT(arg3);
|
1610
|
+
glTexParameteri(target,pname,param);
|
1611
|
+
return Qnil;
|
1612
|
+
}
|
1613
|
+
|
1614
|
+
static VALUE
|
1615
|
+
gl_TexParameteriv(obj,arg1,arg2,arg3)
|
1616
|
+
VALUE obj,arg1,arg2,arg3;
|
1617
|
+
{
|
1618
|
+
GLenum target;
|
1619
|
+
GLenum pname;
|
1620
|
+
GLint params[4] = {0,0,0,0};
|
1621
|
+
target = (GLenum)NUM2INT(arg1);
|
1622
|
+
pname = (GLenum)NUM2INT(arg2);
|
1623
|
+
if (TYPE(arg3) != T_ARRAY)
|
1624
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1625
|
+
ary2cint(arg3,params,4);
|
1626
|
+
glTexParameteriv(target,pname,params);
|
1627
|
+
return Qnil;
|
1628
|
+
}
|
1629
|
+
|
1630
|
+
/* FIXME: spatna funkce ? */
|
1631
|
+
static VALUE
|
1632
|
+
gl_TexImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
|
1633
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
1634
|
+
{
|
1635
|
+
GLenum target;
|
1636
|
+
GLint level;
|
1637
|
+
GLint components;
|
1638
|
+
GLsizei width;
|
1639
|
+
GLint border;
|
1640
|
+
GLenum format;
|
1641
|
+
GLenum type;
|
1642
|
+
const char *pixels;
|
1643
|
+
int size;
|
1644
|
+
int type_size;
|
1645
|
+
int format_size;
|
1646
|
+
target = (GLenum)NUM2INT(arg1);
|
1647
|
+
level = (GLint)NUM2INT(arg2);
|
1648
|
+
components = (GLint)NUM2INT(arg3);
|
1649
|
+
width = (GLsizei)NUM2INT(arg4);
|
1650
|
+
border = (GLint)NUM2INT(arg5);
|
1651
|
+
format = (GLenum)NUM2INT(arg6);
|
1652
|
+
type = (GLenum)NUM2INT(arg7);
|
1653
|
+
if (TYPE(arg8) == T_STRING) {
|
1654
|
+
type_size = gltype_size(type) / 8;
|
1655
|
+
format_size = glformat_size(format);
|
1656
|
+
if (type_size <= 0 || format_size == -1)
|
1657
|
+
return Qnil;
|
1658
|
+
size = type_size*format_size*width;
|
1659
|
+
if (RSTRING(arg8)->len < size)
|
1660
|
+
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg8)->len);
|
1661
|
+
pixels = RSTRING(arg8)->ptr;
|
1662
|
+
} else if (NIL_P(arg8)) {
|
1663
|
+
type_size = gltype_size(type) / 8;
|
1664
|
+
format_size = glformat_size(format);
|
1665
|
+
if (type_size <= 0 || format_size == -1)
|
1666
|
+
return Qnil;
|
1667
|
+
size = type_size*format_size*width;
|
1668
|
+
pixels = NULL;
|
1669
|
+
} else
|
1670
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg8));
|
1671
|
+
glTexImage1D(target,level,components,width,border,format,type,pixels);
|
1672
|
+
return Qnil;
|
1673
|
+
}
|
1674
|
+
|
1675
|
+
static VALUE
|
1676
|
+
gl_TexImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
|
1677
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
1678
|
+
{
|
1679
|
+
GLenum target;
|
1680
|
+
GLint level;
|
1681
|
+
GLint components;
|
1682
|
+
GLsizei width;
|
1683
|
+
GLsizei height;
|
1684
|
+
GLint border;
|
1685
|
+
GLenum format;
|
1686
|
+
GLenum type;
|
1687
|
+
const char *pixels;
|
1688
|
+
int size;
|
1689
|
+
int type_size;
|
1690
|
+
int format_size;
|
1691
|
+
target = (GLenum)NUM2INT(arg1);
|
1692
|
+
level = (GLint)NUM2INT(arg2);
|
1693
|
+
components = (GLint)NUM2INT(arg3);
|
1694
|
+
width = (GLsizei)NUM2INT(arg4);
|
1695
|
+
height = (GLsizei)NUM2INT(arg5);
|
1696
|
+
border = (GLint)NUM2INT(arg6);
|
1697
|
+
format = (GLenum)NUM2INT(arg7);
|
1698
|
+
type = (GLenum)NUM2INT(arg8);
|
1699
|
+
if (TYPE(arg9) == T_STRING) {
|
1700
|
+
type_size = gltype_size(type) / 8;
|
1701
|
+
format_size = glformat_size(format);
|
1702
|
+
if (type_size <= 0 || format_size == -1)
|
1703
|
+
return Qnil;
|
1704
|
+
size = type_size*format_size*height*width;
|
1705
|
+
if (RSTRING(arg9)->len < size)
|
1706
|
+
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg9)->len);
|
1707
|
+
pixels = RSTRING(arg9)->ptr;
|
1708
|
+
} else if (NIL_P(arg9)) {
|
1709
|
+
type_size = gltype_size(type) / 8;
|
1710
|
+
format_size = glformat_size(format);
|
1711
|
+
if (type_size <= 0 || format_size == -1)
|
1712
|
+
return Qnil;
|
1713
|
+
size = type_size*format_size*height*width;
|
1714
|
+
pixels = NULL;
|
1715
|
+
} else
|
1716
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg9));
|
1717
|
+
glTexImage2D(target,level,components,width,height,border,format,type,pixels);
|
1718
|
+
return Qnil;
|
1719
|
+
}
|
1720
|
+
|
1721
|
+
static VALUE
|
1722
|
+
gl_TexEnvf(obj,arg1,arg2,arg3)
|
1723
|
+
VALUE obj,arg1,arg2,arg3;
|
1724
|
+
{
|
1725
|
+
GLenum target;
|
1726
|
+
GLenum pname;
|
1727
|
+
GLfloat param;
|
1728
|
+
target = (GLenum)NUM2INT(arg1);
|
1729
|
+
pname = (GLenum)NUM2INT(arg2);
|
1730
|
+
param = (GLfloat)NUM2DBL(arg3);
|
1731
|
+
glTexEnvf(target,pname,param);
|
1732
|
+
return Qnil;
|
1733
|
+
}
|
1734
|
+
|
1735
|
+
static VALUE
|
1736
|
+
gl_TexEnvfv(obj,arg1,arg2,arg3)
|
1737
|
+
VALUE obj,arg1,arg2,arg3;
|
1738
|
+
{
|
1739
|
+
GLenum target;
|
1740
|
+
GLenum pname;
|
1741
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1742
|
+
target = (GLenum)NUM2INT(arg1);
|
1743
|
+
pname = (GLenum)NUM2INT(arg2);
|
1744
|
+
if (TYPE(arg3) != T_ARRAY)
|
1745
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1746
|
+
ary2cflt(arg3,params,4);
|
1747
|
+
glTexEnvfv(target,pname,params);
|
1748
|
+
return Qnil;
|
1749
|
+
}
|
1750
|
+
|
1751
|
+
static VALUE
|
1752
|
+
gl_TexEnvi(obj,arg1,arg2,arg3)
|
1753
|
+
VALUE obj,arg1,arg2,arg3;
|
1754
|
+
{
|
1755
|
+
GLenum target;
|
1756
|
+
GLenum pname;
|
1757
|
+
GLint param;
|
1758
|
+
target = (GLenum)NUM2INT(arg1);
|
1759
|
+
pname = (GLenum)NUM2INT(arg2);
|
1760
|
+
param = (GLint)NUM2INT(arg3);
|
1761
|
+
glTexEnvi(target,pname,param);
|
1762
|
+
return Qnil;
|
1763
|
+
}
|
1764
|
+
|
1765
|
+
static VALUE
|
1766
|
+
gl_TexEnviv(obj,arg1,arg2,arg3)
|
1767
|
+
VALUE obj,arg1,arg2,arg3;
|
1768
|
+
{
|
1769
|
+
GLenum target;
|
1770
|
+
GLenum pname;
|
1771
|
+
GLint params[4] = {0,0,0,0};
|
1772
|
+
target = (GLenum)NUM2INT(arg1);
|
1773
|
+
pname = (GLenum)NUM2INT(arg2);
|
1774
|
+
if (TYPE(arg3) != T_ARRAY)
|
1775
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1776
|
+
ary2cint(arg3,params,4);
|
1777
|
+
glTexEnviv(target,pname,params);
|
1778
|
+
return Qnil;
|
1779
|
+
}
|
1780
|
+
|
1781
|
+
static VALUE
|
1782
|
+
gl_TexGend(obj,arg1,arg2,arg3)
|
1783
|
+
VALUE obj,arg1,arg2,arg3;
|
1784
|
+
{
|
1785
|
+
GLenum coord;
|
1786
|
+
GLenum pname;
|
1787
|
+
GLdouble param;
|
1788
|
+
coord = (GLenum)NUM2INT(arg1);
|
1789
|
+
pname = (GLenum)NUM2INT(arg2);
|
1790
|
+
param = (GLdouble)NUM2DBL(arg3);
|
1791
|
+
glTexGend(coord,pname,param);
|
1792
|
+
return Qnil;
|
1793
|
+
}
|
1794
|
+
|
1795
|
+
static VALUE
|
1796
|
+
gl_TexGendv(obj,arg1,arg2,arg3)
|
1797
|
+
VALUE obj,arg1,arg2,arg3;
|
1798
|
+
{
|
1799
|
+
GLenum coord;
|
1800
|
+
GLenum pname;
|
1801
|
+
GLdouble params[4] = {0.0,0.0,0.0,0.0};
|
1802
|
+
coord = (GLenum)NUM2INT(arg1);
|
1803
|
+
pname = (GLenum)NUM2INT(arg2);
|
1804
|
+
if (TYPE(arg3) != T_ARRAY)
|
1805
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1806
|
+
ary2cdbl(arg3,params,4);
|
1807
|
+
glTexGendv(coord,pname,params);
|
1808
|
+
return Qnil;
|
1809
|
+
}
|
1810
|
+
|
1811
|
+
|
1812
|
+
static VALUE
|
1813
|
+
gl_TexGenf(obj,arg1,arg2,arg3)
|
1814
|
+
VALUE obj,arg1,arg2,arg3;
|
1815
|
+
{
|
1816
|
+
GLenum coord;
|
1817
|
+
GLenum pname;
|
1818
|
+
GLfloat param;
|
1819
|
+
coord = (GLenum)NUM2INT(arg1);
|
1820
|
+
pname = (GLenum)NUM2INT(arg2);
|
1821
|
+
param = (GLfloat)NUM2DBL(arg3);
|
1822
|
+
glTexGenf(coord,pname,param);
|
1823
|
+
return Qnil;
|
1824
|
+
}
|
1825
|
+
|
1826
|
+
static VALUE
|
1827
|
+
gl_TexGenfv(obj,arg1,arg2,arg3)
|
1828
|
+
VALUE obj,arg1,arg2,arg3;
|
1829
|
+
{
|
1830
|
+
GLenum coord;
|
1831
|
+
GLenum pname;
|
1832
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1833
|
+
coord = (GLenum)NUM2INT(arg1);
|
1834
|
+
pname = (GLenum)NUM2INT(arg2);
|
1835
|
+
if (TYPE(arg3) != T_ARRAY)
|
1836
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1837
|
+
ary2cflt(arg3,params,4);
|
1838
|
+
glTexGenfv(coord,pname,params);
|
1839
|
+
return Qnil;
|
1840
|
+
}
|
1841
|
+
|
1842
|
+
static VALUE
|
1843
|
+
gl_TexGeni(obj,arg1,arg2,arg3)
|
1844
|
+
VALUE obj,arg1,arg2,arg3;
|
1845
|
+
{
|
1846
|
+
GLenum coord;
|
1847
|
+
GLenum pname;
|
1848
|
+
GLint param;
|
1849
|
+
coord = (GLenum)NUM2INT(arg1);
|
1850
|
+
pname = (GLenum)NUM2INT(arg2);
|
1851
|
+
param = (GLint)NUM2INT(arg3);
|
1852
|
+
glTexGeni(coord,pname,param);
|
1853
|
+
return Qnil;
|
1854
|
+
}
|
1855
|
+
|
1856
|
+
static VALUE
|
1857
|
+
gl_TexGeniv(obj,arg1,arg2,arg3)
|
1858
|
+
VALUE obj,arg1,arg2,arg3;
|
1859
|
+
{
|
1860
|
+
GLenum coord;
|
1861
|
+
GLenum pname;
|
1862
|
+
GLint params[4] = {0,0,0,0};
|
1863
|
+
coord = (GLenum)NUM2INT(arg1);
|
1864
|
+
pname = (GLenum)NUM2INT(arg2);
|
1865
|
+
if (TYPE(arg3) != T_ARRAY)
|
1866
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg3));
|
1867
|
+
ary2cint(arg3,params,4);
|
1868
|
+
glTexGeniv(coord,pname,params);
|
1869
|
+
return Qnil;
|
1870
|
+
}
|
1871
|
+
|
1872
|
+
#define DEFAULT_BUFFER 512
|
1873
|
+
static VALUE g_current_feed_buffer;
|
1874
|
+
static VALUE
|
1875
|
+
gl_FeedbackBuffer(argc, argv, obj)
|
1876
|
+
int argc;
|
1877
|
+
VALUE* argv;
|
1878
|
+
VALUE obj;
|
1879
|
+
{
|
1880
|
+
GLsizei size;
|
1881
|
+
GLenum type;
|
1882
|
+
if (argc == 0) {
|
1883
|
+
size = DEFAULT_BUFFER;
|
1884
|
+
type = GL_4D_COLOR_TEXTURE;
|
1885
|
+
}
|
1886
|
+
else if (argc == 2) {
|
1887
|
+
size = NUM2INT(argv[0]);
|
1888
|
+
type = NUM2INT(argv[1]);
|
1889
|
+
}
|
1890
|
+
else {
|
1891
|
+
rb_raise(rb_eTypeError, "GL.FeedbackBuffer");
|
1892
|
+
}
|
1893
|
+
g_current_feed_buffer = allocate_buffer_with_string(sizeof(GLfloat)*size);
|
1894
|
+
rb_str_freeze(g_current_feed_buffer);
|
1895
|
+
glFeedbackBuffer(size, type, (GLfloat*)RSTRING(g_current_feed_buffer)->ptr);
|
1896
|
+
return g_current_feed_buffer;
|
1897
|
+
}
|
1898
|
+
|
1899
|
+
static VALUE g_current_sel_buffer;
|
1900
|
+
static VALUE
|
1901
|
+
gl_SelectBuffer(argc,argv,obj)
|
1902
|
+
int argc;
|
1903
|
+
VALUE *argv;
|
1904
|
+
VALUE obj;
|
1905
|
+
{
|
1906
|
+
VALUE args;
|
1907
|
+
GLsizei size;
|
1908
|
+
size = DEFAULT_BUFFER;
|
1909
|
+
rb_scan_args(argc, argv, "01", &args);
|
1910
|
+
if (args != Qnil)
|
1911
|
+
size = (GLsizei)NUM2INT(args);
|
1912
|
+
g_current_sel_buffer = allocate_buffer_with_string(sizeof(GLuint)*size);
|
1913
|
+
rb_str_freeze(g_current_sel_buffer);
|
1914
|
+
glSelectBuffer(size, (GLuint*)RSTRING(g_current_sel_buffer)->ptr);
|
1915
|
+
return g_current_sel_buffer;
|
1916
|
+
}
|
1917
|
+
|
1918
|
+
static VALUE
|
1919
|
+
gl_RenderMode(obj,arg1)
|
1920
|
+
VALUE obj,arg1;
|
1921
|
+
{
|
1922
|
+
GLenum mode;
|
1923
|
+
GLint ret;
|
1924
|
+
mode = (GLenum)NUM2INT(arg1);
|
1925
|
+
ret = glRenderMode(mode);
|
1926
|
+
return INT2NUM(ret);
|
1927
|
+
}
|
1928
|
+
|
1929
|
+
static VALUE
|
1930
|
+
gl_InitNames(obj)
|
1931
|
+
VALUE obj;
|
1932
|
+
{
|
1933
|
+
glInitNames();
|
1934
|
+
return Qnil;
|
1935
|
+
}
|
1936
|
+
|
1937
|
+
static VALUE
|
1938
|
+
gl_LoadName(obj,arg1)
|
1939
|
+
VALUE obj,arg1;
|
1940
|
+
{
|
1941
|
+
GLuint name;
|
1942
|
+
name = (GLuint)NUM2INT(arg1);
|
1943
|
+
glLoadName(name);
|
1944
|
+
return Qnil;
|
1945
|
+
}
|
1946
|
+
|
1947
|
+
static VALUE
|
1948
|
+
gl_PassThrough(obj,arg1)
|
1949
|
+
VALUE obj,arg1;
|
1950
|
+
{
|
1951
|
+
GLfloat token;
|
1952
|
+
token = (GLfloat)NUM2DBL(arg1);
|
1953
|
+
glPassThrough(token);
|
1954
|
+
return Qnil;
|
1955
|
+
}
|
1956
|
+
|
1957
|
+
static VALUE
|
1958
|
+
gl_PopName(obj)
|
1959
|
+
VALUE obj;
|
1960
|
+
{
|
1961
|
+
glPopName();
|
1962
|
+
return Qnil;
|
1963
|
+
}
|
1964
|
+
|
1965
|
+
static VALUE
|
1966
|
+
gl_PushName(obj,arg1)
|
1967
|
+
VALUE obj,arg1;
|
1968
|
+
{
|
1969
|
+
GLuint name;
|
1970
|
+
name = (GLuint)NUM2INT(arg1);
|
1971
|
+
glPushName(name);
|
1972
|
+
return Qnil;
|
1973
|
+
}
|
1974
|
+
|
1975
|
+
static VALUE
|
1976
|
+
gl_DrawBuffer(obj,arg1)
|
1977
|
+
VALUE obj,arg1;
|
1978
|
+
{
|
1979
|
+
GLenum mode;
|
1980
|
+
mode = (GLenum)NUM2INT(arg1);
|
1981
|
+
glDrawBuffer(mode);
|
1982
|
+
return Qnil;
|
1983
|
+
}
|
1984
|
+
|
1985
|
+
static VALUE
|
1986
|
+
gl_Clear(obj,arg1)
|
1987
|
+
VALUE obj,arg1;
|
1988
|
+
{
|
1989
|
+
GLbitfield mask;
|
1990
|
+
mask = (GLbitfield)NUM2INT(arg1);
|
1991
|
+
glClear(mask);
|
1992
|
+
return Qnil;
|
1993
|
+
}
|
1994
|
+
|
1995
|
+
static VALUE
|
1996
|
+
gl_ClearAccum(obj,arg1,arg2,arg3,arg4)
|
1997
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
1998
|
+
{
|
1999
|
+
GLfloat red;
|
2000
|
+
GLfloat green;
|
2001
|
+
GLfloat blue;
|
2002
|
+
GLfloat alpha;
|
2003
|
+
red = (GLfloat)NUM2DBL(arg1);
|
2004
|
+
green = (GLfloat)NUM2DBL(arg2);
|
2005
|
+
blue = (GLfloat)NUM2DBL(arg3);
|
2006
|
+
alpha = (GLfloat)NUM2DBL(arg4);
|
2007
|
+
glClearAccum(red,green,blue,alpha);
|
2008
|
+
return Qnil;
|
2009
|
+
}
|
2010
|
+
|
2011
|
+
static VALUE
|
2012
|
+
gl_ClearIndex(obj,arg1)
|
2013
|
+
VALUE obj,arg1;
|
2014
|
+
{
|
2015
|
+
GLfloat c;
|
2016
|
+
c = (GLfloat)NUM2DBL(arg1);
|
2017
|
+
glClearIndex(c);
|
2018
|
+
return Qnil;
|
2019
|
+
}
|
2020
|
+
|
2021
|
+
static VALUE
|
2022
|
+
gl_ClearColor(obj,arg1,arg2,arg3,arg4)
|
2023
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
2024
|
+
{
|
2025
|
+
GLclampf red;
|
2026
|
+
GLclampf green;
|
2027
|
+
GLclampf blue;
|
2028
|
+
GLclampf alpha;
|
2029
|
+
red = (GLclampf)NUM2DBL(arg1);
|
2030
|
+
green = (GLclampf)NUM2DBL(arg2);
|
2031
|
+
blue = (GLclampf)NUM2DBL(arg3);
|
2032
|
+
alpha = (GLclampf)NUM2DBL(arg4);
|
2033
|
+
glClearColor(red,green,blue,alpha);
|
2034
|
+
return Qnil;
|
2035
|
+
}
|
2036
|
+
|
2037
|
+
static VALUE
|
2038
|
+
gl_ClearStencil(obj,arg1)
|
2039
|
+
VALUE obj,arg1;
|
2040
|
+
{
|
2041
|
+
GLint s;
|
2042
|
+
s = (GLint)NUM2INT(arg1);
|
2043
|
+
glClearStencil(s);
|
2044
|
+
return Qnil;
|
2045
|
+
}
|
2046
|
+
|
2047
|
+
static VALUE
|
2048
|
+
gl_ClearDepth(obj,arg1)
|
2049
|
+
VALUE obj,arg1;
|
2050
|
+
{
|
2051
|
+
GLclampd depth;
|
2052
|
+
depth = (GLclampd)NUM2DBL(arg1);
|
2053
|
+
glClearDepth(depth);
|
2054
|
+
return Qnil;
|
2055
|
+
}
|
2056
|
+
|
2057
|
+
static VALUE
|
2058
|
+
gl_StencilMask(obj,arg1)
|
2059
|
+
VALUE obj,arg1;
|
2060
|
+
{
|
2061
|
+
GLuint mask;
|
2062
|
+
mask = (GLuint)NUM2INT(arg1);
|
2063
|
+
glStencilMask(mask);
|
2064
|
+
return Qnil;
|
2065
|
+
}
|
2066
|
+
|
2067
|
+
static VALUE
|
2068
|
+
gl_ColorMask(obj,arg1,arg2,arg3,arg4)
|
2069
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
2070
|
+
{
|
2071
|
+
GLboolean red;
|
2072
|
+
GLboolean green;
|
2073
|
+
GLboolean blue;
|
2074
|
+
GLboolean alpha;
|
2075
|
+
red = (GLboolean)NUM2INT(arg1);
|
2076
|
+
green = (GLboolean)NUM2INT(arg2);
|
2077
|
+
blue = (GLboolean)NUM2INT(arg3);
|
2078
|
+
alpha = (GLboolean)NUM2INT(arg4);
|
2079
|
+
glColorMask(red,green,blue,alpha);
|
2080
|
+
return Qnil;
|
2081
|
+
}
|
2082
|
+
|
2083
|
+
static VALUE
|
2084
|
+
gl_DepthMask(obj,arg1)
|
2085
|
+
VALUE obj,arg1;
|
2086
|
+
{
|
2087
|
+
GLboolean flag;
|
2088
|
+
flag = (GLboolean)NUM2INT(arg1);
|
2089
|
+
glDepthMask(flag);
|
2090
|
+
return Qnil;
|
2091
|
+
}
|
2092
|
+
|
2093
|
+
static VALUE
|
2094
|
+
gl_IndexMask(obj,arg1)
|
2095
|
+
VALUE obj,arg1;
|
2096
|
+
{
|
2097
|
+
GLuint mask;
|
2098
|
+
mask = (GLuint)NUM2INT(arg1);
|
2099
|
+
glIndexMask(mask);
|
2100
|
+
return Qnil;
|
2101
|
+
}
|
2102
|
+
|
2103
|
+
static VALUE
|
2104
|
+
gl_Accum(obj,arg1,arg2)
|
2105
|
+
VALUE obj,arg1,arg2;
|
2106
|
+
{
|
2107
|
+
GLenum op;
|
2108
|
+
GLfloat value;
|
2109
|
+
op = (GLenum)NUM2INT(arg1);
|
2110
|
+
value = (GLfloat)NUM2DBL(arg2);
|
2111
|
+
glAccum(op,value);
|
2112
|
+
return Qnil;
|
2113
|
+
}
|
2114
|
+
|
2115
|
+
static VALUE
|
2116
|
+
gl_Disable(obj,arg1)
|
2117
|
+
VALUE obj,arg1;
|
2118
|
+
{
|
2119
|
+
GLenum cap;
|
2120
|
+
cap = (GLenum)NUM2INT(arg1);
|
2121
|
+
glDisable(cap);
|
2122
|
+
return Qnil;
|
2123
|
+
}
|
2124
|
+
|
2125
|
+
static VALUE
|
2126
|
+
gl_Enable(obj,arg1)
|
2127
|
+
VALUE obj,arg1;
|
2128
|
+
{
|
2129
|
+
GLenum cap;
|
2130
|
+
cap = (GLenum)NUM2INT(arg1);
|
2131
|
+
glEnable(cap);
|
2132
|
+
return Qnil;
|
2133
|
+
}
|
2134
|
+
|
2135
|
+
static VALUE
|
2136
|
+
gl_Finish(obj)
|
2137
|
+
VALUE obj;
|
2138
|
+
{
|
2139
|
+
glFinish();
|
2140
|
+
return Qnil;
|
2141
|
+
}
|
2142
|
+
|
2143
|
+
static VALUE
|
2144
|
+
gl_Flush(obj)
|
2145
|
+
VALUE obj;
|
2146
|
+
{
|
2147
|
+
glFlush();
|
2148
|
+
return Qnil;
|
2149
|
+
}
|
2150
|
+
|
2151
|
+
static VALUE
|
2152
|
+
gl_PopAttrib(obj)
|
2153
|
+
VALUE obj;
|
2154
|
+
{
|
2155
|
+
glPopAttrib();
|
2156
|
+
return Qnil;
|
2157
|
+
}
|
2158
|
+
|
2159
|
+
static VALUE
|
2160
|
+
gl_PushAttrib(obj,arg1)
|
2161
|
+
VALUE obj,arg1;
|
2162
|
+
{
|
2163
|
+
GLbitfield mask;
|
2164
|
+
mask = (GLbitfield)NUM2INT(arg1);
|
2165
|
+
glPushAttrib(mask);
|
2166
|
+
return Qnil;
|
2167
|
+
}
|
2168
|
+
|
2169
|
+
static VALUE
|
2170
|
+
gl_Map1d(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
2171
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
2172
|
+
{
|
2173
|
+
GLenum target;
|
2174
|
+
GLdouble u1;
|
2175
|
+
GLdouble u2;
|
2176
|
+
GLint stride;
|
2177
|
+
GLint order;
|
2178
|
+
GLdouble *points;
|
2179
|
+
|
2180
|
+
VALUE work_ary;
|
2181
|
+
|
2182
|
+
target = (GLenum)NUM2INT(arg1);
|
2183
|
+
u1 = (GLdouble)NUM2DBL(arg2);
|
2184
|
+
u2 = (GLdouble)NUM2DBL(arg3);
|
2185
|
+
stride = (GLint)NUM2INT(arg4);
|
2186
|
+
order = (GLint)NUM2INT(arg5);
|
2187
|
+
points = ALLOC_N(GLdouble, order*stride);
|
2188
|
+
work_ary = rb_ary_new();
|
2189
|
+
mary2ary(arg6, work_ary);
|
2190
|
+
ary2cdbl(work_ary, points, order*stride);
|
2191
|
+
glMap1d(target, u1, u2, stride, order, points);
|
2192
|
+
xfree(points);
|
2193
|
+
return Qnil;
|
2194
|
+
}
|
2195
|
+
|
2196
|
+
static VALUE
|
2197
|
+
gl_Map1f(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
2198
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
2199
|
+
{
|
2200
|
+
GLenum target;
|
2201
|
+
GLfloat u1;
|
2202
|
+
GLfloat u2;
|
2203
|
+
GLint stride;
|
2204
|
+
GLint order;
|
2205
|
+
GLfloat *points;
|
2206
|
+
|
2207
|
+
VALUE work_ary;
|
2208
|
+
|
2209
|
+
target = (GLenum)NUM2INT(arg1);
|
2210
|
+
u1 = (GLfloat)NUM2DBL(arg2);
|
2211
|
+
u2 = (GLfloat)NUM2DBL(arg3);
|
2212
|
+
stride = (GLint)NUM2INT(arg4);
|
2213
|
+
order = (GLint)NUM2INT(arg5);
|
2214
|
+
points = ALLOC_N(GLfloat, order*stride);
|
2215
|
+
work_ary = rb_ary_new();
|
2216
|
+
mary2ary(arg6, work_ary);
|
2217
|
+
ary2cflt(work_ary, points, order*stride);
|
2218
|
+
glMap1f(target, u1, u2, stride, order, points);
|
2219
|
+
xfree(points);
|
2220
|
+
return Qnil;
|
2221
|
+
}
|
2222
|
+
|
2223
|
+
static VALUE
|
2224
|
+
gl_Map2d(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
|
2225
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
|
2226
|
+
{
|
2227
|
+
GLenum target;
|
2228
|
+
GLdouble u1;
|
2229
|
+
GLdouble u2;
|
2230
|
+
GLint ustride;
|
2231
|
+
GLint uorder;
|
2232
|
+
GLdouble v1;
|
2233
|
+
GLdouble v2;
|
2234
|
+
GLint vstride;
|
2235
|
+
GLint vorder;
|
2236
|
+
GLdouble *points;
|
2237
|
+
|
2238
|
+
VALUE work_ary;
|
2239
|
+
|
2240
|
+
target = (GLenum)NUM2INT(arg1);
|
2241
|
+
u1 = (GLdouble)NUM2INT(arg2);
|
2242
|
+
u2 = (GLdouble)NUM2INT(arg3);
|
2243
|
+
ustride = (GLint)NUM2INT(arg4);
|
2244
|
+
uorder = (GLint)NUM2INT(arg5);
|
2245
|
+
v1 = (GLdouble)NUM2INT(arg6);
|
2246
|
+
v2 = (GLdouble)NUM2INT(arg7);
|
2247
|
+
vstride = (GLint)NUM2INT(arg8);
|
2248
|
+
vorder = (GLint)NUM2INT(arg9);
|
2249
|
+
points = ALLOC_N(GLdouble, MAX(ustride*uorder, vstride*vorder));
|
2250
|
+
work_ary = rb_ary_new();
|
2251
|
+
mary2ary(arg10, work_ary);
|
2252
|
+
ary2cdbl(arg10, points, MAX(ustride*uorder, vstride*vorder));
|
2253
|
+
glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
|
2254
|
+
xfree(points);
|
2255
|
+
return Qnil;
|
2256
|
+
}
|
2257
|
+
|
2258
|
+
static VALUE
|
2259
|
+
gl_Map2f(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
|
2260
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
|
2261
|
+
{
|
2262
|
+
GLenum target;
|
2263
|
+
GLfloat u1;
|
2264
|
+
GLfloat u2;
|
2265
|
+
GLint ustride;
|
2266
|
+
GLint uorder;
|
2267
|
+
GLfloat v1;
|
2268
|
+
GLfloat v2;
|
2269
|
+
GLint vstride;
|
2270
|
+
GLint vorder;
|
2271
|
+
GLfloat *points;
|
2272
|
+
|
2273
|
+
VALUE work_ary;
|
2274
|
+
|
2275
|
+
target = (GLenum)NUM2INT(arg1);
|
2276
|
+
u1 = (GLfloat)NUM2INT(arg2);
|
2277
|
+
u2 = (GLfloat)NUM2INT(arg3);
|
2278
|
+
ustride = (GLint)NUM2INT(arg4);
|
2279
|
+
uorder = (GLint)NUM2INT(arg5);
|
2280
|
+
v1 = (GLfloat)NUM2INT(arg6);
|
2281
|
+
v2 = (GLfloat)NUM2INT(arg7);
|
2282
|
+
vstride = (GLint)NUM2INT(arg8);
|
2283
|
+
vorder = (GLint)NUM2INT(arg9);
|
2284
|
+
points = ALLOC_N(GLfloat, MAX(ustride*uorder, vstride*vorder));
|
2285
|
+
work_ary = rb_ary_new();
|
2286
|
+
mary2ary(arg10, work_ary);
|
2287
|
+
ary2cflt(arg10, points, MAX(ustride*uorder, vstride*vorder));
|
2288
|
+
glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
|
2289
|
+
xfree(points);
|
2290
|
+
return Qnil;
|
2291
|
+
}
|
2292
|
+
|
2293
|
+
static VALUE
|
2294
|
+
gl_MapGrid1d(obj,arg1,arg2,arg3)
|
2295
|
+
VALUE obj,arg1,arg2,arg3;
|
2296
|
+
{
|
2297
|
+
GLint un;
|
2298
|
+
GLdouble u1;
|
2299
|
+
GLdouble u2;
|
2300
|
+
un = (GLint)NUM2INT(arg1);
|
2301
|
+
u1 = (GLdouble)NUM2DBL(arg2);
|
2302
|
+
u2 = (GLdouble)NUM2DBL(arg3);
|
2303
|
+
glMapGrid1d(un,u1,u2);
|
2304
|
+
return Qnil;
|
2305
|
+
}
|
2306
|
+
|
2307
|
+
static VALUE
|
2308
|
+
gl_MapGrid1f(obj,arg1,arg2,arg3)
|
2309
|
+
VALUE obj,arg1,arg2,arg3;
|
2310
|
+
{
|
2311
|
+
GLint un;
|
2312
|
+
GLfloat u1;
|
2313
|
+
GLfloat u2;
|
2314
|
+
un = (GLint)NUM2INT(arg1);
|
2315
|
+
u1 = (GLfloat)NUM2DBL(arg2);
|
2316
|
+
u2 = (GLfloat)NUM2DBL(arg3);
|
2317
|
+
glMapGrid1f(un,u1,u2);
|
2318
|
+
return Qnil;
|
2319
|
+
}
|
2320
|
+
|
2321
|
+
static VALUE
|
2322
|
+
gl_MapGrid2d(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
2323
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
2324
|
+
{
|
2325
|
+
GLint un;
|
2326
|
+
GLdouble u1;
|
2327
|
+
GLdouble u2;
|
2328
|
+
GLint vn;
|
2329
|
+
GLdouble v1;
|
2330
|
+
GLdouble v2;
|
2331
|
+
un = (GLint)NUM2INT(arg1);
|
2332
|
+
u1 = (GLdouble)NUM2DBL(arg2);
|
2333
|
+
u2 = (GLdouble)NUM2DBL(arg3);
|
2334
|
+
vn = (GLint)NUM2INT(arg4);
|
2335
|
+
v1 = (GLdouble)NUM2DBL(arg5);
|
2336
|
+
v2 = (GLdouble)NUM2DBL(arg6);
|
2337
|
+
glMapGrid2d(un,u1,u2,vn,v1,v2);
|
2338
|
+
return Qnil;
|
2339
|
+
}
|
2340
|
+
|
2341
|
+
static VALUE
|
2342
|
+
gl_MapGrid2f(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
2343
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
2344
|
+
{
|
2345
|
+
GLint un;
|
2346
|
+
GLfloat u1;
|
2347
|
+
GLfloat u2;
|
2348
|
+
GLint vn;
|
2349
|
+
GLfloat v1;
|
2350
|
+
GLfloat v2;
|
2351
|
+
un = (GLint)NUM2INT(arg1);
|
2352
|
+
u1 = (GLfloat)NUM2DBL(arg2);
|
2353
|
+
u2 = (GLfloat)NUM2DBL(arg3);
|
2354
|
+
vn = (GLint)NUM2INT(arg4);
|
2355
|
+
v1 = (GLfloat)NUM2DBL(arg5);
|
2356
|
+
v2 = (GLfloat)NUM2DBL(arg6);
|
2357
|
+
glMapGrid2f(un,u1,u2,vn,v1,v2);
|
2358
|
+
return Qnil;
|
2359
|
+
}
|
2360
|
+
|
2361
|
+
static VALUE
|
2362
|
+
gl_EvalCoord1d(obj,arg1)
|
2363
|
+
VALUE obj,arg1;
|
2364
|
+
{
|
2365
|
+
GLdouble u;
|
2366
|
+
u = (GLdouble)NUM2DBL(arg1);
|
2367
|
+
glEvalCoord1d(u);
|
2368
|
+
return Qnil;
|
2369
|
+
}
|
2370
|
+
|
2371
|
+
static VALUE
|
2372
|
+
gl_EvalCoord1dv(obj,arg1)
|
2373
|
+
VALUE obj,arg1;
|
2374
|
+
{
|
2375
|
+
GLdouble params[1] = {0.0};
|
2376
|
+
if (TYPE(arg1) != T_ARRAY)
|
2377
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
2378
|
+
ary2cdbl(arg1,params,1);
|
2379
|
+
glEvalCoord1dv(params);
|
2380
|
+
return Qnil;
|
2381
|
+
}
|
2382
|
+
|
2383
|
+
static VALUE
|
2384
|
+
gl_EvalCoord1f(obj,arg1)
|
2385
|
+
VALUE obj,arg1;
|
2386
|
+
{
|
2387
|
+
GLfloat u;
|
2388
|
+
u = (GLfloat)NUM2DBL(arg1);
|
2389
|
+
glEvalCoord1f(u);
|
2390
|
+
return Qnil;
|
2391
|
+
}
|
2392
|
+
|
2393
|
+
static VALUE
|
2394
|
+
gl_EvalCoord1fv(obj,arg1)
|
2395
|
+
VALUE obj,arg1;
|
2396
|
+
{
|
2397
|
+
GLfloat params[1] = {0.0};
|
2398
|
+
if (TYPE(arg1) != T_ARRAY)
|
2399
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
2400
|
+
ary2cflt(arg1,params,1);
|
2401
|
+
glEvalCoord1fv(params);
|
2402
|
+
return Qnil;
|
2403
|
+
}
|
2404
|
+
|
2405
|
+
static VALUE
|
2406
|
+
gl_EvalCoord2d(obj,arg1,arg2)
|
2407
|
+
VALUE obj,arg1,arg2;
|
2408
|
+
{
|
2409
|
+
GLdouble u;
|
2410
|
+
GLdouble v;
|
2411
|
+
u = (GLdouble)NUM2DBL(arg1);
|
2412
|
+
v = (GLdouble)NUM2DBL(arg2);
|
2413
|
+
glEvalCoord2d(u,v);
|
2414
|
+
return Qnil;
|
2415
|
+
}
|
2416
|
+
|
2417
|
+
static VALUE
|
2418
|
+
gl_EvalCoord2dv(obj,arg1)
|
2419
|
+
VALUE obj,arg1;
|
2420
|
+
{
|
2421
|
+
GLdouble params[2] = {0.0,0.0};
|
2422
|
+
if (TYPE(arg1) != T_ARRAY)
|
2423
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
2424
|
+
ary2cdbl(arg1,params,2);
|
2425
|
+
glEvalCoord2dv(params);
|
2426
|
+
return Qnil;
|
2427
|
+
}
|
2428
|
+
|
2429
|
+
static VALUE
|
2430
|
+
gl_EvalCoord2f(obj,arg1,arg2)
|
2431
|
+
VALUE obj,arg1,arg2;
|
2432
|
+
{
|
2433
|
+
GLfloat u;
|
2434
|
+
GLfloat v;
|
2435
|
+
u = (GLfloat)NUM2DBL(arg1);
|
2436
|
+
v = (GLfloat)NUM2DBL(arg2);
|
2437
|
+
glEvalCoord2f(u,v);
|
2438
|
+
return Qnil;
|
2439
|
+
}
|
2440
|
+
|
2441
|
+
static VALUE
|
2442
|
+
gl_EvalCoord2fv(obj,arg1)
|
2443
|
+
VALUE obj,arg1;
|
2444
|
+
{
|
2445
|
+
GLfloat params[2] = {0.0,0.0};
|
2446
|
+
if (TYPE(arg1) != T_ARRAY)
|
2447
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
2448
|
+
ary2cflt(arg1,params,2);
|
2449
|
+
glEvalCoord2fv(params);
|
2450
|
+
return Qnil;
|
2451
|
+
}
|
2452
|
+
|
2453
|
+
static VALUE
|
2454
|
+
gl_EvalMesh1(obj,arg1,arg2,arg3)
|
2455
|
+
VALUE obj,arg1,arg2,arg3;
|
2456
|
+
{
|
2457
|
+
GLenum mode;
|
2458
|
+
GLint i1;
|
2459
|
+
GLint i2;
|
2460
|
+
mode = (GLenum)NUM2INT(arg1);
|
2461
|
+
i1 = (GLint)NUM2INT(arg2);
|
2462
|
+
i2 = (GLint)NUM2INT(arg3);
|
2463
|
+
glEvalMesh1(mode,i1,i2);
|
2464
|
+
return Qnil;
|
2465
|
+
}
|
2466
|
+
|
2467
|
+
static VALUE
|
2468
|
+
gl_EvalPoint1(obj,arg1)
|
2469
|
+
VALUE obj,arg1;
|
2470
|
+
{
|
2471
|
+
GLint i;
|
2472
|
+
i = (GLint)NUM2INT(arg1);
|
2473
|
+
glEvalPoint1(i);
|
2474
|
+
return Qnil;
|
2475
|
+
}
|
2476
|
+
|
2477
|
+
static VALUE
|
2478
|
+
gl_EvalMesh2(obj,arg1,arg2,arg3,arg4,arg5)
|
2479
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
2480
|
+
{
|
2481
|
+
GLenum mode;
|
2482
|
+
GLint i1;
|
2483
|
+
GLint i2;
|
2484
|
+
GLint j1;
|
2485
|
+
GLint j2;
|
2486
|
+
mode = (GLenum)NUM2INT(arg1);
|
2487
|
+
i1 = (GLint)NUM2INT(arg2);
|
2488
|
+
i2 = (GLint)NUM2INT(arg3);
|
2489
|
+
j1 = (GLint)NUM2INT(arg4);
|
2490
|
+
j2 = (GLint)NUM2INT(arg5);
|
2491
|
+
glEvalMesh2(mode,i1,i2,j1,j2);
|
2492
|
+
return Qnil;
|
2493
|
+
}
|
2494
|
+
|
2495
|
+
static VALUE
|
2496
|
+
gl_EvalPoint2(obj,arg1,arg2)
|
2497
|
+
VALUE obj,arg1,arg2;
|
2498
|
+
{
|
2499
|
+
GLint i;
|
2500
|
+
GLint j;
|
2501
|
+
i = (GLint)NUM2INT(arg1);
|
2502
|
+
j = (GLint)NUM2INT(arg2);
|
2503
|
+
glEvalPoint2(i,j);
|
2504
|
+
return Qnil;
|
2505
|
+
}
|
2506
|
+
|
2507
|
+
static VALUE
|
2508
|
+
gl_AlphaFunc(obj,arg1,arg2)
|
2509
|
+
VALUE obj,arg1,arg2;
|
2510
|
+
{
|
2511
|
+
GLenum func;
|
2512
|
+
GLclampf ref;
|
2513
|
+
func = (GLenum)NUM2INT(arg1);
|
2514
|
+
ref = (GLclampf)NUM2DBL(arg2);
|
2515
|
+
glAlphaFunc(func,ref);
|
2516
|
+
return Qnil;
|
2517
|
+
}
|
2518
|
+
|
2519
|
+
static VALUE
|
2520
|
+
gl_BlendFunc(obj,arg1,arg2)
|
2521
|
+
VALUE obj,arg1,arg2;
|
2522
|
+
{
|
2523
|
+
GLenum sfactor;
|
2524
|
+
GLenum dfactor;
|
2525
|
+
sfactor = (GLenum)NUM2INT(arg1);
|
2526
|
+
dfactor = (GLenum)NUM2INT(arg2);
|
2527
|
+
glBlendFunc(sfactor,dfactor);
|
2528
|
+
return Qnil;
|
2529
|
+
}
|
2530
|
+
|
2531
|
+
static VALUE
|
2532
|
+
gl_LogicOp(obj,arg1)
|
2533
|
+
VALUE obj,arg1;
|
2534
|
+
{
|
2535
|
+
GLenum opcode;
|
2536
|
+
opcode = (GLenum)NUM2INT(arg1);
|
2537
|
+
glLogicOp(opcode);
|
2538
|
+
return Qnil;
|
2539
|
+
}
|
2540
|
+
|
2541
|
+
static VALUE
|
2542
|
+
gl_StencilFunc(obj,arg1,arg2,arg3)
|
2543
|
+
VALUE obj,arg1,arg2,arg3;
|
2544
|
+
{
|
2545
|
+
GLenum func;
|
2546
|
+
GLint ref;
|
2547
|
+
GLuint mask;
|
2548
|
+
func = (GLenum)NUM2INT(arg1);
|
2549
|
+
ref = (GLint)NUM2INT(arg2);
|
2550
|
+
mask = (GLuint)NUM2INT(arg3);
|
2551
|
+
glStencilFunc(func,ref,mask);
|
2552
|
+
return Qnil;
|
2553
|
+
}
|
2554
|
+
|
2555
|
+
static VALUE
|
2556
|
+
gl_StencilOp(obj,arg1,arg2,arg3)
|
2557
|
+
VALUE obj,arg1,arg2,arg3;
|
2558
|
+
{
|
2559
|
+
GLenum fail;
|
2560
|
+
GLenum zfail;
|
2561
|
+
GLenum zpass;
|
2562
|
+
fail = (GLenum)NUM2INT(arg1);
|
2563
|
+
zfail = (GLenum)NUM2INT(arg2);
|
2564
|
+
zpass = (GLenum)NUM2INT(arg3);
|
2565
|
+
glStencilOp(fail,zfail,zpass);
|
2566
|
+
return Qnil;
|
2567
|
+
}
|
2568
|
+
|
2569
|
+
static VALUE
|
2570
|
+
gl_DepthFunc(obj,arg1)
|
2571
|
+
VALUE obj,arg1;
|
2572
|
+
{
|
2573
|
+
GLenum func;
|
2574
|
+
func = (GLenum)NUM2INT(arg1);
|
2575
|
+
glDepthFunc(func);
|
2576
|
+
return Qnil;
|
2577
|
+
}
|
2578
|
+
|
2579
|
+
static VALUE
|
2580
|
+
gl_PixelZoom(obj,arg1,arg2)
|
2581
|
+
VALUE obj,arg1,arg2;
|
2582
|
+
{
|
2583
|
+
GLfloat xfactor;
|
2584
|
+
GLfloat yfactor;
|
2585
|
+
xfactor = (GLfloat)NUM2DBL(arg1);
|
2586
|
+
yfactor = (GLfloat)NUM2DBL(arg2);
|
2587
|
+
glPixelZoom(xfactor,yfactor);
|
2588
|
+
return Qnil;
|
2589
|
+
}
|
2590
|
+
|
2591
|
+
static VALUE
|
2592
|
+
gl_PixelTransferf(obj,arg1,arg2)
|
2593
|
+
VALUE obj,arg1,arg2;
|
2594
|
+
{
|
2595
|
+
GLenum pname;
|
2596
|
+
GLfloat param;
|
2597
|
+
pname = (GLenum)NUM2INT(arg1);
|
2598
|
+
param = (GLfloat)NUM2DBL(arg2);
|
2599
|
+
glPixelTransferf(pname,param);
|
2600
|
+
return Qnil;
|
2601
|
+
}
|
2602
|
+
|
2603
|
+
static VALUE
|
2604
|
+
gl_PixelTransferi(obj,arg1,arg2)
|
2605
|
+
VALUE obj,arg1,arg2;
|
2606
|
+
{
|
2607
|
+
GLenum pname;
|
2608
|
+
GLint param;
|
2609
|
+
pname = (GLenum)NUM2INT(arg1);
|
2610
|
+
param = (GLint)NUM2INT(arg2);
|
2611
|
+
glPixelTransferi(pname,param);
|
2612
|
+
return Qnil;
|
2613
|
+
}
|
2614
|
+
|
2615
|
+
static VALUE
|
2616
|
+
gl_PixelStoref(obj,arg1,arg2)
|
2617
|
+
VALUE obj,arg1,arg2;
|
2618
|
+
{
|
2619
|
+
GLenum pname;
|
2620
|
+
GLfloat param;
|
2621
|
+
pname = (GLenum)NUM2INT(arg1);
|
2622
|
+
param = (GLfloat)NUM2DBL(arg2);
|
2623
|
+
glPixelStoref(pname,param);
|
2624
|
+
return Qnil;
|
2625
|
+
}
|
2626
|
+
|
2627
|
+
static VALUE
|
2628
|
+
gl_PixelStorei(obj,arg1,arg2)
|
2629
|
+
VALUE obj,arg1,arg2;
|
2630
|
+
{
|
2631
|
+
GLenum pname;
|
2632
|
+
GLint param;
|
2633
|
+
pname = (GLenum)NUM2INT(arg1);
|
2634
|
+
param = (GLint)NUM2INT(arg2);
|
2635
|
+
glPixelStorei(pname,param);
|
2636
|
+
return Qnil;
|
2637
|
+
}
|
2638
|
+
|
2639
|
+
static VALUE
|
2640
|
+
gl_PixelMapfv(obj,arg1,arg2)
|
2641
|
+
VALUE obj,arg1,arg2;
|
2642
|
+
{
|
2643
|
+
GLenum map;
|
2644
|
+
GLfloat *values;
|
2645
|
+
GLsizei size;
|
2646
|
+
map = (GLenum)NUM2INT(arg1);
|
2647
|
+
if (TYPE(arg2) != T_ARRAY)
|
2648
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg2));
|
2649
|
+
size = RARRAY(arg2)->len;
|
2650
|
+
values = ALLOC_N(GLfloat,size);
|
2651
|
+
ary2cflt(arg2,values,size);
|
2652
|
+
glPixelMapfv(map,size,values);
|
2653
|
+
xfree(values);
|
2654
|
+
return Qnil;
|
2655
|
+
}
|
2656
|
+
|
2657
|
+
static VALUE
|
2658
|
+
gl_PixelMapuiv(obj,arg1,arg2)
|
2659
|
+
VALUE obj,arg1,arg2;
|
2660
|
+
{
|
2661
|
+
GLenum map;
|
2662
|
+
GLuint *values;
|
2663
|
+
GLsizei size;
|
2664
|
+
map = (GLenum)NUM2INT(arg1);
|
2665
|
+
if (TYPE(arg2) != T_ARRAY)
|
2666
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg2));
|
2667
|
+
size = RARRAY(arg2)->len;
|
2668
|
+
values = ALLOC_N(GLuint,size);
|
2669
|
+
ary2cuint(arg2,values,size);
|
2670
|
+
glPixelMapuiv(map,size,values);
|
2671
|
+
xfree(values);
|
2672
|
+
return Qnil;
|
2673
|
+
}
|
2674
|
+
|
2675
|
+
static VALUE
|
2676
|
+
gl_PixelMapusv(obj,arg1,arg2)
|
2677
|
+
VALUE obj,arg1,arg2;
|
2678
|
+
{
|
2679
|
+
GLenum map;
|
2680
|
+
GLushort *values;
|
2681
|
+
GLsizei size;
|
2682
|
+
map = (GLenum)NUM2INT(arg1);
|
2683
|
+
if (TYPE(arg2) != T_ARRAY)
|
2684
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg2));
|
2685
|
+
size = RARRAY(arg2)->len;
|
2686
|
+
values = ALLOC_N(GLushort,size);
|
2687
|
+
ary2cushort(arg2,values,size);
|
2688
|
+
glPixelMapusv(map,size,values);
|
2689
|
+
xfree(values);
|
2690
|
+
return Qnil;
|
2691
|
+
}
|
2692
|
+
|
2693
|
+
static VALUE
|
2694
|
+
gl_ReadBuffer(obj,arg1)
|
2695
|
+
VALUE obj,arg1;
|
2696
|
+
{
|
2697
|
+
GLenum mode;
|
2698
|
+
mode = (GLenum)NUM2INT(arg1);
|
2699
|
+
glReadBuffer(mode);
|
2700
|
+
return Qnil;
|
2701
|
+
}
|
2702
|
+
|
2703
|
+
static VALUE
|
2704
|
+
gl_CopyPixels(obj,arg1,arg2,arg3,arg4,arg5)
|
2705
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
2706
|
+
{
|
2707
|
+
GLint x;
|
2708
|
+
GLint y;
|
2709
|
+
GLsizei width;
|
2710
|
+
GLsizei height;
|
2711
|
+
GLenum type;
|
2712
|
+
x = (GLint)NUM2INT(arg1);
|
2713
|
+
y = (GLint)NUM2INT(arg2);
|
2714
|
+
width = (GLsizei)NUM2INT(arg3);
|
2715
|
+
height = (GLsizei)NUM2INT(arg4);
|
2716
|
+
type = (GLenum)NUM2INT(arg5);
|
2717
|
+
glCopyPixels(x,y,width,height,type);
|
2718
|
+
return Qnil;
|
2719
|
+
}
|
2720
|
+
|
2721
|
+
static VALUE
|
2722
|
+
gl_ReadPixels(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
2723
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
2724
|
+
{
|
2725
|
+
GLint x;
|
2726
|
+
GLint y;
|
2727
|
+
GLsizei width;
|
2728
|
+
GLsizei height;
|
2729
|
+
int format;
|
2730
|
+
int type;
|
2731
|
+
VALUE pixels;
|
2732
|
+
x = (GLint)NUM2INT(arg1);
|
2733
|
+
y = (GLint)NUM2INT(arg2);
|
2734
|
+
width = (GLsizei)NUM2INT(arg3);
|
2735
|
+
height = (GLsizei)NUM2INT(arg4);
|
2736
|
+
format = NUM2INT(arg5);
|
2737
|
+
type = NUM2INT(arg6);
|
2738
|
+
if (format != -1 && type != -1) {
|
2739
|
+
int type_size;
|
2740
|
+
int format_size;
|
2741
|
+
type_size = gltype_size(type) / 8;
|
2742
|
+
format_size = glformat_size(format);
|
2743
|
+
pixels = allocate_buffer_with_string(width*height*format_size*type_size);
|
2744
|
+
glReadPixels(x,y,width,height,format,type,(GLvoid*)RSTRING(pixels)->ptr);
|
2745
|
+
return pixels;
|
2746
|
+
}
|
2747
|
+
return Qnil;
|
2748
|
+
}
|
2749
|
+
|
2750
|
+
static VALUE
|
2751
|
+
gl_DrawPixels(obj,arg1,arg2,arg3,arg4,arg5)
|
2752
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
2753
|
+
{
|
2754
|
+
GLsizei width;
|
2755
|
+
GLsizei height;
|
2756
|
+
GLenum format;
|
2757
|
+
GLenum type;
|
2758
|
+
const char *pixels;
|
2759
|
+
width = (GLsizei)NUM2INT(arg1);
|
2760
|
+
height = (GLsizei)NUM2INT(arg2);
|
2761
|
+
format = (GLenum)NUM2INT(arg3);
|
2762
|
+
type = (GLenum)NUM2INT(arg4);
|
2763
|
+
if (format != -1 && type != -1) {
|
2764
|
+
if (TYPE(arg5) != T_STRING)
|
2765
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg5));
|
2766
|
+
if (RSTRING(arg5)->len < width * height * glformat_size(format) * gltype_size(type) / 8)
|
2767
|
+
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg5)->len);
|
2768
|
+
pixels = RSTRING(arg5)->ptr;
|
2769
|
+
glDrawPixels(width,height,format,type,pixels);
|
2770
|
+
}
|
2771
|
+
return Qnil;
|
2772
|
+
}
|
2773
|
+
|
2774
|
+
static VALUE
|
2775
|
+
gl_GetClipPlane(obj,arg1)
|
2776
|
+
VALUE obj,arg1;
|
2777
|
+
{
|
2778
|
+
GLenum plane;
|
2779
|
+
GLdouble equation[4] = {0.0,0.0,0.0,0.0};
|
2780
|
+
VALUE retary;
|
2781
|
+
int i;
|
2782
|
+
plane = (GLenum)NUM2INT(arg1);
|
2783
|
+
glGetClipPlane(plane,equation);
|
2784
|
+
retary = rb_ary_new2(4);
|
2785
|
+
for(i=0;i<4;i++)
|
2786
|
+
rb_ary_push(retary, rb_float_new(equation[i]));
|
2787
|
+
return retary;
|
2788
|
+
}
|
2789
|
+
|
2790
|
+
#define GLGET_FUNC(_name_,_type_,_conv_) \
|
2791
|
+
static VALUE \
|
2792
|
+
gl_Get##_name_##v(obj,arg1) \
|
2793
|
+
VALUE obj,arg1; \
|
2794
|
+
{ \
|
2795
|
+
GLenum pname; \
|
2796
|
+
int nitems; \
|
2797
|
+
VALUE ary, ary2; \
|
2798
|
+
int i,j; \
|
2799
|
+
_type_ items[32]; \
|
2800
|
+
pname = NUM2INT(arg1); \
|
2801
|
+
switch(pname) { \
|
2802
|
+
case GL_ACCUM_CLEAR_VALUE: \
|
2803
|
+
case GL_BLEND_COLOR: \
|
2804
|
+
case GL_COLOR_CLEAR_VALUE: \
|
2805
|
+
case GL_COLOR_WRITEMASK: \
|
2806
|
+
case GL_CURRENT_COLOR: \
|
2807
|
+
case GL_CURRENT_RASTER_COLOR: \
|
2808
|
+
case GL_CURRENT_RASTER_POSITION: \
|
2809
|
+
case GL_CURRENT_RASTER_SECONDARY_COLOR: \
|
2810
|
+
case GL_CURRENT_RASTER_TEXTURE_COORDS: \
|
2811
|
+
case GL_CURRENT_TEXTURE_COORDS: \
|
2812
|
+
case GL_FOG_COLOR: \
|
2813
|
+
case GL_LIGHT_MODEL_AMBIENT: \
|
2814
|
+
case GL_MAP2_GRID_DOMAIN: \
|
2815
|
+
case GL_CURRENT_SECONDARY_COLOR: \
|
2816
|
+
case GL_SCISSOR_BOX: \
|
2817
|
+
case GL_TEXTURE_ENV_COLOR: \
|
2818
|
+
case GL_VIEWPORT: \
|
2819
|
+
nitems = 4; \
|
2820
|
+
break; \
|
2821
|
+
case GL_CURRENT_NORMAL: \
|
2822
|
+
case GL_POINT_DISTANCE_ATTENUATION: \
|
2823
|
+
nitems = 3; \
|
2824
|
+
break; \
|
2825
|
+
case GL_DEPTH_RANGE: \
|
2826
|
+
case GL_LINE_WIDTH_RANGE: \
|
2827
|
+
case GL_MAP1_GRID_DOMAIN: \
|
2828
|
+
case GL_MAP2_GRID_SEGMENTS: \
|
2829
|
+
case GL_MAX_VIEWPORT_DIMS: \
|
2830
|
+
case GL_POINT_SIZE_RANGE: \
|
2831
|
+
case GL_POLYGON_MODE: \
|
2832
|
+
case GL_ALIASED_LINE_WIDTH_RANGE: \
|
2833
|
+
case GL_ALIASED_POINT_SIZE_RANGE: \
|
2834
|
+
nitems = 2; \
|
2835
|
+
break; \
|
2836
|
+
case GL_MODELVIEW_MATRIX: \
|
2837
|
+
case GL_PROJECTION_MATRIX: \
|
2838
|
+
case GL_TEXTURE_MATRIX: \
|
2839
|
+
glGet##_name_##v(pname, items); \
|
2840
|
+
ary = rb_ary_new2(4); \
|
2841
|
+
for (i = 0; i < 4; i++) { \
|
2842
|
+
ary2 = rb_ary_new2(4); \
|
2843
|
+
rb_ary_push(ary, ary2); \
|
2844
|
+
for (j = 0; j < 4; j++) \
|
2845
|
+
rb_ary_push(ary2, _conv_(items[i*4+j])); \
|
2846
|
+
} \
|
2847
|
+
return ary; \
|
2848
|
+
case GL_POLYGON_STIPPLE: \
|
2849
|
+
glGet##_name_##v(pname, items); \
|
2850
|
+
return rb_str_new((const char*)items, 32); \
|
2851
|
+
default: /* size=1 */ \
|
2852
|
+
glGet##_name_##v(pname, items); \
|
2853
|
+
return _conv_(items[0]); \
|
2854
|
+
} \
|
2855
|
+
glGet##_name_##v(pname, items); \
|
2856
|
+
ary = rb_ary_new2(nitems); \
|
2857
|
+
for (i = 0; i < nitems; i++) \
|
2858
|
+
rb_ary_push(ary, _conv_(items[i])); \
|
2859
|
+
return ary; \
|
2860
|
+
}
|
2861
|
+
|
2862
|
+
GLGET_FUNC(Double,GLdouble,rb_float_new)
|
2863
|
+
GLGET_FUNC(Float,GLfloat,rb_float_new)
|
2864
|
+
GLGET_FUNC(Integer,GLint,INT2NUM)
|
2865
|
+
GLGET_FUNC(Boolean,GLboolean,INT2NUM)
|
2866
|
+
|
2867
|
+
#undef GLGET_FUNC
|
2868
|
+
|
2869
|
+
static VALUE
|
2870
|
+
gl_GetError(obj)
|
2871
|
+
VALUE obj;
|
2872
|
+
{
|
2873
|
+
GLenum ret;
|
2874
|
+
ret = glGetError();
|
2875
|
+
return INT2NUM(ret);
|
2876
|
+
}
|
2877
|
+
|
2878
|
+
static VALUE
|
2879
|
+
gl_GetLightfv(obj,arg1,arg2)
|
2880
|
+
VALUE obj,arg1,arg2;
|
2881
|
+
{
|
2882
|
+
GLenum light;
|
2883
|
+
GLenum pname;
|
2884
|
+
GLsizei size;
|
2885
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
2886
|
+
VALUE retary;
|
2887
|
+
int i;
|
2888
|
+
light = (GLenum)NUM2INT(arg1);
|
2889
|
+
pname = (GLenum)NUM2INT(arg2);
|
2890
|
+
switch(pname) {
|
2891
|
+
case GL_AMBIENT:
|
2892
|
+
case GL_DIFFUSE:
|
2893
|
+
case GL_SPECULAR:
|
2894
|
+
case GL_POSITION:
|
2895
|
+
size = 4;
|
2896
|
+
break;
|
2897
|
+
case GL_SPOT_DIRECTION:
|
2898
|
+
size = 3;
|
2899
|
+
break;
|
2900
|
+
case GL_CONSTANT_ATTENUATION:
|
2901
|
+
case GL_LINEAR_ATTENUATION:
|
2902
|
+
case GL_QUADRATIC_ATTENUATION:
|
2903
|
+
case GL_SPOT_EXPONENT:
|
2904
|
+
case GL_SPOT_CUTOFF:
|
2905
|
+
size = 1;
|
2906
|
+
break;
|
2907
|
+
default:
|
2908
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
2909
|
+
break; /* not reached */
|
2910
|
+
}
|
2911
|
+
glGetLightfv(light,pname,params);
|
2912
|
+
retary = rb_ary_new2(size);
|
2913
|
+
for(i=0;i<size;i++)
|
2914
|
+
rb_ary_push(retary, rb_float_new(params[i]));
|
2915
|
+
return retary;
|
2916
|
+
}
|
2917
|
+
|
2918
|
+
static VALUE
|
2919
|
+
gl_GetLightiv(obj,arg1,arg2)
|
2920
|
+
VALUE obj,arg1,arg2;
|
2921
|
+
{
|
2922
|
+
GLenum light;
|
2923
|
+
GLenum pname;
|
2924
|
+
GLsizei size;
|
2925
|
+
GLint params[4] = {0,0,0,0};
|
2926
|
+
VALUE retary;
|
2927
|
+
int i;
|
2928
|
+
light = (GLenum)NUM2INT(arg1);
|
2929
|
+
pname = (GLenum)NUM2INT(arg2);
|
2930
|
+
switch(pname) {
|
2931
|
+
case GL_AMBIENT:
|
2932
|
+
case GL_DIFFUSE:
|
2933
|
+
case GL_SPECULAR:
|
2934
|
+
case GL_POSITION:
|
2935
|
+
size = 4;
|
2936
|
+
break;
|
2937
|
+
case GL_SPOT_DIRECTION:
|
2938
|
+
size = 3;
|
2939
|
+
break;
|
2940
|
+
case GL_CONSTANT_ATTENUATION:
|
2941
|
+
case GL_LINEAR_ATTENUATION:
|
2942
|
+
case GL_QUADRATIC_ATTENUATION:
|
2943
|
+
case GL_SPOT_EXPONENT:
|
2944
|
+
case GL_SPOT_CUTOFF:
|
2945
|
+
size = 1;
|
2946
|
+
break;
|
2947
|
+
default:
|
2948
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
2949
|
+
break; /* not reached */
|
2950
|
+
}
|
2951
|
+
glGetLightiv(light,pname,params);
|
2952
|
+
retary = rb_ary_new2(size);
|
2953
|
+
for(i=0;i<size;i++)
|
2954
|
+
rb_ary_push(retary, INT2FIX(params[i]));
|
2955
|
+
return retary;
|
2956
|
+
}
|
2957
|
+
|
2958
|
+
static VALUE
|
2959
|
+
gl_GetMapdv(obj,arg1,arg2)
|
2960
|
+
VALUE obj,arg1,arg2;
|
2961
|
+
{
|
2962
|
+
GLenum target;
|
2963
|
+
GLenum query;
|
2964
|
+
int dims;
|
2965
|
+
int pointsize;
|
2966
|
+
int size=0;
|
2967
|
+
int i;
|
2968
|
+
GLdouble *points;
|
2969
|
+
VALUE retary;
|
2970
|
+
GLint order[2] = {0,0}; /* for GL_COEFF, [order] or [uorder,vorder] (MAP1/MAP2) */
|
2971
|
+
target = (GLenum)NUM2INT(arg1);
|
2972
|
+
query = (GLenum)NUM2INT(arg2);
|
2973
|
+
switch(target) {
|
2974
|
+
case GL_MAP1_INDEX:
|
2975
|
+
case GL_MAP1_TEXTURE_COORD_1: dims=1; pointsize=1; break;
|
2976
|
+
case GL_MAP1_TEXTURE_COORD_2: dims=1; pointsize=2; break;
|
2977
|
+
case GL_MAP1_VERTEX_3:
|
2978
|
+
case GL_MAP1_NORMAL:
|
2979
|
+
case GL_MAP1_TEXTURE_COORD_3: dims=1; pointsize=3; break;
|
2980
|
+
case GL_MAP1_COLOR_4:
|
2981
|
+
case GL_MAP1_TEXTURE_COORD_4:
|
2982
|
+
case GL_MAP1_VERTEX_4: dims=1; pointsize=4; break;
|
2983
|
+
case GL_MAP2_INDEX:
|
2984
|
+
case GL_MAP2_TEXTURE_COORD_1: dims=2; pointsize=1; break;
|
2985
|
+
case GL_MAP2_TEXTURE_COORD_2: dims=2; pointsize=2; break;
|
2986
|
+
case GL_MAP2_VERTEX_3:
|
2987
|
+
case GL_MAP2_NORMAL:
|
2988
|
+
case GL_MAP2_TEXTURE_COORD_3: dims=2; pointsize=3; break;
|
2989
|
+
case GL_MAP2_COLOR_4:
|
2990
|
+
case GL_MAP2_TEXTURE_COORD_4:
|
2991
|
+
case GL_MAP2_VERTEX_4: dims=2; pointsize=4; break;
|
2992
|
+
default:
|
2993
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
2994
|
+
break; /* not reached */
|
2995
|
+
}
|
2996
|
+
switch(query) {
|
2997
|
+
case GL_ORDER: size = dims; break;
|
2998
|
+
case GL_DOMAIN: size = dims*2; break;
|
2999
|
+
case GL_COEFF:
|
3000
|
+
glGetMapiv(target,GL_ORDER,order);
|
3001
|
+
if (dims==1)
|
3002
|
+
size = order[0] * pointsize;
|
3003
|
+
else
|
3004
|
+
size = (order[0]*order[1]) * pointsize;
|
3005
|
+
break;
|
3006
|
+
default:
|
3007
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
3008
|
+
break; /* not reached */
|
3009
|
+
}
|
3010
|
+
points = ALLOC_N(GLdouble,size);
|
3011
|
+
glGetMapdv(target,query,points);
|
3012
|
+
retary = rb_ary_new2(size);
|
3013
|
+
for(i=0;i<size;i++)
|
3014
|
+
rb_ary_push(retary, rb_float_new(points[i]));
|
3015
|
+
xfree(points);
|
3016
|
+
return retary;
|
3017
|
+
}
|
3018
|
+
|
3019
|
+
static VALUE
|
3020
|
+
gl_GetMapfv(obj,arg1,arg2)
|
3021
|
+
VALUE obj,arg1,arg2;
|
3022
|
+
{
|
3023
|
+
GLenum target;
|
3024
|
+
GLenum query;
|
3025
|
+
int dims;
|
3026
|
+
int pointsize;
|
3027
|
+
int size=0;
|
3028
|
+
int i;
|
3029
|
+
GLfloat *points;
|
3030
|
+
VALUE retary;
|
3031
|
+
GLint order[2] = {0,0}; /* for GL_COEFF, [order] or [uorder,vorder] (MAP1/MAP2) */
|
3032
|
+
target = (GLenum)NUM2INT(arg1);
|
3033
|
+
query = (GLenum)NUM2INT(arg2);
|
3034
|
+
switch(target) {
|
3035
|
+
case GL_MAP1_INDEX:
|
3036
|
+
case GL_MAP1_TEXTURE_COORD_1: dims=1; pointsize=1; break;
|
3037
|
+
case GL_MAP1_TEXTURE_COORD_2: dims=1; pointsize=2; break;
|
3038
|
+
case GL_MAP1_VERTEX_3:
|
3039
|
+
case GL_MAP1_NORMAL:
|
3040
|
+
case GL_MAP1_TEXTURE_COORD_3: dims=1; pointsize=3; break;
|
3041
|
+
case GL_MAP1_COLOR_4:
|
3042
|
+
case GL_MAP1_TEXTURE_COORD_4:
|
3043
|
+
case GL_MAP1_VERTEX_4: dims=1; pointsize=4; break;
|
3044
|
+
case GL_MAP2_INDEX:
|
3045
|
+
case GL_MAP2_TEXTURE_COORD_1: dims=2; pointsize=1; break;
|
3046
|
+
case GL_MAP2_TEXTURE_COORD_2: dims=2; pointsize=2; break;
|
3047
|
+
case GL_MAP2_VERTEX_3:
|
3048
|
+
case GL_MAP2_NORMAL:
|
3049
|
+
case GL_MAP2_TEXTURE_COORD_3: dims=2; pointsize=3; break;
|
3050
|
+
case GL_MAP2_COLOR_4:
|
3051
|
+
case GL_MAP2_TEXTURE_COORD_4:
|
3052
|
+
case GL_MAP2_VERTEX_4: dims=2; pointsize=4; break;
|
3053
|
+
default:
|
3054
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
3055
|
+
break; /* not reached */
|
3056
|
+
}
|
3057
|
+
switch(query) {
|
3058
|
+
case GL_ORDER: size = dims; break;
|
3059
|
+
case GL_DOMAIN: size = dims*2; break;
|
3060
|
+
case GL_COEFF:
|
3061
|
+
glGetMapiv(target,GL_ORDER,order);
|
3062
|
+
if (dims==1)
|
3063
|
+
size = order[0] * pointsize;
|
3064
|
+
else
|
3065
|
+
size = (order[0]*order[1]) * pointsize;
|
3066
|
+
break;
|
3067
|
+
default:
|
3068
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
3069
|
+
break; /* not reached */
|
3070
|
+
}
|
3071
|
+
points = ALLOC_N(GLfloat,size);
|
3072
|
+
glGetMapfv(target,query,points);
|
3073
|
+
retary = rb_ary_new2(size);
|
3074
|
+
for(i=0;i<size;i++)
|
3075
|
+
rb_ary_push(retary, rb_float_new(points[i]));
|
3076
|
+
xfree(points);
|
3077
|
+
return retary;
|
3078
|
+
}
|
3079
|
+
|
3080
|
+
static VALUE
|
3081
|
+
gl_GetMapiv(obj,arg1,arg2)
|
3082
|
+
VALUE obj,arg1,arg2;
|
3083
|
+
{
|
3084
|
+
GLenum target;
|
3085
|
+
GLenum query;
|
3086
|
+
int dims;
|
3087
|
+
int pointsize;
|
3088
|
+
int size=0;
|
3089
|
+
int i;
|
3090
|
+
GLint *points;
|
3091
|
+
VALUE retary;
|
3092
|
+
GLint order[2] = {0,0}; /* for GL_COEFF, [order] or [uorder,vorder] (MAP1/MAP2) */
|
3093
|
+
target = (GLenum)NUM2INT(arg1);
|
3094
|
+
query = (GLenum)NUM2INT(arg2);
|
3095
|
+
switch(target) {
|
3096
|
+
case GL_MAP1_INDEX:
|
3097
|
+
case GL_MAP1_TEXTURE_COORD_1: dims=1; pointsize=1; break;
|
3098
|
+
case GL_MAP1_TEXTURE_COORD_2: dims=1; pointsize=2; break;
|
3099
|
+
case GL_MAP1_VERTEX_3:
|
3100
|
+
case GL_MAP1_NORMAL:
|
3101
|
+
case GL_MAP1_TEXTURE_COORD_3: dims=1; pointsize=3; break;
|
3102
|
+
case GL_MAP1_COLOR_4:
|
3103
|
+
case GL_MAP1_TEXTURE_COORD_4:
|
3104
|
+
case GL_MAP1_VERTEX_4: dims=1; pointsize=4; break;
|
3105
|
+
case GL_MAP2_INDEX:
|
3106
|
+
case GL_MAP2_TEXTURE_COORD_1: dims=2; pointsize=1; break;
|
3107
|
+
case GL_MAP2_TEXTURE_COORD_2: dims=2; pointsize=2; break;
|
3108
|
+
case GL_MAP2_VERTEX_3:
|
3109
|
+
case GL_MAP2_NORMAL:
|
3110
|
+
case GL_MAP2_TEXTURE_COORD_3: dims=2; pointsize=3; break;
|
3111
|
+
case GL_MAP2_COLOR_4:
|
3112
|
+
case GL_MAP2_TEXTURE_COORD_4:
|
3113
|
+
case GL_MAP2_VERTEX_4: dims=2; pointsize=4; break;
|
3114
|
+
default:
|
3115
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
3116
|
+
break; /* not reached */
|
3117
|
+
}
|
3118
|
+
switch(query) {
|
3119
|
+
case GL_ORDER: size = dims; break;
|
3120
|
+
case GL_DOMAIN: size = dims*2; break;
|
3121
|
+
case GL_COEFF:
|
3122
|
+
glGetMapiv(target,GL_ORDER,order);
|
3123
|
+
if (dims==1)
|
3124
|
+
size = order[0] * pointsize;
|
3125
|
+
else
|
3126
|
+
size = (order[0]*order[1]) * pointsize;
|
3127
|
+
break;
|
3128
|
+
default:
|
3129
|
+
rb_raise(rb_eArgError, "unknown target:%d",target);
|
3130
|
+
break; /* not reached */
|
3131
|
+
}
|
3132
|
+
points = ALLOC_N(GLint,size);
|
3133
|
+
glGetMapiv(target,query,points);
|
3134
|
+
retary = rb_ary_new2(size);
|
3135
|
+
for(i=0;i<size;i++)
|
3136
|
+
rb_ary_push(retary, INT2FIX(points[i]));
|
3137
|
+
xfree(points);
|
3138
|
+
return retary;
|
3139
|
+
}
|
3140
|
+
|
3141
|
+
static VALUE
|
3142
|
+
gl_GetMaterialfv(obj,arg1,arg2)
|
3143
|
+
VALUE obj,arg1,arg2;
|
3144
|
+
{
|
3145
|
+
GLenum face;
|
3146
|
+
GLenum pname;
|
3147
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
3148
|
+
int size;
|
3149
|
+
VALUE retary;
|
3150
|
+
int i;
|
3151
|
+
face = (GLenum)NUM2INT(arg1);
|
3152
|
+
pname = (GLenum)NUM2INT(arg2);
|
3153
|
+
switch(pname) {
|
3154
|
+
case GL_AMBIENT:
|
3155
|
+
case GL_DIFFUSE:
|
3156
|
+
case GL_SPECULAR:
|
3157
|
+
case GL_EMISSION:
|
3158
|
+
size = 4;
|
3159
|
+
break;
|
3160
|
+
case GL_COLOR_INDEXES:
|
3161
|
+
size = 3;
|
3162
|
+
break;
|
3163
|
+
case GL_SHININESS:
|
3164
|
+
size = 1;
|
3165
|
+
break;
|
3166
|
+
default:
|
3167
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3168
|
+
break; /* not reached */
|
3169
|
+
}
|
3170
|
+
glGetMaterialfv(face,pname,params);
|
3171
|
+
retary = rb_ary_new2(size);
|
3172
|
+
for(i=0;i<size;i++)
|
3173
|
+
rb_ary_push(retary, rb_ary_new2(params[i]));
|
3174
|
+
return retary;
|
3175
|
+
}
|
3176
|
+
|
3177
|
+
static VALUE
|
3178
|
+
gl_GetMaterialiv(obj,arg1,arg2)
|
3179
|
+
VALUE obj,arg1,arg2;
|
3180
|
+
{
|
3181
|
+
GLenum face;
|
3182
|
+
GLenum pname;
|
3183
|
+
GLint params[4] = {0,0,0,0};
|
3184
|
+
int size;
|
3185
|
+
VALUE retary;
|
3186
|
+
int i;
|
3187
|
+
face = (GLenum)NUM2INT(arg1);
|
3188
|
+
pname = (GLenum)NUM2INT(arg2);
|
3189
|
+
switch(pname) {
|
3190
|
+
case GL_AMBIENT:
|
3191
|
+
case GL_DIFFUSE:
|
3192
|
+
case GL_SPECULAR:
|
3193
|
+
case GL_EMISSION:
|
3194
|
+
size = 4;
|
3195
|
+
break;
|
3196
|
+
case GL_COLOR_INDEXES:
|
3197
|
+
size = 3;
|
3198
|
+
break;
|
3199
|
+
case GL_SHININESS:
|
3200
|
+
size = 1;
|
3201
|
+
break;
|
3202
|
+
default:
|
3203
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3204
|
+
break; /* not reached */
|
3205
|
+
}
|
3206
|
+
glGetMaterialiv(face,pname,params);
|
3207
|
+
retary = rb_ary_new2(size);
|
3208
|
+
for(i=0;i<size;i++)
|
3209
|
+
rb_ary_push(retary, INT2FIX(params[i]));
|
3210
|
+
return retary;
|
3211
|
+
}
|
3212
|
+
|
3213
|
+
static VALUE
|
3214
|
+
gl_GetPixelMapfv(obj,arg1)
|
3215
|
+
VALUE obj,arg1;
|
3216
|
+
{
|
3217
|
+
GLenum map;
|
3218
|
+
GLenum map_size;
|
3219
|
+
GLint size;
|
3220
|
+
GLfloat *values;
|
3221
|
+
VALUE retary;
|
3222
|
+
int i;
|
3223
|
+
map = (GLenum)NUM2INT(arg1);
|
3224
|
+
switch(map) {
|
3225
|
+
case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break;
|
3226
|
+
case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break;
|
3227
|
+
case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break;
|
3228
|
+
case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break;
|
3229
|
+
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break;
|
3230
|
+
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break;
|
3231
|
+
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break;
|
3232
|
+
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break;
|
3233
|
+
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break;
|
3234
|
+
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break;
|
3235
|
+
default:
|
3236
|
+
rb_raise(rb_eArgError, "unknown map:%d",map);
|
3237
|
+
break; /* not reached */
|
3238
|
+
}
|
3239
|
+
glGetIntegerv(map_size,&size);
|
3240
|
+
values = ALLOC_N(GLfloat,size);
|
3241
|
+
glGetPixelMapfv(map,values);
|
3242
|
+
retary = rb_ary_new2(size);
|
3243
|
+
for(i=0;i<size;i++)
|
3244
|
+
rb_ary_push(retary, rb_float_new(values[i]));
|
3245
|
+
xfree(values);
|
3246
|
+
return retary;
|
3247
|
+
}
|
3248
|
+
|
3249
|
+
static VALUE
|
3250
|
+
gl_GetPixelMapuiv(obj,arg1)
|
3251
|
+
VALUE obj,arg1;
|
3252
|
+
{
|
3253
|
+
GLenum map;
|
3254
|
+
GLenum map_size;
|
3255
|
+
GLint size;
|
3256
|
+
GLuint *values;
|
3257
|
+
VALUE retary;
|
3258
|
+
int i;
|
3259
|
+
map = (GLenum)NUM2INT(arg1);
|
3260
|
+
switch(map) {
|
3261
|
+
case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break;
|
3262
|
+
case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break;
|
3263
|
+
case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break;
|
3264
|
+
case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break;
|
3265
|
+
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break;
|
3266
|
+
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break;
|
3267
|
+
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break;
|
3268
|
+
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break;
|
3269
|
+
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break;
|
3270
|
+
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break;
|
3271
|
+
default:
|
3272
|
+
rb_raise(rb_eArgError, "unknown map:%d",map);
|
3273
|
+
break; /* not reached */
|
3274
|
+
}
|
3275
|
+
glGetIntegerv(map_size,&size);
|
3276
|
+
values = ALLOC_N(GLuint,size);
|
3277
|
+
glGetPixelMapuiv(map,values);
|
3278
|
+
retary = rb_ary_new2(size);
|
3279
|
+
for(i=0;i<size;i++)
|
3280
|
+
rb_ary_push(retary, INT2FIX(values[i]));
|
3281
|
+
xfree(values);
|
3282
|
+
return retary;
|
3283
|
+
}
|
3284
|
+
|
3285
|
+
static VALUE
|
3286
|
+
gl_GetPixelMapusv(obj,arg1)
|
3287
|
+
VALUE obj,arg1;
|
3288
|
+
{
|
3289
|
+
GLenum map;
|
3290
|
+
GLenum map_size;
|
3291
|
+
GLint size;
|
3292
|
+
GLushort *values;
|
3293
|
+
VALUE retary;
|
3294
|
+
int i;
|
3295
|
+
map = (GLenum)NUM2INT(arg1);
|
3296
|
+
switch(map) {
|
3297
|
+
case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break;
|
3298
|
+
case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break;
|
3299
|
+
case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break;
|
3300
|
+
case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break;
|
3301
|
+
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break;
|
3302
|
+
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break;
|
3303
|
+
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break;
|
3304
|
+
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break;
|
3305
|
+
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break;
|
3306
|
+
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break;
|
3307
|
+
default:
|
3308
|
+
rb_raise(rb_eArgError, "unknown map:%d",map);
|
3309
|
+
break; /* not reached */
|
3310
|
+
}
|
3311
|
+
glGetIntegerv(map_size,&size);
|
3312
|
+
values = ALLOC_N(GLushort,size);
|
3313
|
+
glGetPixelMapusv(map,values);
|
3314
|
+
retary = rb_ary_new2(size);
|
3315
|
+
for(i=0;i<size;i++)
|
3316
|
+
rb_ary_push(retary, INT2FIX(values[i]));
|
3317
|
+
xfree(values);
|
3318
|
+
return retary;
|
3319
|
+
}
|
3320
|
+
|
3321
|
+
static VALUE
|
3322
|
+
gl_GetPolygonStipple(obj,arg1)
|
3323
|
+
VALUE obj,arg1;
|
3324
|
+
{
|
3325
|
+
GLubyte mask[128];
|
3326
|
+
glGetPolygonStipple(mask);
|
3327
|
+
return rb_str_new((const char*)mask, 128);
|
3328
|
+
}
|
3329
|
+
|
3330
|
+
static VALUE
|
3331
|
+
gl_GetString(obj,arg1)
|
3332
|
+
VALUE obj,arg1;
|
3333
|
+
{
|
3334
|
+
GLenum name;
|
3335
|
+
const GLubyte *ret;
|
3336
|
+
name = (GLenum)NUM2INT(arg1);
|
3337
|
+
ret = glGetString(name);
|
3338
|
+
return rb_str_new2((const char*)ret);
|
3339
|
+
}
|
3340
|
+
|
3341
|
+
static VALUE
|
3342
|
+
gl_GetTexEnvfv(obj,arg1,arg2)
|
3343
|
+
VALUE obj,arg1,arg2;
|
3344
|
+
{
|
3345
|
+
GLenum target;
|
3346
|
+
GLenum pname;
|
3347
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
3348
|
+
int size;
|
3349
|
+
VALUE retary;
|
3350
|
+
int i;
|
3351
|
+
target = (GLenum)NUM2INT(arg1);
|
3352
|
+
pname = (GLenum)NUM2INT(arg2);
|
3353
|
+
switch(pname) {
|
3354
|
+
case GL_TEXTURE_ENV_COLOR:
|
3355
|
+
size = 4;
|
3356
|
+
break;
|
3357
|
+
case GL_TEXTURE_ENV_MODE:
|
3358
|
+
case GL_COORD_REPLACE:
|
3359
|
+
case GL_TEXTURE_LOD_BIAS:
|
3360
|
+
case GL_COMBINE_RGB:
|
3361
|
+
case GL_COMBINE_ALPHA:
|
3362
|
+
case GL_SRC0_RGB:
|
3363
|
+
case GL_SRC1_RGB:
|
3364
|
+
case GL_SRC2_RGB:
|
3365
|
+
case GL_SRC0_ALPHA:
|
3366
|
+
case GL_SRC1_ALPHA:
|
3367
|
+
case GL_SRC2_ALPHA:
|
3368
|
+
case GL_OPERAND0_RGB:
|
3369
|
+
case GL_OPERAND1_RGB:
|
3370
|
+
case GL_OPERAND2_RGB:
|
3371
|
+
case GL_OPERAND0_ALPHA:
|
3372
|
+
case GL_OPERAND1_ALPHA:
|
3373
|
+
case GL_OPERAND2_ALPHA:
|
3374
|
+
case GL_RGB_SCALE:
|
3375
|
+
case GL_ALPHA_SCALE:
|
3376
|
+
size = 1;
|
3377
|
+
break;
|
3378
|
+
default:
|
3379
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3380
|
+
break; /* not reached */
|
3381
|
+
}
|
3382
|
+
glGetTexEnvfv(target,pname,params);
|
3383
|
+
retary = rb_ary_new2(size);
|
3384
|
+
for(i=0;i<size;i++)
|
3385
|
+
rb_ary_push(retary, rb_ary_new2(params[i]));
|
3386
|
+
return retary;
|
3387
|
+
}
|
3388
|
+
|
3389
|
+
static VALUE
|
3390
|
+
gl_GetTexEnviv(obj,arg1,arg2)
|
3391
|
+
VALUE obj,arg1,arg2;
|
3392
|
+
{
|
3393
|
+
GLenum target;
|
3394
|
+
GLenum pname;
|
3395
|
+
GLint params[4] = {0,0,0,0};
|
3396
|
+
int size;
|
3397
|
+
VALUE retary;
|
3398
|
+
int i;
|
3399
|
+
target = (GLenum)NUM2INT(arg1);
|
3400
|
+
pname = (GLenum)NUM2INT(arg2);
|
3401
|
+
switch(pname) {
|
3402
|
+
case GL_TEXTURE_ENV_COLOR:
|
3403
|
+
size = 4;
|
3404
|
+
break;
|
3405
|
+
case GL_TEXTURE_ENV_MODE:
|
3406
|
+
case GL_COORD_REPLACE:
|
3407
|
+
case GL_TEXTURE_LOD_BIAS:
|
3408
|
+
case GL_COMBINE_RGB:
|
3409
|
+
case GL_COMBINE_ALPHA:
|
3410
|
+
case GL_SRC0_RGB:
|
3411
|
+
case GL_SRC1_RGB:
|
3412
|
+
case GL_SRC2_RGB:
|
3413
|
+
case GL_SRC0_ALPHA:
|
3414
|
+
case GL_SRC1_ALPHA:
|
3415
|
+
case GL_SRC2_ALPHA:
|
3416
|
+
case GL_OPERAND0_RGB:
|
3417
|
+
case GL_OPERAND1_RGB:
|
3418
|
+
case GL_OPERAND2_RGB:
|
3419
|
+
case GL_OPERAND0_ALPHA:
|
3420
|
+
case GL_OPERAND1_ALPHA:
|
3421
|
+
case GL_OPERAND2_ALPHA:
|
3422
|
+
case GL_RGB_SCALE:
|
3423
|
+
case GL_ALPHA_SCALE:
|
3424
|
+
size = 1;
|
3425
|
+
break;
|
3426
|
+
default:
|
3427
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3428
|
+
break; /* not reached */
|
3429
|
+
}
|
3430
|
+
glGetTexEnviv(target,pname,params);
|
3431
|
+
retary = rb_ary_new2(size);
|
3432
|
+
for(i=0;i<size;i++)
|
3433
|
+
rb_ary_push(retary, INT2FIX(params[i]));
|
3434
|
+
return retary;
|
3435
|
+
}
|
3436
|
+
|
3437
|
+
static VALUE
|
3438
|
+
gl_GetTexGendv(obj,arg1,arg2)
|
3439
|
+
VALUE obj,arg1,arg2;
|
3440
|
+
{
|
3441
|
+
GLenum coord;
|
3442
|
+
GLenum pname;
|
3443
|
+
GLdouble params[4] = {0.0,0.0,0.0,0.0};
|
3444
|
+
int size;
|
3445
|
+
VALUE retary;
|
3446
|
+
int i;
|
3447
|
+
coord = (GLenum)NUM2INT(arg1);
|
3448
|
+
pname = (GLenum)NUM2INT(arg2);
|
3449
|
+
switch(pname) {
|
3450
|
+
case GL_OBJECT_PLANE:
|
3451
|
+
case GL_EYE_PLANE:
|
3452
|
+
size = 4;
|
3453
|
+
break;
|
3454
|
+
case GL_TEXTURE_GEN_MODE:
|
3455
|
+
size = 1;
|
3456
|
+
break;
|
3457
|
+
default:
|
3458
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3459
|
+
break; /* not reached */
|
3460
|
+
}
|
3461
|
+
glGetTexGendv(coord,pname,params);
|
3462
|
+
retary = rb_ary_new2(size);
|
3463
|
+
for(i=0;i<size;i++)
|
3464
|
+
rb_ary_push(retary, rb_ary_new2(params[i]));
|
3465
|
+
return retary;
|
3466
|
+
}
|
3467
|
+
|
3468
|
+
static VALUE
|
3469
|
+
gl_GetTexGenfv(obj,arg1,arg2)
|
3470
|
+
VALUE obj,arg1,arg2;
|
3471
|
+
{
|
3472
|
+
GLenum coord;
|
3473
|
+
GLenum pname;
|
3474
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
3475
|
+
int size;
|
3476
|
+
VALUE retary;
|
3477
|
+
int i;
|
3478
|
+
coord = (GLenum)NUM2INT(arg1);
|
3479
|
+
pname = (GLenum)NUM2INT(arg2);
|
3480
|
+
switch(pname) {
|
3481
|
+
case GL_OBJECT_PLANE:
|
3482
|
+
case GL_EYE_PLANE:
|
3483
|
+
size = 4;
|
3484
|
+
break;
|
3485
|
+
case GL_TEXTURE_GEN_MODE:
|
3486
|
+
size = 1;
|
3487
|
+
break;
|
3488
|
+
default:
|
3489
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3490
|
+
break; /* not reached */
|
3491
|
+
}
|
3492
|
+
glGetTexGenfv(coord,pname,params);
|
3493
|
+
retary = rb_ary_new2(size);
|
3494
|
+
for(i=0;i<size;i++)
|
3495
|
+
rb_ary_push(retary, rb_ary_new2(params[i]));
|
3496
|
+
return retary;
|
3497
|
+
}
|
3498
|
+
|
3499
|
+
static VALUE
|
3500
|
+
gl_GetTexGeniv(obj,arg1,arg2)
|
3501
|
+
VALUE obj,arg1,arg2;
|
3502
|
+
{
|
3503
|
+
GLenum coord;
|
3504
|
+
GLenum pname;
|
3505
|
+
GLint params[4] = {0,0,0,0};
|
3506
|
+
int size;
|
3507
|
+
VALUE retary;
|
3508
|
+
int i;
|
3509
|
+
coord = (GLenum)NUM2INT(arg1);
|
3510
|
+
pname = (GLenum)NUM2INT(arg2);
|
3511
|
+
switch(pname) {
|
3512
|
+
case GL_OBJECT_PLANE:
|
3513
|
+
case GL_EYE_PLANE:
|
3514
|
+
size = 4;
|
3515
|
+
break;
|
3516
|
+
case GL_TEXTURE_GEN_MODE:
|
3517
|
+
size = 1;
|
3518
|
+
break;
|
3519
|
+
default:
|
3520
|
+
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3521
|
+
break; /* not reached */
|
3522
|
+
}
|
3523
|
+
glGetTexGeniv(coord,pname,params);
|
3524
|
+
retary = rb_ary_new2(size);
|
3525
|
+
for(i=0;i<size;i++)
|
3526
|
+
rb_ary_push(retary, INT2FIX(params[i]));
|
3527
|
+
return retary;
|
3528
|
+
}
|
3529
|
+
|
3530
|
+
/*
|
3531
|
+
static VALUE
|
3532
|
+
gl_GetTexImage(obj,arg1,arg2,arg3,arg4,arg5)
|
3533
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
3534
|
+
{
|
3535
|
+
#warning glGetTexImage not implemented
|
3536
|
+
return Qnil;
|
3537
|
+
}
|
3538
|
+
*/
|
3539
|
+
|
3540
|
+
static VALUE
|
3541
|
+
gl_GetTexParameterfv(obj,arg1,arg2)
|
3542
|
+
VALUE obj,arg1,arg2;
|
3543
|
+
{
|
3544
|
+
GLenum target;
|
3545
|
+
GLenum pname;
|
3546
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
3547
|
+
int size;
|
3548
|
+
VALUE retary;
|
3549
|
+
int i;
|
3550
|
+
target = (GLenum)NUM2INT(arg1);
|
3551
|
+
pname = (GLenum)NUM2INT(arg2);
|
3552
|
+
switch(pname) {
|
3553
|
+
case GL_TEXTURE_BORDER_COLOR:
|
3554
|
+
size = 4;
|
3555
|
+
break;
|
3556
|
+
default:
|
3557
|
+
size = 1;
|
3558
|
+
break;
|
3559
|
+
}
|
3560
|
+
glGetTexParameterfv(target,pname,params);
|
3561
|
+
retary = rb_ary_new2(size);
|
3562
|
+
for(i=0;i<size;i++)
|
3563
|
+
rb_ary_push(retary, rb_float_new(params[i]));
|
3564
|
+
return retary;
|
3565
|
+
}
|
3566
|
+
|
3567
|
+
static VALUE
|
3568
|
+
gl_GetTexParameteriv(obj,arg1,arg2)
|
3569
|
+
VALUE obj,arg1,arg2;
|
3570
|
+
{
|
3571
|
+
GLenum target;
|
3572
|
+
GLenum pname;
|
3573
|
+
GLint params[4] = {0,0,0,0};
|
3574
|
+
int size;
|
3575
|
+
VALUE retary;
|
3576
|
+
int i;
|
3577
|
+
target = (GLenum)NUM2INT(arg1);
|
3578
|
+
pname = (GLenum)NUM2INT(arg2);
|
3579
|
+
switch(pname) {
|
3580
|
+
case GL_TEXTURE_BORDER_COLOR:
|
3581
|
+
size = 4;
|
3582
|
+
break;
|
3583
|
+
default:
|
3584
|
+
size = 1;
|
3585
|
+
break;
|
3586
|
+
}
|
3587
|
+
glGetTexParameteriv(target,pname,params);
|
3588
|
+
retary = rb_ary_new2(size);
|
3589
|
+
for(i=0;i<size;i++)
|
3590
|
+
rb_ary_push(retary, INT2FIX(params[i]));
|
3591
|
+
return retary;
|
3592
|
+
}
|
3593
|
+
|
3594
|
+
static VALUE
|
3595
|
+
gl_GetTexLevelParameterfv(obj,arg1,arg2,arg3)
|
3596
|
+
VALUE obj,arg1,arg2,arg3;
|
3597
|
+
{
|
3598
|
+
GLenum target;
|
3599
|
+
GLint level;
|
3600
|
+
GLenum pname;
|
3601
|
+
GLfloat params;
|
3602
|
+
VALUE retary;
|
3603
|
+
target = (GLenum)NUM2INT(arg1);
|
3604
|
+
level = (GLint)NUM2INT(arg2);
|
3605
|
+
pname = (GLenum)NUM2INT(arg3);
|
3606
|
+
glGetTexLevelParameterfv(target,level,pname,¶ms);
|
3607
|
+
retary = rb_ary_new2(1);
|
3608
|
+
rb_ary_push(retary, rb_float_new(params));
|
3609
|
+
return retary;
|
3610
|
+
}
|
3611
|
+
|
3612
|
+
static VALUE
|
3613
|
+
gl_GetTexLevelParameteriv(obj,arg1,arg2,arg3)
|
3614
|
+
VALUE obj,arg1,arg2,arg3;
|
3615
|
+
{
|
3616
|
+
GLenum target;
|
3617
|
+
GLint level;
|
3618
|
+
GLenum pname;
|
3619
|
+
GLint params;
|
3620
|
+
VALUE retary;
|
3621
|
+
target = (GLenum)NUM2INT(arg1);
|
3622
|
+
level = (GLint)NUM2INT(arg2);
|
3623
|
+
pname = (GLenum)NUM2INT(arg3);
|
3624
|
+
glGetTexLevelParameteriv(target,level,pname,¶ms);
|
3625
|
+
retary = rb_ary_new2(1);
|
3626
|
+
rb_ary_push(retary, INT2FIX(params));
|
3627
|
+
return retary;
|
3628
|
+
}
|
3629
|
+
|
3630
|
+
static VALUE
|
3631
|
+
gl_IsEnabled(obj,arg1)
|
3632
|
+
VALUE obj,arg1;
|
3633
|
+
{
|
3634
|
+
GLenum cap;
|
3635
|
+
GLboolean ret;
|
3636
|
+
cap = (GLenum)NUM2INT(arg1);
|
3637
|
+
ret = glIsEnabled(cap);
|
3638
|
+
return INT2NUM(ret);
|
3639
|
+
}
|
3640
|
+
|
3641
|
+
static VALUE
|
3642
|
+
gl_IsList(obj,arg1)
|
3643
|
+
VALUE obj,arg1;
|
3644
|
+
{
|
3645
|
+
GLuint list;
|
3646
|
+
GLboolean ret;
|
3647
|
+
list = (GLuint)NUM2INT(arg1);
|
3648
|
+
ret = glIsList(list);
|
3649
|
+
return INT2NUM(ret);
|
3650
|
+
}
|
3651
|
+
|
3652
|
+
static VALUE
|
3653
|
+
gl_DepthRange(obj,arg1,arg2)
|
3654
|
+
VALUE obj,arg1,arg2;
|
3655
|
+
{
|
3656
|
+
GLclampd near_val;
|
3657
|
+
GLclampd far_val;
|
3658
|
+
near_val = (GLclampd)NUM2DBL(arg1);
|
3659
|
+
far_val = (GLclampd)NUM2DBL(arg2);
|
3660
|
+
glDepthRange(near_val,far_val);
|
3661
|
+
return Qnil;
|
3662
|
+
}
|
3663
|
+
|
3664
|
+
static VALUE
|
3665
|
+
gl_Frustum(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
3666
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
3667
|
+
{
|
3668
|
+
GLdouble left;
|
3669
|
+
GLdouble right;
|
3670
|
+
GLdouble bottom;
|
3671
|
+
GLdouble top;
|
3672
|
+
GLdouble near_val;
|
3673
|
+
GLdouble far_val;
|
3674
|
+
left = (GLdouble)NUM2DBL(arg1);
|
3675
|
+
right = (GLdouble)NUM2DBL(arg2);
|
3676
|
+
bottom = (GLdouble)NUM2DBL(arg3);
|
3677
|
+
top = (GLdouble)NUM2DBL(arg4);
|
3678
|
+
near_val = (GLdouble)NUM2DBL(arg5);
|
3679
|
+
far_val = (GLdouble)NUM2DBL(arg6);
|
3680
|
+
glFrustum(left,right,bottom,top,near_val,far_val);
|
3681
|
+
return Qnil;
|
3682
|
+
}
|
3683
|
+
|
3684
|
+
static VALUE
|
3685
|
+
gl_LoadIdentity(obj)
|
3686
|
+
VALUE obj;
|
3687
|
+
{
|
3688
|
+
glLoadIdentity();
|
3689
|
+
return Qnil;
|
3690
|
+
}
|
3691
|
+
|
3692
|
+
static VALUE
|
3693
|
+
gl_LoadMatrixf(obj,arg1)
|
3694
|
+
VALUE obj,arg1;
|
3695
|
+
{
|
3696
|
+
GLfloat m[4*4];
|
3697
|
+
ary2cmat4x4flt(arg1, m);
|
3698
|
+
glLoadMatrixf(m);
|
3699
|
+
return Qnil;
|
3700
|
+
}
|
3701
|
+
|
3702
|
+
static VALUE
|
3703
|
+
gl_LoadMatrixd(obj,arg1)
|
3704
|
+
VALUE obj,arg1;
|
3705
|
+
{
|
3706
|
+
GLdouble m[4*4];
|
3707
|
+
ary2cmat4x4dbl(arg1, m);
|
3708
|
+
glLoadMatrixd(m);
|
3709
|
+
return Qnil;
|
3710
|
+
}
|
3711
|
+
|
3712
|
+
static VALUE
|
3713
|
+
gl_MatrixMode(obj,arg1)
|
3714
|
+
VALUE obj,arg1;
|
3715
|
+
{
|
3716
|
+
GLenum mode;
|
3717
|
+
mode = (GLenum)NUM2INT(arg1);
|
3718
|
+
glMatrixMode(mode);
|
3719
|
+
return Qnil;
|
3720
|
+
}
|
3721
|
+
|
3722
|
+
static VALUE
|
3723
|
+
gl_MultMatrixf(obj,arg1)
|
3724
|
+
VALUE obj,arg1;
|
3725
|
+
{
|
3726
|
+
GLfloat m[4*4];
|
3727
|
+
ary2cmat4x4flt(arg1, m);
|
3728
|
+
glMultMatrixf(m);
|
3729
|
+
return Qnil;
|
3730
|
+
}
|
3731
|
+
|
3732
|
+
static VALUE
|
3733
|
+
gl_MultMatrixd(obj,arg1)
|
3734
|
+
VALUE obj,arg1;
|
3735
|
+
{
|
3736
|
+
GLdouble m[4*4];
|
3737
|
+
ary2cmat4x4dbl(arg1, m);
|
3738
|
+
glMultMatrixd(m);
|
3739
|
+
return Qnil;
|
3740
|
+
}
|
3741
|
+
|
3742
|
+
static VALUE
|
3743
|
+
gl_Ortho(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
3744
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
3745
|
+
{
|
3746
|
+
GLdouble left;
|
3747
|
+
GLdouble right;
|
3748
|
+
GLdouble bottom;
|
3749
|
+
GLdouble top;
|
3750
|
+
GLdouble near_val;
|
3751
|
+
GLdouble far_val;
|
3752
|
+
left = (GLdouble)NUM2DBL(arg1);
|
3753
|
+
right = (GLdouble)NUM2DBL(arg2);
|
3754
|
+
bottom = (GLdouble)NUM2DBL(arg3);
|
3755
|
+
top = (GLdouble)NUM2DBL(arg4);
|
3756
|
+
near_val = (GLdouble)NUM2DBL(arg5);
|
3757
|
+
far_val = (GLdouble)NUM2DBL(arg6);
|
3758
|
+
glOrtho(left,right,bottom,top,near_val,far_val);
|
3759
|
+
return Qnil;
|
3760
|
+
}
|
3761
|
+
|
3762
|
+
static VALUE
|
3763
|
+
gl_PopMatrix(obj)
|
3764
|
+
VALUE obj;
|
3765
|
+
{
|
3766
|
+
glPopMatrix();
|
3767
|
+
return Qnil;
|
3768
|
+
}
|
3769
|
+
|
3770
|
+
static VALUE
|
3771
|
+
gl_PushMatrix(obj)
|
3772
|
+
VALUE obj;
|
3773
|
+
{
|
3774
|
+
glPushMatrix();
|
3775
|
+
return Qnil;
|
3776
|
+
}
|
3777
|
+
|
3778
|
+
static VALUE
|
3779
|
+
gl_Rotated(obj,arg1,arg2,arg3,arg4)
|
3780
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
3781
|
+
{
|
3782
|
+
GLdouble angle;
|
3783
|
+
GLdouble x;
|
3784
|
+
GLdouble y;
|
3785
|
+
GLdouble z;
|
3786
|
+
angle = (GLdouble)NUM2DBL(arg1);
|
3787
|
+
x = (GLdouble)NUM2DBL(arg2);
|
3788
|
+
y = (GLdouble)NUM2DBL(arg3);
|
3789
|
+
z = (GLdouble)NUM2DBL(arg4);
|
3790
|
+
glRotated(angle,x,y,z);
|
3791
|
+
return Qnil;
|
3792
|
+
}
|
3793
|
+
|
3794
|
+
static VALUE
|
3795
|
+
gl_Rotatef(obj,arg1,arg2,arg3,arg4)
|
3796
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
3797
|
+
{
|
3798
|
+
GLfloat angle;
|
3799
|
+
GLfloat x;
|
3800
|
+
GLfloat y;
|
3801
|
+
GLfloat z;
|
3802
|
+
angle = (GLfloat)NUM2DBL(arg1);
|
3803
|
+
x = (GLfloat)NUM2DBL(arg2);
|
3804
|
+
y = (GLfloat)NUM2DBL(arg3);
|
3805
|
+
z = (GLfloat)NUM2DBL(arg4);
|
3806
|
+
glRotatef(angle,x,y,z);
|
3807
|
+
return Qnil;
|
3808
|
+
}
|
3809
|
+
|
3810
|
+
static VALUE
|
3811
|
+
gl_Scaled(obj,arg1,arg2,arg3)
|
3812
|
+
VALUE obj,arg1,arg2,arg3;
|
3813
|
+
{
|
3814
|
+
GLdouble x;
|
3815
|
+
GLdouble y;
|
3816
|
+
GLdouble z;
|
3817
|
+
x = (GLdouble)NUM2DBL(arg1);
|
3818
|
+
y = (GLdouble)NUM2DBL(arg2);
|
3819
|
+
z = (GLdouble)NUM2DBL(arg3);
|
3820
|
+
glScaled(x,y,z);
|
3821
|
+
return Qnil;
|
3822
|
+
}
|
3823
|
+
|
3824
|
+
static VALUE
|
3825
|
+
gl_Scalef(obj,arg1,arg2,arg3)
|
3826
|
+
VALUE obj,arg1,arg2,arg3;
|
3827
|
+
{
|
3828
|
+
GLfloat x;
|
3829
|
+
GLfloat y;
|
3830
|
+
GLfloat z;
|
3831
|
+
x = (GLfloat)NUM2DBL(arg1);
|
3832
|
+
y = (GLfloat)NUM2DBL(arg2);
|
3833
|
+
z = (GLfloat)NUM2DBL(arg3);
|
3834
|
+
glScalef(x,y,z);
|
3835
|
+
return Qnil;
|
3836
|
+
}
|
3837
|
+
|
3838
|
+
static VALUE
|
3839
|
+
gl_Translated(obj,arg1,arg2,arg3)
|
3840
|
+
VALUE obj,arg1,arg2,arg3;
|
3841
|
+
{
|
3842
|
+
GLdouble x;
|
3843
|
+
GLdouble y;
|
3844
|
+
GLdouble z;
|
3845
|
+
x = (GLdouble)NUM2DBL(arg1);
|
3846
|
+
y = (GLdouble)NUM2DBL(arg2);
|
3847
|
+
z = (GLdouble)NUM2DBL(arg3);
|
3848
|
+
glTranslated(x,y,z);
|
3849
|
+
return Qnil;
|
3850
|
+
}
|
3851
|
+
|
3852
|
+
static VALUE
|
3853
|
+
gl_Translatef(obj,arg1,arg2,arg3)
|
3854
|
+
VALUE obj,arg1,arg2,arg3;
|
3855
|
+
{
|
3856
|
+
GLfloat x;
|
3857
|
+
GLfloat y;
|
3858
|
+
GLfloat z;
|
3859
|
+
x = (GLfloat)NUM2DBL(arg1);
|
3860
|
+
y = (GLfloat)NUM2DBL(arg2);
|
3861
|
+
z = (GLfloat)NUM2DBL(arg3);
|
3862
|
+
glTranslatef(x,y,z);
|
3863
|
+
return Qnil;
|
3864
|
+
}
|
3865
|
+
|
3866
|
+
static VALUE
|
3867
|
+
gl_Viewport(obj,arg1,arg2,arg3,arg4)
|
3868
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
3869
|
+
{
|
3870
|
+
GLint x;
|
3871
|
+
GLint y;
|
3872
|
+
GLsizei width;
|
3873
|
+
GLsizei height;
|
3874
|
+
x = (GLint)NUM2INT(arg1);
|
3875
|
+
y = (GLint)NUM2INT(arg2);
|
3876
|
+
width = (GLsizei)NUM2INT(arg3);
|
3877
|
+
height = (GLsizei)NUM2INT(arg4);
|
3878
|
+
glViewport(x,y,width,height);
|
3879
|
+
return Qnil;
|
3880
|
+
}
|
3881
|
+
|
3882
|
+
static VALUE
|
3883
|
+
gl_ArrayElement(obj,arg1)
|
3884
|
+
VALUE obj,arg1;
|
3885
|
+
{
|
3886
|
+
GLint i;
|
3887
|
+
i = (GLint)NUM2INT(arg1);
|
3888
|
+
glArrayElement(i);
|
3889
|
+
return Qnil;
|
3890
|
+
}
|
3891
|
+
|
3892
|
+
static VALUE g_Vertex_ptr;
|
3893
|
+
static VALUE g_Normal_ptr;
|
3894
|
+
static VALUE g_Color_ptr;
|
3895
|
+
static VALUE g_Index_ptr;
|
3896
|
+
static VALUE g_TexCoord_ptr;
|
3897
|
+
static VALUE g_EdgeFlag_ptr;
|
3898
|
+
VALUE g_FogCoord_ptr = 0;
|
3899
|
+
VALUE g_SecondaryColor_ptr = 0;
|
3900
|
+
#define POINTER_FUNC(_func_) \
|
3901
|
+
static VALUE \
|
3902
|
+
gl_##_func_##Pointer(obj, arg1, arg2, arg3, arg4) \
|
3903
|
+
VALUE obj, arg1, arg2, arg3, arg4; \
|
3904
|
+
{ \
|
3905
|
+
GLint size; \
|
3906
|
+
GLenum type; \
|
3907
|
+
GLsizei stride; \
|
3908
|
+
size = (GLint)NUM2INT(arg1); \
|
3909
|
+
type = (GLenum)NUM2INT(arg2); \
|
3910
|
+
stride = (GLsizei)NUM2INT(arg3); \
|
3911
|
+
Check_Type(arg4, T_STRING); \
|
3912
|
+
rb_str_freeze(arg4); \
|
3913
|
+
g_##_func_##_ptr = arg4; \
|
3914
|
+
gl##_func_##Pointer(size, type, stride, (const GLvoid*)RSTRING(arg4)->ptr); \
|
3915
|
+
return Qnil; \
|
3916
|
+
}
|
3917
|
+
|
3918
|
+
POINTER_FUNC(Vertex)
|
3919
|
+
POINTER_FUNC(Color)
|
3920
|
+
POINTER_FUNC(TexCoord)
|
3921
|
+
|
3922
|
+
#undef POINTER_FUNC
|
3923
|
+
|
3924
|
+
static VALUE
|
3925
|
+
gl_DisableClientState(obj,arg1)
|
3926
|
+
VALUE obj,arg1;
|
3927
|
+
{
|
3928
|
+
GLenum cap;
|
3929
|
+
cap = (GLenum)NUM2INT(arg1);
|
3930
|
+
glDisableClientState(cap);
|
3931
|
+
return Qnil;
|
3932
|
+
}
|
3933
|
+
|
3934
|
+
static VALUE
|
3935
|
+
gl_DrawArrays(obj,arg1,arg2,arg3)
|
3936
|
+
VALUE obj,arg1,arg2,arg3;
|
3937
|
+
{
|
3938
|
+
GLenum mode;
|
3939
|
+
GLint first;
|
3940
|
+
GLsizei count;
|
3941
|
+
mode = (GLenum)NUM2INT(arg1);
|
3942
|
+
first = (GLint)NUM2INT(arg2);
|
3943
|
+
count = (GLsizei)NUM2INT(arg3);
|
3944
|
+
glDrawArrays(mode,first,count);
|
3945
|
+
return Qnil;
|
3946
|
+
}
|
3947
|
+
|
3948
|
+
static VALUE
|
3949
|
+
gl_DrawElements(obj,arg1,arg2,arg3,arg4)
|
3950
|
+
VALUE obj,arg1,arg2,arg3,arg4;
|
3951
|
+
{
|
3952
|
+
GLenum mode;
|
3953
|
+
GLsizei count;
|
3954
|
+
GLenum type;
|
3955
|
+
mode = (GLenum)NUM2INT(arg1);
|
3956
|
+
count = (GLsizei)NUM2INT(arg2);
|
3957
|
+
type = (GLenum)NUM2INT(arg3);
|
3958
|
+
Check_Type(arg4, T_STRING);
|
3959
|
+
glDrawElements(mode, count, type, (const GLvoid*)RSTRING(arg4)->ptr);
|
3960
|
+
return Qnil;
|
3961
|
+
}
|
3962
|
+
|
3963
|
+
static VALUE
|
3964
|
+
gl_EdgeFlagPointer(obj,arg1,arg2)
|
3965
|
+
VALUE obj,arg1,arg2;
|
3966
|
+
{
|
3967
|
+
GLsizei stride;
|
3968
|
+
stride = (GLsizei)NUM2INT(arg1);
|
3969
|
+
Check_Type(arg2, T_STRING);
|
3970
|
+
rb_str_freeze(arg2);
|
3971
|
+
g_EdgeFlag_ptr = arg2;
|
3972
|
+
glEdgeFlagPointer(stride, (const GLboolean*)RSTRING(arg2)->ptr);
|
3973
|
+
return Qnil;
|
3974
|
+
}
|
3975
|
+
|
3976
|
+
static VALUE
|
3977
|
+
gl_EnableClientState(obj,arg1)
|
3978
|
+
VALUE obj,arg1;
|
3979
|
+
{
|
3980
|
+
GLenum cap;
|
3981
|
+
cap = (GLenum)NUM2INT(arg1);
|
3982
|
+
glEnableClientState(cap);
|
3983
|
+
return Qnil;
|
3984
|
+
}
|
3985
|
+
|
3986
|
+
static VALUE
|
3987
|
+
gl_GetPointerv(obj,arg1,arg2)
|
3988
|
+
VALUE obj,arg1,arg2;
|
3989
|
+
{
|
3990
|
+
GLenum pname;
|
3991
|
+
pname = (GLenum)NUM2INT(arg1);
|
3992
|
+
switch (pname) {
|
3993
|
+
case GL_VERTEX_ARRAY_POINTER:
|
3994
|
+
return g_Vertex_ptr;
|
3995
|
+
case GL_NORMAL_ARRAY_POINTER:
|
3996
|
+
return g_Normal_ptr;
|
3997
|
+
case GL_COLOR_ARRAY_POINTER:
|
3998
|
+
return g_Color_ptr;
|
3999
|
+
case GL_INDEX_ARRAY_POINTER:
|
4000
|
+
return g_Index_ptr;
|
4001
|
+
case GL_TEXTURE_COORD_ARRAY_POINTER:
|
4002
|
+
return g_TexCoord_ptr;
|
4003
|
+
case GL_EDGE_FLAG_ARRAY_POINTER:
|
4004
|
+
return g_EdgeFlag_ptr;
|
4005
|
+
case GL_FOG_COORD_ARRAY_POINTER:
|
4006
|
+
return g_FogCoord_ptr;
|
4007
|
+
case GL_SECONDARY_COLOR_ARRAY_POINTER:
|
4008
|
+
return g_SecondaryColor_ptr;
|
4009
|
+
default:
|
4010
|
+
rb_raise(rb_eArgError, "Invalid pname %d",pname);
|
4011
|
+
break; /* not reached */
|
4012
|
+
}
|
4013
|
+
return Qnil;
|
4014
|
+
}
|
4015
|
+
|
4016
|
+
static VALUE
|
4017
|
+
gl_IndexPointer(obj,arg1,arg2,arg3)
|
4018
|
+
VALUE obj,arg1,arg2,arg3;
|
4019
|
+
{
|
4020
|
+
GLenum type;
|
4021
|
+
GLsizei stride;
|
4022
|
+
type = (GLenum)NUM2INT(arg1);
|
4023
|
+
stride = (GLsizei)NUM2INT(arg2);
|
4024
|
+
Check_Type(arg3, T_STRING);
|
4025
|
+
rb_str_freeze(arg3);
|
4026
|
+
g_Index_ptr = arg3;
|
4027
|
+
glIndexPointer(type, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
4028
|
+
return Qnil;
|
4029
|
+
}
|
4030
|
+
|
4031
|
+
static VALUE
|
4032
|
+
gl_InterleavedArrays(obj,arg1,arg2,arg3)
|
4033
|
+
VALUE obj,arg1,arg2,arg3;
|
4034
|
+
{
|
4035
|
+
GLenum format;
|
4036
|
+
GLsizei stride;
|
4037
|
+
format = (GLenum)NUM2INT(arg1);
|
4038
|
+
stride = (GLsizei)NUM2INT(arg2);
|
4039
|
+
Check_Type(arg3, T_STRING);
|
4040
|
+
glInterleavedArrays(format, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
4041
|
+
return Qnil;
|
4042
|
+
}
|
4043
|
+
|
4044
|
+
static VALUE
|
4045
|
+
gl_NormalPointer(obj,arg1,arg2,arg3)
|
4046
|
+
VALUE obj,arg1,arg2,arg3;
|
4047
|
+
{
|
4048
|
+
GLenum type;
|
4049
|
+
GLsizei stride;
|
4050
|
+
type = (GLenum)NUM2INT(arg1);
|
4051
|
+
stride = (GLsizei)NUM2INT(arg2);
|
4052
|
+
Check_Type(arg3, T_STRING);
|
4053
|
+
rb_str_freeze(arg3);
|
4054
|
+
g_Normal_ptr = arg3;
|
4055
|
+
glNormalPointer(type, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
4056
|
+
return Qnil;
|
4057
|
+
}
|
4058
|
+
|
4059
|
+
static VALUE
|
4060
|
+
gl_PolygonOffset(obj,arg1,arg2)
|
4061
|
+
VALUE obj,arg1,arg2;
|
4062
|
+
{
|
4063
|
+
GLfloat factor;
|
4064
|
+
GLfloat units;
|
4065
|
+
factor = (GLfloat)NUM2DBL(arg1);
|
4066
|
+
units = (GLfloat)NUM2DBL(arg2);
|
4067
|
+
glPolygonOffset(factor,units);
|
4068
|
+
return Qnil;
|
4069
|
+
}
|
4070
|
+
|
4071
|
+
static VALUE
|
4072
|
+
gl_CopyTexImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
4073
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
4074
|
+
{
|
4075
|
+
GLenum target;
|
4076
|
+
GLint level;
|
4077
|
+
GLenum internalformat;
|
4078
|
+
GLint x;
|
4079
|
+
GLint y;
|
4080
|
+
GLsizei width;
|
4081
|
+
GLint border;
|
4082
|
+
target = (GLenum)NUM2INT(arg1);
|
4083
|
+
level = (GLint)NUM2INT(arg2);
|
4084
|
+
internalformat = (GLenum)NUM2INT(arg3);
|
4085
|
+
x = (GLint)NUM2INT(arg4);
|
4086
|
+
y = (GLint)NUM2INT(arg5);
|
4087
|
+
width = (GLsizei)NUM2INT(arg6);
|
4088
|
+
border = (GLint)NUM2INT(arg7);
|
4089
|
+
glCopyTexImage1D(target,level,internalformat,x,y,width,border);
|
4090
|
+
return Qnil;
|
4091
|
+
}
|
4092
|
+
|
4093
|
+
static VALUE
|
4094
|
+
gl_CopyTexImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
|
4095
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
4096
|
+
{
|
4097
|
+
GLenum target;
|
4098
|
+
GLint level;
|
4099
|
+
GLenum internalformat;
|
4100
|
+
GLint x;
|
4101
|
+
GLint y;
|
4102
|
+
GLsizei width;
|
4103
|
+
GLsizei height;
|
4104
|
+
GLint border;
|
4105
|
+
target = (GLenum)NUM2INT(arg1);
|
4106
|
+
level = (GLint)NUM2INT(arg2);
|
4107
|
+
internalformat = (GLenum)NUM2INT(arg3);
|
4108
|
+
x = (GLint)NUM2INT(arg4);
|
4109
|
+
y = (GLint)NUM2INT(arg5);
|
4110
|
+
width = (GLsizei)NUM2INT(arg6);
|
4111
|
+
height = (GLsizei)NUM2INT(arg7);
|
4112
|
+
border = (GLint)NUM2INT(arg8);
|
4113
|
+
glCopyTexImage2D(target,level,internalformat,x,y,width,height,border);
|
4114
|
+
return Qnil;
|
4115
|
+
}
|
4116
|
+
|
4117
|
+
static VALUE
|
4118
|
+
gl_CopyTexSubImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
4119
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
4120
|
+
{
|
4121
|
+
GLenum target;
|
4122
|
+
GLint level;
|
4123
|
+
GLint xoffset;
|
4124
|
+
GLint x;
|
4125
|
+
GLint y;
|
4126
|
+
GLsizei width;
|
4127
|
+
target = (GLenum)NUM2INT(arg1);
|
4128
|
+
level = (GLint)NUM2INT(arg2);
|
4129
|
+
xoffset = (GLint)NUM2INT(arg3);
|
4130
|
+
x = (GLint)NUM2INT(arg4);
|
4131
|
+
y = (GLint)NUM2INT(arg5);
|
4132
|
+
width = (GLsizei)NUM2INT(arg6);
|
4133
|
+
glCopyTexSubImage1D(target,level,xoffset,x,y,width);
|
4134
|
+
return Qnil;
|
4135
|
+
}
|
4136
|
+
|
4137
|
+
static VALUE
|
4138
|
+
gl_CopyTexSubImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
|
4139
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
4140
|
+
{
|
4141
|
+
GLenum target;
|
4142
|
+
GLint level;
|
4143
|
+
GLint xoffset;
|
4144
|
+
GLint yoffset;
|
4145
|
+
GLint x;
|
4146
|
+
GLint y;
|
4147
|
+
GLsizei width;
|
4148
|
+
GLsizei height;
|
4149
|
+
target = (GLenum)NUM2INT(arg1);
|
4150
|
+
level = (GLint)NUM2INT(arg2);
|
4151
|
+
xoffset = (GLint)NUM2INT(arg3);
|
4152
|
+
yoffset = (GLint)NUM2INT(arg4);
|
4153
|
+
x = (GLint)NUM2INT(arg5);
|
4154
|
+
y = (GLint)NUM2INT(arg6);
|
4155
|
+
width = (GLsizei)NUM2INT(arg7);
|
4156
|
+
height = (GLsizei)NUM2INT(arg8);
|
4157
|
+
glCopyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
|
4158
|
+
return Qnil;
|
4159
|
+
}
|
4160
|
+
|
4161
|
+
static VALUE
|
4162
|
+
gl_TexSubImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
4163
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
4164
|
+
{
|
4165
|
+
GLenum target;
|
4166
|
+
GLint level;
|
4167
|
+
GLint xoffset;
|
4168
|
+
GLsizei width;
|
4169
|
+
GLenum format;
|
4170
|
+
GLenum type;
|
4171
|
+
const char *pixels;
|
4172
|
+
int size;
|
4173
|
+
int type_size;
|
4174
|
+
int format_size;
|
4175
|
+
target = (GLenum)NUM2INT(arg1);
|
4176
|
+
level = (GLint)NUM2INT(arg2);
|
4177
|
+
xoffset = (GLint)NUM2INT(arg3);
|
4178
|
+
width = (GLsizei)NUM2INT(arg4);
|
4179
|
+
format = (GLenum)NUM2INT(arg5);
|
4180
|
+
type = (GLenum)NUM2INT(arg6);
|
4181
|
+
if (TYPE(arg7) == T_STRING) {
|
4182
|
+
type_size = gltype_size(type) / 8;
|
4183
|
+
format_size = glformat_size(format);
|
4184
|
+
if (type_size < 0 || format_size == -1)
|
4185
|
+
return Qnil;
|
4186
|
+
size = type_size*format_size*width;
|
4187
|
+
if (RSTRING(arg7)->len < size)
|
4188
|
+
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg7)->len);
|
4189
|
+
pixels = RSTRING(arg7)->ptr;
|
4190
|
+
} else
|
4191
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg7));
|
4192
|
+
glTexSubImage1D(target,level,xoffset,width,format,type,pixels);
|
4193
|
+
return Qnil;
|
4194
|
+
}
|
4195
|
+
|
4196
|
+
static VALUE
|
4197
|
+
gl_TexSubImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
|
4198
|
+
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
4199
|
+
{
|
4200
|
+
GLenum target;
|
4201
|
+
GLint level;
|
4202
|
+
GLint xoffset;
|
4203
|
+
GLint yoffset;
|
4204
|
+
GLsizei width;
|
4205
|
+
GLsizei height;
|
4206
|
+
GLenum format;
|
4207
|
+
GLenum type;
|
4208
|
+
const char *pixels;
|
4209
|
+
int size;
|
4210
|
+
int type_size;
|
4211
|
+
int format_size;
|
4212
|
+
target = (GLenum)NUM2INT(arg1);
|
4213
|
+
level = (GLint)NUM2INT(arg2);
|
4214
|
+
xoffset = (GLint)NUM2INT(arg3);
|
4215
|
+
yoffset = (GLint)NUM2INT(arg4);
|
4216
|
+
width = (GLsizei)NUM2INT(arg5);
|
4217
|
+
height = (GLsizei)NUM2INT(arg6);
|
4218
|
+
format = (GLenum)NUM2INT(arg7);
|
4219
|
+
type = (GLenum)NUM2INT(arg8);
|
4220
|
+
if (TYPE(arg9) == T_STRING) {
|
4221
|
+
type_size = gltype_size(type) / 8;
|
4222
|
+
format_size = glformat_size(format);
|
4223
|
+
if (type_size < 0 || format_size == -1)
|
4224
|
+
return Qnil;
|
4225
|
+
size = type_size*format_size*height*width;
|
4226
|
+
if (RSTRING(arg9)->len < size)
|
4227
|
+
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg9)->len);
|
4228
|
+
pixels = RSTRING(arg9)->ptr;
|
4229
|
+
} else
|
4230
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg9));
|
4231
|
+
glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);
|
4232
|
+
return Qnil;
|
4233
|
+
}
|
4234
|
+
|
4235
|
+
static VALUE
|
4236
|
+
gl_AreTexturesResident(obj,arg1)
|
4237
|
+
VALUE obj,arg1;
|
4238
|
+
{
|
4239
|
+
GLuint *textures;
|
4240
|
+
GLboolean *residences;
|
4241
|
+
GLsizei size;
|
4242
|
+
GLboolean r;
|
4243
|
+
VALUE retary;
|
4244
|
+
int i;
|
4245
|
+
if (TYPE(arg1) != T_ARRAY)
|
4246
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg1));
|
4247
|
+
size = RARRAY(arg1)->len;
|
4248
|
+
textures = ALLOC_N(GLuint,size);
|
4249
|
+
residences = ALLOC_N(GLboolean,size);
|
4250
|
+
ary2cuint(arg1,textures,size);
|
4251
|
+
r = glAreTexturesResident(size,textures,residences);
|
4252
|
+
retary = rb_ary_new2(size);
|
4253
|
+
if (r==GL_TRUE) { /* all are resident */
|
4254
|
+
for(i=0;i<size;i++)
|
4255
|
+
rb_ary_push(retary, INT2FIX(GL_TRUE));
|
4256
|
+
} else {
|
4257
|
+
for(i=0;i<size;i++)
|
4258
|
+
rb_ary_push(retary, INT2FIX(residences[i]));
|
4259
|
+
}
|
4260
|
+
xfree(textures);
|
4261
|
+
xfree(residences);
|
4262
|
+
return retary;
|
4263
|
+
}
|
4264
|
+
|
4265
|
+
static VALUE
|
4266
|
+
gl_BindTexture(obj,arg1,arg2)
|
4267
|
+
VALUE obj,arg1,arg2;
|
4268
|
+
{
|
4269
|
+
GLenum target;
|
4270
|
+
GLuint texture;
|
4271
|
+
target = (GLenum)NUM2INT(arg1);
|
4272
|
+
texture = (GLuint)NUM2INT(arg2);
|
4273
|
+
glBindTexture(target,texture);
|
4274
|
+
return Qnil;
|
4275
|
+
}
|
4276
|
+
|
4277
|
+
static VALUE
|
4278
|
+
gl_DeleteTextures(obj,arg1)
|
4279
|
+
VALUE obj,arg1;
|
4280
|
+
{
|
4281
|
+
GLsizei n;
|
4282
|
+
GLuint *textures;
|
4283
|
+
RArray *ary;
|
4284
|
+
if (TYPE(arg1) != T_ARRAY)
|
4285
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg1));
|
4286
|
+
ary = RARRAY(arg1);
|
4287
|
+
n = ary->len;
|
4288
|
+
textures = ALLOC_N(GLuint,n);
|
4289
|
+
ary2cuint(arg1,textures,n);
|
4290
|
+
glDeleteTextures( n, textures);
|
4291
|
+
xfree(textures);
|
4292
|
+
return Qnil;
|
4293
|
+
}
|
4294
|
+
|
4295
|
+
static VALUE
|
4296
|
+
gl_GenTextures(obj,arg1)
|
4297
|
+
VALUE obj,arg1;
|
4298
|
+
{
|
4299
|
+
GLsizei n;
|
4300
|
+
GLuint *textures;
|
4301
|
+
RArray *ret;
|
4302
|
+
int i;
|
4303
|
+
n = (GLsizei)NUM2INT(arg1);
|
4304
|
+
textures = ALLOC_N(GLuint, n);
|
4305
|
+
glGenTextures(n, textures);
|
4306
|
+
ret = RARRAY(rb_ary_new2(n));
|
4307
|
+
for (i = 0; i < n; i++)
|
4308
|
+
rb_ary_push((VALUE)ret, INT2NUM(textures[i]));
|
4309
|
+
xfree(textures);
|
4310
|
+
return (VALUE)ret;
|
4311
|
+
}
|
4312
|
+
|
4313
|
+
static VALUE
|
4314
|
+
gl_IsTexture(obj,arg1)
|
4315
|
+
VALUE obj,arg1;
|
4316
|
+
{
|
4317
|
+
GLuint texture;
|
4318
|
+
GLboolean ret;
|
4319
|
+
texture = (GLuint)NUM2INT(arg1);
|
4320
|
+
ret = glIsTexture(texture);
|
4321
|
+
return INT2NUM(ret);
|
4322
|
+
}
|
4323
|
+
|
4324
|
+
static VALUE
|
4325
|
+
gl_PrioritizeTextures(obj,arg1,arg2)
|
4326
|
+
VALUE obj,arg1,arg2;
|
4327
|
+
{
|
4328
|
+
GLuint *textures;
|
4329
|
+
GLclampf *priorities;
|
4330
|
+
GLsizei size;
|
4331
|
+
if (TYPE(arg1) != T_ARRAY)
|
4332
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg1));
|
4333
|
+
if (TYPE(arg2) != T_ARRAY)
|
4334
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(arg2));
|
4335
|
+
if ((size = RARRAY(arg1)->len) != RARRAY(arg2)->len)
|
4336
|
+
rb_raise(rb_eArgError, "passed arrays must have the same length");
|
4337
|
+
textures = ALLOC_N(GLuint,size);
|
4338
|
+
priorities = ALLOC_N(GLclampf,size);
|
4339
|
+
ary2cuint(arg1,textures,size);
|
4340
|
+
ary2cflt(arg2,priorities,size);
|
4341
|
+
glPrioritizeTextures(size,textures,priorities);
|
4342
|
+
xfree(textures);
|
4343
|
+
xfree(priorities);
|
4344
|
+
return Qnil;
|
4345
|
+
}
|
4346
|
+
|
4347
|
+
static VALUE
|
4348
|
+
gl_Indexub(obj,arg1)
|
4349
|
+
VALUE obj,arg1;
|
4350
|
+
{
|
4351
|
+
GLubyte c;
|
4352
|
+
c = (GLubyte)NUM2INT(arg1);
|
4353
|
+
glIndexub(c);
|
4354
|
+
return Qnil;
|
4355
|
+
}
|
4356
|
+
|
4357
|
+
static VALUE
|
4358
|
+
gl_Indexubv(obj,arg1)
|
4359
|
+
VALUE obj,arg1;
|
4360
|
+
{
|
4361
|
+
GLubyte c[1] = {0};
|
4362
|
+
if (TYPE(arg1) != T_ARRAY)
|
4363
|
+
rb_raise(rb_eTypeError, "type mismatch:%s",rb_class2name(arg1));
|
4364
|
+
ary2cubyte(arg1,c,1);
|
4365
|
+
glIndexubv(c);
|
4366
|
+
return Qnil;
|
4367
|
+
}
|
4368
|
+
|
4369
|
+
static VALUE
|
4370
|
+
gl_PopClientAttrib(obj)
|
4371
|
+
VALUE obj;
|
4372
|
+
{
|
4373
|
+
glPopClientAttrib();
|
4374
|
+
return Qnil;
|
4375
|
+
}
|
4376
|
+
|
4377
|
+
static VALUE
|
4378
|
+
gl_PushClientAttrib(obj,arg1)
|
4379
|
+
VALUE obj,arg1;
|
4380
|
+
{
|
4381
|
+
GLbitfield mask;
|
4382
|
+
mask = (GLbitfield)NUM2INT(arg1);
|
4383
|
+
glPushClientAttrib(mask);
|
4384
|
+
return Qnil;
|
4385
|
+
}
|
4386
|
+
|
4387
|
+
/* additional functions */
|
4388
|
+
|
4389
|
+
#define GLCOLOR_VFUNC(_type_) \
|
4390
|
+
static VALUE \
|
4391
|
+
gl_Color##_type_##v(argc,argv,obj) \
|
4392
|
+
int argc; \
|
4393
|
+
VALUE *argv; \
|
4394
|
+
VALUE obj; \
|
4395
|
+
{ \
|
4396
|
+
int num; \
|
4397
|
+
VALUE args[4]; \
|
4398
|
+
RArray *ary; \
|
4399
|
+
switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
|
4400
|
+
case 1: \
|
4401
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4402
|
+
ary = RARRAY(args[0]); \
|
4403
|
+
switch (ary->len) { \
|
4404
|
+
case 3: \
|
4405
|
+
gl_Color3##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2]); \
|
4406
|
+
break; \
|
4407
|
+
case 4: \
|
4408
|
+
gl_Color4##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2],ary->ptr[3]); \
|
4409
|
+
break; \
|
4410
|
+
default: \
|
4411
|
+
rb_raise(rb_eArgError, "array length:%d", ary->len); \
|
4412
|
+
} \
|
4413
|
+
} \
|
4414
|
+
else \
|
4415
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4416
|
+
break; \
|
4417
|
+
case 3: \
|
4418
|
+
gl_Color3##_type_(obj,args[0], args[1], args[2]); \
|
4419
|
+
break; \
|
4420
|
+
case 4: \
|
4421
|
+
gl_Color4##_type_(obj,args[0], args[1], args[2], args[3]); \
|
4422
|
+
break; \
|
4423
|
+
default: \
|
4424
|
+
rb_raise(rb_eArgError, "arg length:%d", num); \
|
4425
|
+
} \
|
4426
|
+
return Qnil; \
|
4427
|
+
}
|
4428
|
+
|
4429
|
+
GLCOLOR_VFUNC(b)
|
4430
|
+
GLCOLOR_VFUNC(d)
|
4431
|
+
GLCOLOR_VFUNC(f)
|
4432
|
+
GLCOLOR_VFUNC(i)
|
4433
|
+
GLCOLOR_VFUNC(s)
|
4434
|
+
GLCOLOR_VFUNC(ub)
|
4435
|
+
GLCOLOR_VFUNC(ui)
|
4436
|
+
GLCOLOR_VFUNC(us)
|
4437
|
+
#undef GLCOLOR_VFUNC
|
4438
|
+
|
4439
|
+
#define GLNORMAL_VFUNC(_type_) \
|
4440
|
+
static VALUE \
|
4441
|
+
gl_Normal##_type_##v(argc,argv,obj) \
|
4442
|
+
int argc; \
|
4443
|
+
VALUE *argv; \
|
4444
|
+
VALUE obj; \
|
4445
|
+
{ \
|
4446
|
+
int num; \
|
4447
|
+
VALUE args[3]; \
|
4448
|
+
RArray* ary; \
|
4449
|
+
switch (num = rb_scan_args(argc, argv, "12", &args[0], &args[1], &args[2])) { \
|
4450
|
+
case 1: \
|
4451
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4452
|
+
ary = RARRAY(args[0]); \
|
4453
|
+
switch (ary->len) { \
|
4454
|
+
case 3: \
|
4455
|
+
gl_Normal3##_type_(obj,ary->ptr[0], ary->ptr[1],ary->ptr[2]); \
|
4456
|
+
break; \
|
4457
|
+
default: \
|
4458
|
+
rb_raise(rb_eArgError, "array length:%d", ary->len); \
|
4459
|
+
} \
|
4460
|
+
} \
|
4461
|
+
else \
|
4462
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4463
|
+
break; \
|
4464
|
+
case 3: \
|
4465
|
+
gl_Normal3##_type_(obj,args[0], args[1], args[2]); \
|
4466
|
+
break; \
|
4467
|
+
default: \
|
4468
|
+
rb_raise(rb_eArgError, "arg length:%d",num); \
|
4469
|
+
} \
|
4470
|
+
return Qnil; \
|
4471
|
+
}
|
4472
|
+
|
4473
|
+
GLNORMAL_VFUNC(b)
|
4474
|
+
GLNORMAL_VFUNC(d)
|
4475
|
+
GLNORMAL_VFUNC(f)
|
4476
|
+
GLNORMAL_VFUNC(i)
|
4477
|
+
GLNORMAL_VFUNC(s)
|
4478
|
+
#undef GLNORMAL_VFUNC
|
4479
|
+
|
4480
|
+
#define GLRASTERPOS_VFUNC(_type_) \
|
4481
|
+
static VALUE \
|
4482
|
+
gl_RasterPos##_type_##v(argc,argv,obj) \
|
4483
|
+
int argc; \
|
4484
|
+
VALUE *argv; \
|
4485
|
+
VALUE obj; \
|
4486
|
+
{ \
|
4487
|
+
int num; \
|
4488
|
+
VALUE args[4]; \
|
4489
|
+
RArray *ary; \
|
4490
|
+
switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
|
4491
|
+
case 1: \
|
4492
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4493
|
+
ary = RARRAY(args[0]); \
|
4494
|
+
switch (ary->len) { \
|
4495
|
+
case 2: \
|
4496
|
+
gl_RasterPos2##_type_(obj,ary->ptr[0],ary->ptr[1]); \
|
4497
|
+
break; \
|
4498
|
+
case 3: \
|
4499
|
+
gl_RasterPos3##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2]); \
|
4500
|
+
break; \
|
4501
|
+
case 4: \
|
4502
|
+
gl_RasterPos4##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2],ary->ptr[3]); \
|
4503
|
+
break; \
|
4504
|
+
default: \
|
4505
|
+
rb_raise(rb_eArgError, "array length:%d", num); \
|
4506
|
+
} \
|
4507
|
+
} \
|
4508
|
+
else \
|
4509
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4510
|
+
break; \
|
4511
|
+
case 2: \
|
4512
|
+
gl_RasterPos2##_type_(obj,args[0], args[1]); \
|
4513
|
+
break; \
|
4514
|
+
case 3: \
|
4515
|
+
gl_RasterPos3##_type_(obj,args[0], args[1], args[2]); \
|
4516
|
+
break; \
|
4517
|
+
case 4: \
|
4518
|
+
gl_RasterPos4##_type_(obj,args[0], args[1], args[2], args[3]); \
|
4519
|
+
break; \
|
4520
|
+
default: \
|
4521
|
+
rb_raise(rb_eArgError, "too many arguments"); \
|
4522
|
+
} \
|
4523
|
+
return Qnil; \
|
4524
|
+
}
|
4525
|
+
|
4526
|
+
GLRASTERPOS_VFUNC(d)
|
4527
|
+
GLRASTERPOS_VFUNC(f)
|
4528
|
+
GLRASTERPOS_VFUNC(i)
|
4529
|
+
GLRASTERPOS_VFUNC(s)
|
4530
|
+
#undef GLRASTERPOS_VFUNC
|
4531
|
+
|
4532
|
+
#define GLRECT_VFUNC(_type_) \
|
4533
|
+
static VALUE \
|
4534
|
+
gl_Rect##_type_##v(argc,argv,obj) \
|
4535
|
+
int argc; \
|
4536
|
+
VALUE *argv; \
|
4537
|
+
VALUE obj; \
|
4538
|
+
{ \
|
4539
|
+
int num; \
|
4540
|
+
VALUE args[4]; \
|
4541
|
+
RArray *ary; \
|
4542
|
+
switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
|
4543
|
+
case 1: \
|
4544
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4545
|
+
ary = RARRAY(args[0]); \
|
4546
|
+
switch (ary->len) { \
|
4547
|
+
case 4: \
|
4548
|
+
gl_Rect##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2],ary->ptr[3]); \
|
4549
|
+
break; \
|
4550
|
+
default: \
|
4551
|
+
rb_raise(rb_eArgError, "array length:%d", ary->len); \
|
4552
|
+
} \
|
4553
|
+
} \
|
4554
|
+
else \
|
4555
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4556
|
+
break; \
|
4557
|
+
case 4: \
|
4558
|
+
gl_Rect##_type_(obj,args[0], args[1], args[2], args[3]); \
|
4559
|
+
break; \
|
4560
|
+
default: \
|
4561
|
+
rb_raise(rb_eArgError, "arg length:%d", num); \
|
4562
|
+
} \
|
4563
|
+
return Qnil; \
|
4564
|
+
}
|
4565
|
+
|
4566
|
+
GLRECT_VFUNC(d)
|
4567
|
+
GLRECT_VFUNC(f)
|
4568
|
+
GLRECT_VFUNC(i)
|
4569
|
+
GLRECT_VFUNC(s)
|
4570
|
+
#undef GLRECT_VFUNC
|
4571
|
+
|
4572
|
+
#define GLTEXCOORD_VFUNC(_type_) \
|
4573
|
+
static VALUE \
|
4574
|
+
gl_TexCoord##_type_##v(argc,argv,obj) \
|
4575
|
+
int argc; \
|
4576
|
+
VALUE *argv; \
|
4577
|
+
VALUE obj; \
|
4578
|
+
{ \
|
4579
|
+
int num; \
|
4580
|
+
VALUE args[4]; \
|
4581
|
+
RArray *ary; \
|
4582
|
+
switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
|
4583
|
+
case 1: \
|
4584
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4585
|
+
ary = RARRAY(args[0]); \
|
4586
|
+
switch (ary->len) { \
|
4587
|
+
case 2: \
|
4588
|
+
gl_TexCoord2##_type_(obj,ary->ptr[0],ary->ptr[1]); \
|
4589
|
+
break; \
|
4590
|
+
case 3: \
|
4591
|
+
gl_TexCoord3##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2]); \
|
4592
|
+
break; \
|
4593
|
+
case 4: \
|
4594
|
+
gl_TexCoord4##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2],ary->ptr[3]); \
|
4595
|
+
break; \
|
4596
|
+
default: \
|
4597
|
+
rb_raise(rb_eArgError, "array length:%d", num); \
|
4598
|
+
} \
|
4599
|
+
} \
|
4600
|
+
else \
|
4601
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4602
|
+
break; \
|
4603
|
+
case 2: \
|
4604
|
+
gl_TexCoord2##_type_(obj,args[0], args[1]); \
|
4605
|
+
break; \
|
4606
|
+
case 3: \
|
4607
|
+
gl_TexCoord3##_type_(obj,args[0], args[1], args[2]); \
|
4608
|
+
break; \
|
4609
|
+
case 4: \
|
4610
|
+
gl_TexCoord4##_type_(obj,args[0], args[1], args[2], args[3]); \
|
4611
|
+
break; \
|
4612
|
+
default: \
|
4613
|
+
rb_raise(rb_eArgError, "too many arguments"); \
|
4614
|
+
break; \
|
4615
|
+
} \
|
4616
|
+
return Qnil; \
|
4617
|
+
}
|
4618
|
+
|
4619
|
+
GLTEXCOORD_VFUNC(d)
|
4620
|
+
GLTEXCOORD_VFUNC(f)
|
4621
|
+
GLTEXCOORD_VFUNC(i)
|
4622
|
+
GLTEXCOORD_VFUNC(s)
|
4623
|
+
#undef GLTEXCOORD_VFUNC
|
4624
|
+
|
4625
|
+
#define GLVERTEX_VFUNC(_type_) \
|
4626
|
+
static VALUE \
|
4627
|
+
gl_Vertex##_type_##v(argc,argv,obj) \
|
4628
|
+
int argc; \
|
4629
|
+
VALUE *argv; \
|
4630
|
+
VALUE obj; \
|
4631
|
+
{ \
|
4632
|
+
VALUE args[4]; \
|
4633
|
+
RArray *ary; \
|
4634
|
+
switch (rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
|
4635
|
+
case 1: \
|
4636
|
+
if (TYPE(args[0]) == T_ARRAY) { \
|
4637
|
+
ary = RARRAY(args[0]); \
|
4638
|
+
switch (ary->len) { \
|
4639
|
+
case 2: \
|
4640
|
+
gl_Vertex2##_type_(obj,ary->ptr[0],ary->ptr[1]); \
|
4641
|
+
break; \
|
4642
|
+
case 3: \
|
4643
|
+
gl_Vertex3##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2]); \
|
4644
|
+
break; \
|
4645
|
+
case 4: \
|
4646
|
+
gl_Vertex4##_type_(obj,ary->ptr[0],ary->ptr[1],ary->ptr[2],ary->ptr[3]); \
|
4647
|
+
break; \
|
4648
|
+
default: \
|
4649
|
+
rb_raise(rb_eRuntimeError, "glVertex vertex num error!:%d", ary->len); \
|
4650
|
+
} \
|
4651
|
+
} \
|
4652
|
+
else \
|
4653
|
+
rb_raise(rb_eTypeError, "type mismatch:%s", rb_class2name(CLASS_OF(args[0]))); \
|
4654
|
+
break; \
|
4655
|
+
case 2: \
|
4656
|
+
gl_Vertex2##_type_(obj,args[0], args[1]); \
|
4657
|
+
break; \
|
4658
|
+
case 3: \
|
4659
|
+
gl_Vertex3##_type_(obj,args[0], args[1], args[2]); \
|
4660
|
+
break; \
|
4661
|
+
case 4: \
|
4662
|
+
gl_Vertex4##_type_(obj,args[0], args[1], args[2], args[3]); \
|
4663
|
+
break; \
|
4664
|
+
default: \
|
4665
|
+
rb_raise(rb_eArgError, "too many arguments"); \
|
4666
|
+
break; \
|
4667
|
+
} \
|
4668
|
+
return Qnil; \
|
4669
|
+
}
|
4670
|
+
|
4671
|
+
GLVERTEX_VFUNC(d)
|
4672
|
+
GLVERTEX_VFUNC(f)
|
4673
|
+
GLVERTEX_VFUNC(i)
|
4674
|
+
GLVERTEX_VFUNC(s)
|
4675
|
+
#undef GLVERTEX_VFUNC
|
4676
|
+
|
4677
|
+
/* */
|
4678
|
+
|
4679
|
+
static VALUE
|
4680
|
+
gl_LightModel(obj,arg1,arg2)
|
4681
|
+
VALUE obj,arg1,arg2;
|
4682
|
+
{
|
4683
|
+
if (TYPE(arg2) == T_ARRAY)
|
4684
|
+
gl_LightModelfv(obj,arg1,arg2);
|
4685
|
+
else
|
4686
|
+
gl_LightModelf(obj,arg1,arg2);
|
4687
|
+
|
4688
|
+
return Qnil;
|
4689
|
+
}
|
4690
|
+
|
4691
|
+
static VALUE
|
4692
|
+
gl_Material(obj,arg1,arg2,arg3)
|
4693
|
+
VALUE obj,arg1,arg2,arg3;
|
4694
|
+
{
|
4695
|
+
if (TYPE(arg3) == T_ARRAY)
|
4696
|
+
gl_Materialfv(obj,arg1,arg2,arg3);
|
4697
|
+
else
|
4698
|
+
gl_Materialf(obj,arg1,arg2,arg3);
|
4699
|
+
|
4700
|
+
return Qnil;
|
4701
|
+
}
|
4702
|
+
|
4703
|
+
static VALUE
|
4704
|
+
gl_Fog(obj,arg1,arg2)
|
4705
|
+
VALUE obj,arg1,arg2;
|
4706
|
+
{
|
4707
|
+
if (TYPE(arg2) == T_ARRAY)
|
4708
|
+
gl_Fogfv(obj,arg1,arg2);
|
4709
|
+
else
|
4710
|
+
gl_Fogf(obj,arg1,arg2);
|
4711
|
+
|
4712
|
+
return Qnil;
|
4713
|
+
}
|
4714
|
+
|
4715
|
+
static VALUE
|
4716
|
+
gl_Light(obj,arg1,arg2,arg3)
|
4717
|
+
VALUE obj,arg1,arg2,arg3;
|
4718
|
+
{
|
4719
|
+
if (TYPE(arg3) == T_ARRAY)
|
4720
|
+
gl_Lightfv(obj,arg1,arg2,arg3);
|
4721
|
+
else
|
4722
|
+
gl_Lightf(obj,arg1,arg2,arg3);
|
4723
|
+
|
4724
|
+
return Qnil;
|
4725
|
+
}
|
4726
|
+
|
4727
|
+
static VALUE
|
4728
|
+
gl_TexParameter(obj,arg1,arg2,arg3)
|
4729
|
+
VALUE obj,arg1,arg2,arg3;
|
4730
|
+
{
|
4731
|
+
if (TYPE(arg3) == T_ARRAY)
|
4732
|
+
gl_TexParameterfv(obj,arg1,arg2,arg3);
|
4733
|
+
else
|
4734
|
+
gl_TexParameterf(obj,arg1,arg2,arg3);
|
4735
|
+
|
4736
|
+
return Qnil;
|
4737
|
+
}
|
4738
|
+
|
4739
|
+
static VALUE
|
4740
|
+
gl_TexEnv(obj,arg1,arg2,arg3)
|
4741
|
+
VALUE obj,arg1,arg2,arg3;
|
4742
|
+
{
|
4743
|
+
if (TYPE(arg3) == T_ARRAY)
|
4744
|
+
gl_TexEnvfv(obj,arg1,arg2,arg3);
|
4745
|
+
else
|
4746
|
+
gl_TexEnvf(obj,arg1,arg2,arg3);
|
4747
|
+
|
4748
|
+
return Qnil;
|
4749
|
+
}
|
4750
|
+
|
4751
|
+
static VALUE
|
4752
|
+
gl_TexGen(obj,arg1,arg2,arg3)
|
4753
|
+
VALUE obj,arg1,arg2,arg3;
|
4754
|
+
{
|
4755
|
+
if (TYPE(arg3) == T_ARRAY)
|
4756
|
+
gl_TexGenfv(obj,arg1,arg2,arg3);
|
4757
|
+
else
|
4758
|
+
gl_TexGenf(obj,arg1,arg2,arg3);
|
4759
|
+
|
4760
|
+
return Qnil;
|
4761
|
+
}
|
4762
|
+
|
4763
|
+
/* init */
|
4764
|
+
void gl_init_functions_1_0__1_1(VALUE module)
|
4765
|
+
{
|
4766
|
+
/* OpenGL 1.0 functions */
|
4767
|
+
rb_define_module_function(module, "glNewList", gl_NewList, 2);
|
4768
|
+
rb_define_module_function(module, "glEndList", gl_EndList, 0);
|
4769
|
+
rb_define_module_function(module, "glCallList", gl_CallList, 1);
|
4770
|
+
rb_define_module_function(module, "glCallLists", gl_CallLists, 1);
|
4771
|
+
rb_define_module_function(module, "glDeleteLists", gl_DeleteLists, 2);
|
4772
|
+
rb_define_module_function(module, "glGenLists", gl_GenLists, 1);
|
4773
|
+
rb_define_module_function(module, "glListBase", gl_ListBase, 1);
|
4774
|
+
rb_define_module_function(module, "glBegin", gl_Begin, 1);
|
4775
|
+
rb_define_module_function(module, "glBitmap", gl_Bitmap, 7);
|
4776
|
+
rb_define_module_function(module, "glColor3b", gl_Color3b, 3);
|
4777
|
+
rb_define_module_function(module, "glColor3d", gl_Color3d, 3);
|
4778
|
+
rb_define_module_function(module, "glColor3f", gl_Color3f, 3);
|
4779
|
+
rb_define_module_function(module, "glColor3i", gl_Color3i, 3);
|
4780
|
+
rb_define_module_function(module, "glColor3s", gl_Color3s, 3);
|
4781
|
+
rb_define_module_function(module, "glColor3ub", gl_Color3ub, 3);
|
4782
|
+
rb_define_module_function(module, "glColor3ui", gl_Color3ui, 3);
|
4783
|
+
rb_define_module_function(module, "glColor3us", gl_Color3us, 3);
|
4784
|
+
rb_define_module_function(module, "glColor4b", gl_Color4b, 4);
|
4785
|
+
rb_define_module_function(module, "glColor4d", gl_Color4d, 4);
|
4786
|
+
rb_define_module_function(module, "glColor4f", gl_Color4f, 4);
|
4787
|
+
rb_define_module_function(module, "glColor4i", gl_Color4i, 4);
|
4788
|
+
rb_define_module_function(module, "glColor4s", gl_Color4s, 4);
|
4789
|
+
rb_define_module_function(module, "glColor4ub", gl_Color4ub, 4);
|
4790
|
+
rb_define_module_function(module, "glColor4ui", gl_Color4ui, 4);
|
4791
|
+
rb_define_module_function(module, "glColor4us", gl_Color4us, 4);
|
4792
|
+
rb_define_module_function(module, "glEdgeFlag", gl_EdgeFlag, 1);
|
4793
|
+
rb_define_module_function(module, "glEdgeFlagv", gl_EdgeFlagv, 1);
|
4794
|
+
rb_define_module_function(module, "glEnd", gl_End, 0);
|
4795
|
+
rb_define_module_function(module, "glIndexd", gl_Indexd, 1);
|
4796
|
+
rb_define_module_function(module, "glIndexdv", gl_Indexdv, 1);
|
4797
|
+
rb_define_module_function(module, "glIndexf", gl_Indexf, 1);
|
4798
|
+
rb_define_module_function(module, "glIndexfv", gl_Indexfv, 1);
|
4799
|
+
rb_define_module_function(module, "glIndexi", gl_Indexi, 1);
|
4800
|
+
rb_define_module_function(module, "glIndexiv", gl_Indexiv, 1);
|
4801
|
+
rb_define_module_function(module, "glIndexs", gl_Indexs, 1);
|
4802
|
+
rb_define_module_function(module, "glIndexsv", gl_Indexsv, 1);
|
4803
|
+
rb_define_module_function(module, "glNormal3b", gl_Normal3b, 3);
|
4804
|
+
rb_define_module_function(module, "glNormal3d", gl_Normal3d, 3);
|
4805
|
+
rb_define_module_function(module, "glNormal3f", gl_Normal3f, 3);
|
4806
|
+
rb_define_module_function(module, "glNormal3i", gl_Normal3i, 3);
|
4807
|
+
rb_define_module_function(module, "glNormal3s", gl_Normal3s, 3);
|
4808
|
+
rb_define_module_function(module, "glRasterPos2d", gl_RasterPos2d, 2);
|
4809
|
+
rb_define_module_function(module, "glRasterPos2f", gl_RasterPos2f, 2);
|
4810
|
+
rb_define_module_function(module, "glRasterPos2i", gl_RasterPos2i, 2);
|
4811
|
+
rb_define_module_function(module, "glRasterPos2s", gl_RasterPos2s, 2);
|
4812
|
+
rb_define_module_function(module, "glRasterPos3d", gl_RasterPos3d, 3);
|
4813
|
+
rb_define_module_function(module, "glRasterPos3f", gl_RasterPos3f, 3);
|
4814
|
+
rb_define_module_function(module, "glRasterPos3i", gl_RasterPos3i, 3);
|
4815
|
+
rb_define_module_function(module, "glRasterPos3s", gl_RasterPos3s, 3);
|
4816
|
+
rb_define_module_function(module, "glRasterPos4d", gl_RasterPos4d, 4);
|
4817
|
+
rb_define_module_function(module, "glRasterPos4f", gl_RasterPos4f, 4);
|
4818
|
+
rb_define_module_function(module, "glRasterPos4i", gl_RasterPos4i, 4);
|
4819
|
+
rb_define_module_function(module, "glRasterPos4s", gl_RasterPos4s, 4);
|
4820
|
+
rb_define_module_function(module, "glRectd", gl_Rectd, 4);
|
4821
|
+
rb_define_module_function(module, "glRectf", gl_Rectf, 4);
|
4822
|
+
rb_define_module_function(module, "glRecti", gl_Recti, 4);
|
4823
|
+
rb_define_module_function(module, "glRects", gl_Rects, 4);
|
4824
|
+
rb_define_module_function(module, "glTexCoord1d", gl_TexCoord1d, 1);
|
4825
|
+
rb_define_module_function(module, "glTexCoord1f", gl_TexCoord1f, 1);
|
4826
|
+
rb_define_module_function(module, "glTexCoord1i", gl_TexCoord1i, 1);
|
4827
|
+
rb_define_module_function(module, "glTexCoord1s", gl_TexCoord1s, 1);
|
4828
|
+
rb_define_module_function(module, "glTexCoord2d", gl_TexCoord2d, 2);
|
4829
|
+
rb_define_module_function(module, "glTexCoord2f", gl_TexCoord2f, 2);
|
4830
|
+
rb_define_module_function(module, "glTexCoord2i", gl_TexCoord2i, 2);
|
4831
|
+
rb_define_module_function(module, "glTexCoord2s", gl_TexCoord2s, 2);
|
4832
|
+
rb_define_module_function(module, "glTexCoord3d", gl_TexCoord3d, 3);
|
4833
|
+
rb_define_module_function(module, "glTexCoord3f", gl_TexCoord3f, 3);
|
4834
|
+
rb_define_module_function(module, "glTexCoord3i", gl_TexCoord3i, 3);
|
4835
|
+
rb_define_module_function(module, "glTexCoord3s", gl_TexCoord3s, 3);
|
4836
|
+
rb_define_module_function(module, "glTexCoord4d", gl_TexCoord4d, 4);
|
4837
|
+
rb_define_module_function(module, "glTexCoord4f", gl_TexCoord4f, 4);
|
4838
|
+
rb_define_module_function(module, "glTexCoord4i", gl_TexCoord4i, 4);
|
4839
|
+
rb_define_module_function(module, "glTexCoord4s", gl_TexCoord4s, 4);
|
4840
|
+
rb_define_module_function(module, "glVertex2d", gl_Vertex2d, 2);
|
4841
|
+
rb_define_module_function(module, "glVertex2f", gl_Vertex2f, 2);
|
4842
|
+
rb_define_module_function(module, "glVertex2i", gl_Vertex2i, 2);
|
4843
|
+
rb_define_module_function(module, "glVertex2s", gl_Vertex2s, 2);
|
4844
|
+
rb_define_module_function(module, "glVertex3d", gl_Vertex3d, 3);
|
4845
|
+
rb_define_module_function(module, "glVertex3f", gl_Vertex3f, 3);
|
4846
|
+
rb_define_module_function(module, "glVertex3i", gl_Vertex3i, 3);
|
4847
|
+
rb_define_module_function(module, "glVertex3s", gl_Vertex3s, 3);
|
4848
|
+
rb_define_module_function(module, "glVertex4d", gl_Vertex4d, 4);
|
4849
|
+
rb_define_module_function(module, "glVertex4f", gl_Vertex4f, 4);
|
4850
|
+
rb_define_module_function(module, "glVertex4i", gl_Vertex4i, 4);
|
4851
|
+
rb_define_module_function(module, "glVertex4s", gl_Vertex4s, 4);
|
4852
|
+
rb_define_module_function(module, "glClipPlane", gl_ClipPlane, 2);
|
4853
|
+
rb_define_module_function(module, "glColorMaterial", gl_ColorMaterial, 2);
|
4854
|
+
rb_define_module_function(module, "glCullFace", gl_CullFace, 1);
|
4855
|
+
rb_define_module_function(module, "glFogf", gl_Fogf, 2);
|
4856
|
+
rb_define_module_function(module, "glFogfv", gl_Fogfv, 2);
|
4857
|
+
rb_define_module_function(module, "glFogi", gl_Fogi, 2);
|
4858
|
+
rb_define_module_function(module, "glFogiv", gl_Fogiv, 2);
|
4859
|
+
rb_define_module_function(module, "glFrontFace", gl_FrontFace, 1);
|
4860
|
+
rb_define_module_function(module, "glHint", gl_Hint, 2);
|
4861
|
+
rb_define_module_function(module, "glLightf", gl_Lightf, 3);
|
4862
|
+
rb_define_module_function(module, "glLightfv", gl_Lightfv, 3);
|
4863
|
+
rb_define_module_function(module, "glLighti", gl_Lighti, 3);
|
4864
|
+
rb_define_module_function(module, "glLightiv", gl_Lightiv, 3);
|
4865
|
+
rb_define_module_function(module, "glLightModelf", gl_LightModelf, 2);
|
4866
|
+
rb_define_module_function(module, "glLightModelfv", gl_LightModelfv, 2);
|
4867
|
+
rb_define_module_function(module, "glLightModeli", gl_LightModeli, 2);
|
4868
|
+
rb_define_module_function(module, "glLightModeliv", gl_LightModeliv, 2);
|
4869
|
+
rb_define_module_function(module, "glLineStipple", gl_LineStipple, 2);
|
4870
|
+
rb_define_module_function(module, "glLineWidth", gl_LineWidth, 1);
|
4871
|
+
rb_define_module_function(module, "glMaterialf", gl_Materialf, 3);
|
4872
|
+
rb_define_module_function(module, "glMaterialfv", gl_Materialfv, 3);
|
4873
|
+
rb_define_module_function(module, "glMateriali", gl_Materiali, 3);
|
4874
|
+
rb_define_module_function(module, "glMaterialiv", gl_Materialiv, 3);
|
4875
|
+
rb_define_module_function(module, "glPointSize", gl_PointSize, 1);
|
4876
|
+
rb_define_module_function(module, "glPolygonMode", gl_PolygonMode, 2);
|
4877
|
+
rb_define_module_function(module, "glPolygonStipple", gl_PolygonStipple, 1);
|
4878
|
+
rb_define_module_function(module, "glScissor", gl_Scissor, 4);
|
4879
|
+
rb_define_module_function(module, "glShadeModel", gl_ShadeModel, 1);
|
4880
|
+
rb_define_module_function(module, "glTexParameterf", gl_TexParameterf, 3);
|
4881
|
+
rb_define_module_function(module, "glTexParameterfv", gl_TexParameterfv, 3);
|
4882
|
+
rb_define_module_function(module, "glTexParameteri", gl_TexParameteri, 3);
|
4883
|
+
rb_define_module_function(module, "glTexParameteriv", gl_TexParameteriv, 3);
|
4884
|
+
rb_define_module_function(module, "glTexImage1D", gl_TexImage1D, 8);
|
4885
|
+
rb_define_module_function(module, "glTexImage2D", gl_TexImage2D, 9);
|
4886
|
+
rb_define_module_function(module, "glTexEnvf", gl_TexEnvf, 3);
|
4887
|
+
rb_define_module_function(module, "glTexEnvfv", gl_TexEnvfv, 3);
|
4888
|
+
rb_define_module_function(module, "glTexEnvi", gl_TexEnvi, 3);
|
4889
|
+
rb_define_module_function(module, "glTexEnviv", gl_TexEnviv, 3);
|
4890
|
+
rb_define_module_function(module, "glTexGend", gl_TexGend, 3);
|
4891
|
+
rb_define_module_function(module, "glTexGendv", gl_TexGendv, 3);
|
4892
|
+
rb_define_module_function(module, "glTexGenf", gl_TexGenf, 3);
|
4893
|
+
rb_define_module_function(module, "glTexGenfv", gl_TexGenfv, 3);
|
4894
|
+
rb_define_module_function(module, "glTexGeni", gl_TexGeni, 3);
|
4895
|
+
rb_define_module_function(module, "glTexGeniv", gl_TexGeniv, 3);
|
4896
|
+
rb_define_module_function(module, "glFeedbackBuffer", gl_FeedbackBuffer, -1);
|
4897
|
+
rb_define_module_function(module, "glSelectBuffer", gl_SelectBuffer, -1);
|
4898
|
+
rb_define_module_function(module, "glRenderMode", gl_RenderMode, 1);
|
4899
|
+
rb_define_module_function(module, "glInitNames", gl_InitNames, 0);
|
4900
|
+
rb_define_module_function(module, "glLoadName", gl_LoadName, 1);
|
4901
|
+
rb_define_module_function(module, "glPassThrough", gl_PassThrough, 1);
|
4902
|
+
rb_define_module_function(module, "glPopName", gl_PopName, 0);
|
4903
|
+
rb_define_module_function(module, "glPushName", gl_PushName, 1);
|
4904
|
+
rb_define_module_function(module, "glDrawBuffer", gl_DrawBuffer, 1);
|
4905
|
+
rb_define_module_function(module, "glClear", gl_Clear, 1);
|
4906
|
+
rb_define_module_function(module, "glClearAccum", gl_ClearAccum, 4);
|
4907
|
+
rb_define_module_function(module, "glClearIndex", gl_ClearIndex, 1);
|
4908
|
+
rb_define_module_function(module, "glClearColor", gl_ClearColor, 4);
|
4909
|
+
rb_define_module_function(module, "glClearStencil", gl_ClearStencil, 1);
|
4910
|
+
rb_define_module_function(module, "glClearDepth", gl_ClearDepth, 1);
|
4911
|
+
rb_define_module_function(module, "glStencilMask", gl_StencilMask, 1);
|
4912
|
+
rb_define_module_function(module, "glColorMask", gl_ColorMask, 4);
|
4913
|
+
rb_define_module_function(module, "glDepthMask", gl_DepthMask, 1);
|
4914
|
+
rb_define_module_function(module, "glIndexMask", gl_IndexMask, 1);
|
4915
|
+
rb_define_module_function(module, "glAccum", gl_Accum, 2);
|
4916
|
+
rb_define_module_function(module, "glDisable", gl_Disable, 1);
|
4917
|
+
rb_define_module_function(module, "glEnable", gl_Enable, 1);
|
4918
|
+
rb_define_module_function(module, "glFinish", gl_Finish, 0);
|
4919
|
+
rb_define_module_function(module, "glFlush", gl_Flush, 0);
|
4920
|
+
rb_define_module_function(module, "glPopAttrib", gl_PopAttrib, 0);
|
4921
|
+
rb_define_module_function(module, "glPushAttrib", gl_PushAttrib, 1);
|
4922
|
+
rb_define_module_function(module, "glMap1d", gl_Map1d, 6);
|
4923
|
+
rb_define_module_function(module, "glMap1f", gl_Map1f, 6);
|
4924
|
+
rb_define_module_function(module, "glMap2d", gl_Map2d, 10);
|
4925
|
+
rb_define_module_function(module, "glMap2f", gl_Map2f, 10);
|
4926
|
+
rb_define_module_function(module, "glMapGrid1d", gl_MapGrid1d, 3);
|
4927
|
+
rb_define_module_function(module, "glMapGrid1f", gl_MapGrid1f, 3);
|
4928
|
+
rb_define_module_function(module, "glMapGrid2d", gl_MapGrid2d, 6);
|
4929
|
+
rb_define_module_function(module, "glMapGrid2f", gl_MapGrid2f, 6);
|
4930
|
+
rb_define_module_function(module, "glEvalCoord1d", gl_EvalCoord1d, 1);
|
4931
|
+
rb_define_module_function(module, "glEvalCoord1dv", gl_EvalCoord1dv, 1);
|
4932
|
+
rb_define_module_function(module, "glEvalCoord1f", gl_EvalCoord1f, 1);
|
4933
|
+
rb_define_module_function(module, "glEvalCoord1fv", gl_EvalCoord1fv, 1);
|
4934
|
+
rb_define_module_function(module, "glEvalCoord2d", gl_EvalCoord2d, 2);
|
4935
|
+
rb_define_module_function(module, "glEvalCoord2dv", gl_EvalCoord2dv, 1);
|
4936
|
+
rb_define_module_function(module, "glEvalCoord2f", gl_EvalCoord2f, 2);
|
4937
|
+
rb_define_module_function(module, "glEvalCoord2fv", gl_EvalCoord2fv, 1);
|
4938
|
+
rb_define_module_function(module, "glEvalMesh1", gl_EvalMesh1, 3);
|
4939
|
+
rb_define_module_function(module, "glEvalPoint1", gl_EvalPoint1, 1);
|
4940
|
+
rb_define_module_function(module, "glEvalMesh2", gl_EvalMesh2, 5);
|
4941
|
+
rb_define_module_function(module, "glEvalPoint2", gl_EvalPoint2, 2);
|
4942
|
+
rb_define_module_function(module, "glAlphaFunc", gl_AlphaFunc, 2);
|
4943
|
+
rb_define_module_function(module, "glBlendFunc", gl_BlendFunc, 2);
|
4944
|
+
rb_define_module_function(module, "glLogicOp", gl_LogicOp, 1);
|
4945
|
+
rb_define_module_function(module, "glStencilFunc", gl_StencilFunc, 3);
|
4946
|
+
rb_define_module_function(module, "glStencilOp", gl_StencilOp, 3);
|
4947
|
+
rb_define_module_function(module, "glDepthFunc", gl_DepthFunc, 1);
|
4948
|
+
rb_define_module_function(module, "glPixelZoom", gl_PixelZoom, 2);
|
4949
|
+
rb_define_module_function(module, "glPixelTransferf", gl_PixelTransferf, 2);
|
4950
|
+
rb_define_module_function(module, "glPixelTransferi", gl_PixelTransferi, 2);
|
4951
|
+
rb_define_module_function(module, "glPixelStoref", gl_PixelStoref, 2);
|
4952
|
+
rb_define_module_function(module, "glPixelStorei", gl_PixelStorei, 2);
|
4953
|
+
rb_define_module_function(module, "glPixelMapfv", gl_PixelMapfv, 2);
|
4954
|
+
rb_define_module_function(module, "glPixelMapuiv", gl_PixelMapuiv, 2);
|
4955
|
+
rb_define_module_function(module, "glPixelMapusv", gl_PixelMapusv, 2);
|
4956
|
+
rb_define_module_function(module, "glReadBuffer", gl_ReadBuffer, 1);
|
4957
|
+
rb_define_module_function(module, "glCopyPixels", gl_CopyPixels, 5);
|
4958
|
+
rb_define_module_function(module, "glReadPixels", gl_ReadPixels, 6);
|
4959
|
+
rb_define_module_function(module, "glDrawPixels", gl_DrawPixels, 5);
|
4960
|
+
rb_define_module_function(module, "glGetBooleanv", gl_GetBooleanv, 2);
|
4961
|
+
rb_define_module_function(module, "glGetClipPlane", gl_GetClipPlane, 1);
|
4962
|
+
rb_define_module_function(module, "glGetDoublev", gl_GetDoublev, 1);
|
4963
|
+
rb_define_module_function(module, "glGetError", gl_GetError, 0);
|
4964
|
+
rb_define_module_function(module, "glGetFloatv", gl_GetFloatv, 2);
|
4965
|
+
rb_define_module_function(module, "glGetIntegerv", gl_GetIntegerv, 2);
|
4966
|
+
rb_define_module_function(module, "glGetLightfv", gl_GetLightfv, 2);
|
4967
|
+
rb_define_module_function(module, "glGetLightiv", gl_GetLightiv, 2);
|
4968
|
+
rb_define_module_function(module, "glGetMapdv", gl_GetMapdv, 2);
|
4969
|
+
rb_define_module_function(module, "glGetMapfv", gl_GetMapfv, 2);
|
4970
|
+
rb_define_module_function(module, "glGetMapiv", gl_GetMapiv, 2);
|
4971
|
+
rb_define_module_function(module, "glGetMaterialfv", gl_GetMaterialfv, 2);
|
4972
|
+
rb_define_module_function(module, "glGetMaterialiv", gl_GetMaterialiv, 2);
|
4973
|
+
rb_define_module_function(module, "glGetPixelMapfv", gl_GetPixelMapfv, 1);
|
4974
|
+
rb_define_module_function(module, "glGetPixelMapuiv", gl_GetPixelMapuiv, 1);
|
4975
|
+
rb_define_module_function(module, "glGetPixelMapusv", gl_GetPixelMapusv, 1);
|
4976
|
+
rb_define_module_function(module, "glGetPolygonStipple", gl_GetPolygonStipple, 1);
|
4977
|
+
rb_define_module_function(module, "glGetString", gl_GetString, 1);
|
4978
|
+
rb_define_module_function(module, "glGetTexEnvfv", gl_GetTexEnvfv, 2);
|
4979
|
+
rb_define_module_function(module, "glGetTexEnviv", gl_GetTexEnviv, 2);
|
4980
|
+
rb_define_module_function(module, "glGetTexGendv", gl_GetTexGendv, 2);
|
4981
|
+
rb_define_module_function(module, "glGetTexGenfv", gl_GetTexGenfv, 2);
|
4982
|
+
rb_define_module_function(module, "glGetTexGeniv", gl_GetTexGeniv, 2);
|
4983
|
+
/* rb_define_module_function(module, "glGetTexImage", gl_GetTexImage, 5); */
|
4984
|
+
rb_define_module_function(module, "glGetTexParameterfv", gl_GetTexParameterfv, 2);
|
4985
|
+
rb_define_module_function(module, "glGetTexParameteriv", gl_GetTexParameteriv, 2);
|
4986
|
+
rb_define_module_function(module, "glGetTexLevelParameterfv", gl_GetTexLevelParameterfv, 3);
|
4987
|
+
rb_define_module_function(module, "glGetTexLevelParameteriv", gl_GetTexLevelParameteriv, 3);
|
4988
|
+
rb_define_module_function(module, "glIsEnabled", gl_IsEnabled, 1);
|
4989
|
+
rb_define_module_function(module, "glIsList", gl_IsList, 1);
|
4990
|
+
rb_define_module_function(module, "glDepthRange", gl_DepthRange, 2);
|
4991
|
+
rb_define_module_function(module, "glFrustum", gl_Frustum, 6);
|
4992
|
+
rb_define_module_function(module, "glLoadIdentity", gl_LoadIdentity, 0);
|
4993
|
+
rb_define_module_function(module, "glLoadMatrixf", gl_LoadMatrixf, 1);
|
4994
|
+
rb_define_module_function(module, "glLoadMatrixd", gl_LoadMatrixd, 1);
|
4995
|
+
rb_define_module_function(module, "glMatrixMode", gl_MatrixMode, 1);
|
4996
|
+
rb_define_module_function(module, "glMultMatrixf", gl_MultMatrixf, 1);
|
4997
|
+
rb_define_module_function(module, "glMultMatrixd", gl_MultMatrixd, 1);
|
4998
|
+
rb_define_module_function(module, "glOrtho", gl_Ortho, 6);
|
4999
|
+
rb_define_module_function(module, "glPopMatrix", gl_PopMatrix, 0);
|
5000
|
+
rb_define_module_function(module, "glPushMatrix", gl_PushMatrix, 0);
|
5001
|
+
rb_define_module_function(module, "glRotated", gl_Rotated, 4);
|
5002
|
+
rb_define_module_function(module, "glRotatef", gl_Rotatef, 4);
|
5003
|
+
rb_define_module_function(module, "glScaled", gl_Scaled, 3);
|
5004
|
+
rb_define_module_function(module, "glScalef", gl_Scalef, 3);
|
5005
|
+
rb_define_module_function(module, "glTranslated", gl_Translated, 3);
|
5006
|
+
rb_define_module_function(module, "glTranslatef", gl_Translatef, 3);
|
5007
|
+
rb_define_module_function(module, "glViewport", gl_Viewport, 4);
|
5008
|
+
|
5009
|
+
/* OpenGL 1.1 functions */
|
5010
|
+
rb_define_module_function(module, "glArrayElement", gl_ArrayElement, 1);
|
5011
|
+
rb_define_module_function(module, "glColorPointer", gl_ColorPointer, 4);
|
5012
|
+
rb_define_module_function(module, "glDisableClientState", gl_DisableClientState, 1);
|
5013
|
+
rb_define_module_function(module, "glDrawArrays", gl_DrawArrays, 3);
|
5014
|
+
rb_define_module_function(module, "glDrawElements", gl_DrawElements, 4);
|
5015
|
+
rb_define_module_function(module, "glEdgeFlagPointer", gl_EdgeFlagPointer, 2);
|
5016
|
+
rb_define_module_function(module, "glEnableClientState", gl_EnableClientState, 1);
|
5017
|
+
rb_define_module_function(module, "glGetPointerv", gl_GetPointerv, 2);
|
5018
|
+
rb_define_module_function(module, "glIndexPointer", gl_IndexPointer, 3);
|
5019
|
+
rb_define_module_function(module, "glInterleavedArrays", gl_InterleavedArrays, 3);
|
5020
|
+
rb_define_module_function(module, "glNormalPointer", gl_NormalPointer, 3);
|
5021
|
+
rb_define_module_function(module, "glTexCoordPointer", gl_TexCoordPointer, 4);
|
5022
|
+
rb_define_module_function(module, "glVertexPointer", gl_VertexPointer, 4);
|
5023
|
+
rb_define_module_function(module, "glPolygonOffset", gl_PolygonOffset, 2);
|
5024
|
+
rb_define_module_function(module, "glCopyTexImage1D", gl_CopyTexImage1D, 7);
|
5025
|
+
rb_define_module_function(module, "glCopyTexImage2D", gl_CopyTexImage2D, 8);
|
5026
|
+
rb_define_module_function(module, "glCopyTexSubImage1D", gl_CopyTexSubImage1D, 6);
|
5027
|
+
rb_define_module_function(module, "glCopyTexSubImage2D", gl_CopyTexSubImage2D, 8);
|
5028
|
+
rb_define_module_function(module, "glTexSubImage1D", gl_TexSubImage1D, 7);
|
5029
|
+
rb_define_module_function(module, "glTexSubImage2D", gl_TexSubImage2D, 9);
|
5030
|
+
rb_define_module_function(module, "glAreTexturesResident", gl_AreTexturesResident, 1);
|
5031
|
+
rb_define_module_function(module, "glBindTexture", gl_BindTexture, 2);
|
5032
|
+
rb_define_module_function(module, "glDeleteTextures", gl_DeleteTextures, 1);
|
5033
|
+
rb_define_module_function(module, "glGenTextures", gl_GenTextures, 1);
|
5034
|
+
rb_define_module_function(module, "glIsTexture", gl_IsTexture, 1);
|
5035
|
+
rb_define_module_function(module, "glPrioritizeTextures", gl_PrioritizeTextures, 2);
|
5036
|
+
rb_define_module_function(module, "glIndexub", gl_Indexub, 1);
|
5037
|
+
rb_define_module_function(module, "glIndexubv", gl_Indexubv, 1);
|
5038
|
+
rb_define_module_function(module, "glPopClientAttrib", gl_PopClientAttrib, 0);
|
5039
|
+
rb_define_module_function(module, "glPushClientAttrib", gl_PushClientAttrib, 1);
|
5040
|
+
|
5041
|
+
/* additional functions */
|
5042
|
+
rb_define_module_function(module, "glColor", gl_Colordv, -1);
|
5043
|
+
rb_define_module_function(module, "glColor3bv", gl_Colorbv, -1);
|
5044
|
+
rb_define_module_function(module, "glColor3dv", gl_Colordv, -1);
|
5045
|
+
rb_define_module_function(module, "glColor3fv", gl_Colorfv, -1);
|
5046
|
+
rb_define_module_function(module, "glColor3iv", gl_Coloriv, -1);
|
5047
|
+
rb_define_module_function(module, "glColor3sv", gl_Colorsv, -1);
|
5048
|
+
rb_define_module_function(module, "glColor3ubv", gl_Colorubv, -1);
|
5049
|
+
rb_define_module_function(module, "glColor3uiv", gl_Coloruiv, -1);
|
5050
|
+
rb_define_module_function(module, "glColor3usv", gl_Colorusv, -1);
|
5051
|
+
rb_define_module_function(module, "glColor4bv", gl_Colorbv, -1);
|
5052
|
+
rb_define_module_function(module, "glColor4dv", gl_Colordv, -1);
|
5053
|
+
rb_define_module_function(module, "glColor4fv", gl_Colorfv, -1);
|
5054
|
+
rb_define_module_function(module, "glColor4iv", gl_Coloriv, -1);
|
5055
|
+
rb_define_module_function(module, "glColor4sv", gl_Colorsv, -1);
|
5056
|
+
rb_define_module_function(module, "glColor4ubv", gl_Colorubv, -1);
|
5057
|
+
rb_define_module_function(module, "glColor4uiv", gl_Coloruiv, -1);
|
5058
|
+
rb_define_module_function(module, "glColor4usv", gl_Colorusv, -1);
|
5059
|
+
|
5060
|
+
rb_define_module_function(module, "glNormal", gl_Normaldv, -1);
|
5061
|
+
rb_define_module_function(module, "glNormal3bv", gl_Normalbv, -1);
|
5062
|
+
rb_define_module_function(module, "glNormal3dv", gl_Normaldv, -1);
|
5063
|
+
rb_define_module_function(module, "glNormal3fv", gl_Normalfv, -1);
|
5064
|
+
rb_define_module_function(module, "glNormal3iv", gl_Normaliv, -1);
|
5065
|
+
rb_define_module_function(module, "glNormal3sv", gl_Normalsv, -1);
|
5066
|
+
|
5067
|
+
rb_define_module_function(module, "glRasterPos", gl_RasterPosdv, -1);
|
5068
|
+
rb_define_module_function(module, "glRasterPos2d", gl_RasterPosdv, -1);
|
5069
|
+
rb_define_module_function(module, "glRasterPos2f", gl_RasterPosfv, -1);
|
5070
|
+
rb_define_module_function(module, "glRasterPos2i", gl_RasterPosiv, -1);
|
5071
|
+
rb_define_module_function(module, "glRasterPos2s", gl_RasterPossv, -1);
|
5072
|
+
rb_define_module_function(module, "glRasterPos3d", gl_RasterPosdv, -1);
|
5073
|
+
rb_define_module_function(module, "glRasterPos3f", gl_RasterPosfv, -1);
|
5074
|
+
rb_define_module_function(module, "glRasterPos3i", gl_RasterPosiv, -1);
|
5075
|
+
rb_define_module_function(module, "glRasterPos3s", gl_RasterPossv, -1);
|
5076
|
+
rb_define_module_function(module, "glRasterPos4d", gl_RasterPosdv, -1);
|
5077
|
+
rb_define_module_function(module, "glRasterPos4f", gl_RasterPosfv, -1);
|
5078
|
+
rb_define_module_function(module, "glRasterPos4i", gl_RasterPosiv, -1);
|
5079
|
+
rb_define_module_function(module, "glRasterPos4s", gl_RasterPossv, -1);
|
5080
|
+
|
5081
|
+
rb_define_module_function(module, "glRect", gl_Rectdv, -1);
|
5082
|
+
rb_define_module_function(module, "glRectdv", gl_Rectdv, -1);
|
5083
|
+
rb_define_module_function(module, "glRectfv", gl_Rectfv, -1);
|
5084
|
+
rb_define_module_function(module, "glRectiv", gl_Rectiv, -1);
|
5085
|
+
rb_define_module_function(module, "glRectsv", gl_Rectsv, -1);
|
5086
|
+
|
5087
|
+
rb_define_module_function(module, "glTexCoord", gl_TexCoorddv, -1);
|
5088
|
+
rb_define_module_function(module, "glTexCoord1dv", gl_TexCoorddv, -1);
|
5089
|
+
rb_define_module_function(module, "glTexCoord1fv", gl_TexCoordfv, -1);
|
5090
|
+
rb_define_module_function(module, "glTexCoord1iv", gl_TexCoordiv, -1);
|
5091
|
+
rb_define_module_function(module, "glTexCoord1sv", gl_TexCoordsv, -1);
|
5092
|
+
rb_define_module_function(module, "glTexCoord2dv", gl_TexCoorddv, -1);
|
5093
|
+
rb_define_module_function(module, "glTexCoord2fv", gl_TexCoordfv, -1);
|
5094
|
+
rb_define_module_function(module, "glTexCoord2iv", gl_TexCoordiv, -1);
|
5095
|
+
rb_define_module_function(module, "glTexCoord2sv", gl_TexCoordsv, -1);
|
5096
|
+
rb_define_module_function(module, "glTexCoord3dv", gl_TexCoorddv, -1);
|
5097
|
+
rb_define_module_function(module, "glTexCoord3fv", gl_TexCoordfv, -1);
|
5098
|
+
rb_define_module_function(module, "glTexCoord3iv", gl_TexCoordiv, -1);
|
5099
|
+
rb_define_module_function(module, "glTexCoord3sv", gl_TexCoordsv, -1);
|
5100
|
+
rb_define_module_function(module, "glTexCoord4dv", gl_TexCoorddv, -1);
|
5101
|
+
rb_define_module_function(module, "glTexCoord4fv", gl_TexCoordfv, -1);
|
5102
|
+
rb_define_module_function(module, "glTexCoord4iv", gl_TexCoordiv, -1);
|
5103
|
+
rb_define_module_function(module, "glTexCoord4sv", gl_TexCoordsv, -1);
|
5104
|
+
|
5105
|
+
rb_define_module_function(module, "glVertex", gl_Vertexdv, -1);
|
5106
|
+
rb_define_module_function(module, "glVertex2dv", gl_Vertexdv, -1);
|
5107
|
+
rb_define_module_function(module, "glVertex2fv", gl_Vertexfv, -1);
|
5108
|
+
rb_define_module_function(module, "glVertex2iv", gl_Vertexiv, -1);
|
5109
|
+
rb_define_module_function(module, "glVertex2sv", gl_Vertexsv, -1);
|
5110
|
+
rb_define_module_function(module, "glVertex3dv", gl_Vertexdv, -1);
|
5111
|
+
rb_define_module_function(module, "glVertex3fv", gl_Vertexfv, -1);
|
5112
|
+
rb_define_module_function(module, "glVertex3iv", gl_Vertexiv, -1);
|
5113
|
+
rb_define_module_function(module, "glVertex3sv", gl_Vertexsv, -1);
|
5114
|
+
rb_define_module_function(module, "glVertex4dv", gl_Vertexdv, -1);
|
5115
|
+
rb_define_module_function(module, "glVertex4fv", gl_Vertexfv, -1);
|
5116
|
+
rb_define_module_function(module, "glVertex4iv", gl_Vertexiv, -1);
|
5117
|
+
rb_define_module_function(module, "glVertex4sv", gl_Vertexsv, -1);
|
5118
|
+
|
5119
|
+
/* these simply calls normal or vector (*v) function depending on
|
5120
|
+
if array or single value is passed to them */
|
5121
|
+
rb_define_module_function(module, "glLightModel", gl_LightModel, 2);
|
5122
|
+
rb_define_module_function(module, "glMaterial", gl_Material, 3);
|
5123
|
+
rb_define_module_function(module, "glFog", gl_Fog, 2);
|
5124
|
+
rb_define_module_function(module, "glLight", gl_Light, 3);
|
5125
|
+
rb_define_module_function(module, "glTexParameter", gl_TexParameter, 3);
|
5126
|
+
rb_define_module_function(module, "glTexEnv", gl_TexEnv, 3);
|
5127
|
+
rb_define_module_function(module, "glTexGen", gl_TexGen, 3);
|
5128
|
+
|
5129
|
+
/* aliases */
|
5130
|
+
rb_define_module_function(module, "glMultMatrix", gl_MultMatrixd, 1);
|
5131
|
+
rb_define_module_function(module, "glLoadMatrix", gl_LoadMatrixd, 1);
|
5132
|
+
rb_define_module_function(module, "glRotate", gl_Rotated, 4);
|
5133
|
+
rb_define_module_function(module, "glScale", gl_Scaled, 3);
|
5134
|
+
rb_define_module_function(module, "glTranslate", gl_Translated, 3);
|
5135
|
+
|
5136
|
+
rb_define_module_function(module, "glPixelStore", gl_PixelStoref, 2);
|
5137
|
+
rb_define_module_function(module, "glPixelTransfer", gl_PixelTransferf, 2);
|
5138
|
+
rb_define_module_function(module, "glIndex", gl_Indexi, 1);
|
5139
|
+
rb_define_module_function(module, "glGetMaterial", gl_GetMaterialfv, 2);
|
5140
|
+
rb_define_module_function(module, "glGetDouble", gl_GetDoublev, 1);
|
5141
|
+
|
5142
|
+
rb_global_variable(&g_current_sel_buffer);
|
5143
|
+
rb_global_variable(&g_current_feed_buffer);
|
5144
|
+
rb_global_variable(&g_Vertex_ptr);
|
5145
|
+
rb_global_variable(&g_Normal_ptr);
|
5146
|
+
rb_global_variable(&g_Color_ptr);
|
5147
|
+
rb_global_variable(&g_Index_ptr);
|
5148
|
+
rb_global_variable(&g_TexCoord_ptr);
|
5149
|
+
rb_global_variable(&g_EdgeFlag_ptr);
|
5150
|
+
rb_global_variable(&g_FogCoord_ptr);
|
5151
|
+
rb_global_variable(&g_SecondaryColor_ptr);
|
5152
|
+
}
|