ruby-opengl 0.40.1 → 0.50.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 +2 -2
- data/doc/build_install.txt +48 -28
- data/doc/extensions.txt +361 -0
- data/doc/history.txt +8 -2
- data/doc/requirements_and_design.txt +0 -13
- data/doc/roadmap.txt +11 -13
- data/doc/supplies/page_template.html +11 -5
- data/doc/thanks.txt +2 -4
- data/doc/tutorial.txt +1 -4
- data/examples/{nehe_lesson02.rb → NeHe/nehe_lesson02.rb} +0 -0
- data/examples/{nehe_lesson03.rb → NeHe/nehe_lesson03.rb} +0 -0
- data/examples/{nehe_lesson04.rb → NeHe/nehe_lesson04.rb} +0 -0
- data/examples/{nehe_lesson05.rb → NeHe/nehe_lesson05.rb} +0 -0
- data/examples/NeHe/nehe_lesson36.rb +303 -0
- data/examples/OrangeBook/3Dlabs-License.txt +33 -0
- data/examples/OrangeBook/brick.frag +36 -0
- data/examples/OrangeBook/brick.rb +388 -0
- data/examples/OrangeBook/brick.vert +41 -0
- data/examples/OrangeBook/particle.frag +17 -0
- data/examples/OrangeBook/particle.rb +424 -0
- data/examples/OrangeBook/particle.vert +38 -0
- data/examples/README +13 -83
- data/examples/RedBook/aaindex.rb +97 -0
- data/examples/RedBook/aapoly.rb +142 -0
- data/examples/RedBook/aargb.rb +119 -0
- data/examples/RedBook/accanti.rb +162 -0
- data/examples/RedBook/accpersp.rb +215 -0
- data/examples/RedBook/alpha.rb +123 -0
- data/examples/RedBook/alpha3D.rb +158 -0
- data/examples/RedBook/bezcurve.rb +105 -0
- data/examples/RedBook/bezmesh.rb +137 -0
- data/examples/RedBook/checker.rb +124 -0
- data/examples/RedBook/clip.rb +95 -0
- data/examples/RedBook/colormat.rb +135 -0
- data/examples/RedBook/cube.rb +69 -0
- data/examples/RedBook/depthcue.rb +99 -0
- data/examples/RedBook/dof.rb +205 -0
- data/examples/{legacy → RedBook}/double.rb +59 -58
- data/examples/{legacy → RedBook}/drawf.rb +47 -54
- data/examples/RedBook/feedback.rb +145 -0
- data/examples/RedBook/fog.rb +167 -0
- data/examples/RedBook/font.rb +151 -0
- data/examples/RedBook/hello.rb +79 -0
- data/examples/RedBook/image.rb +137 -0
- data/examples/{legacy → RedBook}/jitter.rb +60 -62
- data/examples/RedBook/lines.rb +128 -0
- data/examples/RedBook/list.rb +111 -0
- data/examples/RedBook/material.rb +275 -0
- data/examples/RedBook/mipmap.rb +156 -0
- data/examples/{legacy → RedBook}/model.rb +66 -72
- data/examples/{legacy → RedBook}/movelight.rb +67 -75
- data/examples/RedBook/pickdepth.rb +179 -0
- data/examples/{legacy → RedBook}/planet.rb +62 -66
- data/examples/RedBook/quadric.rb +158 -0
- data/examples/RedBook/robot.rb +115 -0
- data/examples/RedBook/select.rb +196 -0
- data/examples/RedBook/smooth.rb +95 -0
- data/examples/RedBook/stencil.rb +163 -0
- data/examples/RedBook/stroke.rb +167 -0
- data/examples/RedBook/surface.rb +166 -0
- data/examples/RedBook/teaambient.rb +132 -0
- data/examples/RedBook/teapots.rb +182 -0
- data/examples/RedBook/tess.rb +183 -0
- data/examples/RedBook/texbind.rb +147 -0
- data/examples/RedBook/texgen.rb +169 -0
- data/examples/RedBook/texturesurf.rb +128 -0
- data/examples/RedBook/varray.rb +159 -0
- data/examples/RedBook/wrap.rb +148 -0
- data/examples/misc/anisotropic.rb +194 -0
- data/examples/misc/font-glut.rb +46 -0
- data/examples/{plane.rb → misc/plane.rb} +0 -0
- data/examples/misc/readpixel.rb +65 -0
- data/examples/{smooth.rb → misc/smooth.rb} +0 -0
- data/examples/{test.rb → misc/test.rb} +0 -0
- data/ext/common/common.h +252 -70
- data/ext/common/gl-enums.h +6102 -7334
- data/ext/common/gl-types.h +47 -0
- data/ext/common/glu-enums.h +469 -0
- data/ext/gl/gl-1.0-1.1.c +842 -2464
- data/ext/gl/gl-1.2.c +217 -281
- data/ext/gl/gl-1.3.c +113 -133
- data/ext/gl/gl-1.4.c +98 -334
- data/ext/gl/gl-1.5.c +28 -34
- data/ext/gl/gl-2.0.c +26 -235
- data/ext/gl/gl-2.1.c +31 -124
- data/ext/gl/gl-enums.c +786 -631
- data/ext/gl/gl-ext-arb.c +66 -0
- data/ext/gl/gl-ext-ext.c +218 -0
- data/ext/gl/gl.c +138 -31
- data/ext/gl/mkrf_conf.rb +1 -0
- data/ext/glu/glu-enums.c +163 -0
- data/ext/glu/glu.c +1003 -1205
- data/ext/glu/mkrf_conf.rb +1 -0
- data/ext/glut/glut.c +1056 -1175
- data/lib/opengl.rb +90 -3
- data/test/tc_common.rb +26 -13
- data/test/tc_ext_arb.rb +73 -0
- data/test/tc_ext_ext.rb +74 -0
- data/test/tc_func_12.rb +8 -8
- data/test/tc_func_13.rb +17 -11
- data/test/tc_func_14.rb +8 -8
- data/test/tc_func_15.rb +190 -2
- data/test/tc_func_20.rb +36 -10
- data/test/tc_func_21.rb +445 -2
- data/test/tc_glu.rb +305 -0
- data/test/tc_misc.rb +1 -0
- metadata +84 -68
- data/doc/screenshots.txt +0 -23
- data/examples/legacy/COPYRIGHT +0 -8
- data/examples/legacy/aaindex.rb +0 -98
- data/examples/legacy/aapoly.rb +0 -153
- data/examples/legacy/aargb.rb +0 -139
- data/examples/legacy/accanti.rb +0 -159
- data/examples/legacy/accpersp.rb +0 -216
- data/examples/legacy/alpha.rb +0 -133
- data/examples/legacy/alpha3D.rb +0 -165
- data/examples/legacy/bezcurve.rb +0 -107
- data/examples/legacy/bezmesh.rb +0 -131
- data/examples/legacy/checker.rb +0 -121
- data/examples/legacy/clip.rb +0 -104
- data/examples/legacy/colormat.rb +0 -145
- data/examples/legacy/cube.rb +0 -73
- data/examples/legacy/depthcue.rb +0 -101
- data/examples/legacy/dof.rb +0 -212
- data/examples/legacy/feedback.rb +0 -152
- data/examples/legacy/fog.rb +0 -172
- data/examples/legacy/font-glut.rb +0 -41
- data/examples/legacy/font.rb +0 -158
- data/examples/legacy/hello.rb +0 -75
- data/examples/legacy/image.rb +0 -145
- data/examples/legacy/lines.rb +0 -135
- data/examples/legacy/list.rb +0 -120
- data/examples/legacy/material.rb +0 -290
- data/examples/legacy/mipmap.rb +0 -159
- data/examples/legacy/pickdepth.rb +0 -180
- data/examples/legacy/quadric.rb +0 -180
- data/examples/legacy/readpixel.rb +0 -59
- data/examples/legacy/robot.rb +0 -120
- data/examples/legacy/select.rb +0 -207
- data/examples/legacy/smooth.rb +0 -41
- data/examples/legacy/stencil.rb +0 -154
- data/examples/legacy/stroke.rb +0 -170
- data/examples/legacy/surface.rb +0 -170
- data/examples/legacy/teaambient.rb +0 -132
- data/examples/legacy/teapots.rb +0 -188
- data/examples/legacy/tess.rb +0 -222
- data/examples/legacy/texbind.rb +0 -157
- data/examples/legacy/texgen.rb +0 -171
- data/examples/legacy/texturesurf.rb +0 -128
- data/examples/legacy/varray.rb +0 -167
- data/examples/legacy/wrap.rb +0 -158
- data/lib/gl_prev.rb +0 -46
- data/lib/glu_prev.rb +0 -46
- data/lib/glut_prev.rb +0 -45
data/ext/gl/gl-1.0-1.1.c
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* Copyright (C) 1999 - 2005 Yoshi <yoshi@giganet.net>
|
3
3
|
* Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
|
4
|
+
* Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
|
4
5
|
*
|
5
6
|
* This program is distributed under the terms of the MIT license.
|
6
7
|
* See the included MIT-LICENSE file for the terms of this license.
|
@@ -14,14 +15,6 @@
|
|
14
15
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
15
16
|
*/
|
16
17
|
|
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
18
|
#include "../common/common.h"
|
26
19
|
|
27
20
|
#ifndef MAX
|
@@ -30,6 +23,147 @@
|
|
30
23
|
|
31
24
|
/* OpenGL 1.0 + 1.1 functions */
|
32
25
|
|
26
|
+
/* simple functions - see common.h */
|
27
|
+
GL_SIMPLE_FUNC(ArrayElement,1,GLint,NUM2INT)
|
28
|
+
GL_SIMPLE_FUNC(Begin,1,GLenum,NUM2INT)
|
29
|
+
GL_SIMPLE_FUNC(BlendFunc,2,GLenum,NUM2INT)
|
30
|
+
GL_SIMPLE_FUNC(CallList,1,GLuint,NUM2UINT)
|
31
|
+
GL_SIMPLE_FUNC(Clear,1,GLbitfield,NUM2UINT)
|
32
|
+
GL_SIMPLE_FUNC(ClearAccum,4,GLfloat,NUM2DBL)
|
33
|
+
GL_SIMPLE_FUNC(ClearColor,4,GLfloat,NUM2DBL)
|
34
|
+
GL_SIMPLE_FUNC(ClearDepth,1,GLclampd,NUM2DBL)
|
35
|
+
GL_SIMPLE_FUNC(ClearIndex,1,GLfloat,NUM2DBL)
|
36
|
+
GL_SIMPLE_FUNC(ClearStencil,1,GLint,NUM2INT)
|
37
|
+
GL_SIMPLE_FUNC(Color3b,3,GLbyte,NUM2INT)
|
38
|
+
GL_SIMPLE_FUNC(Color3d,3,GLdouble,NUM2DBL)
|
39
|
+
GL_SIMPLE_FUNC(Color3f,3,GLfloat,NUM2DBL)
|
40
|
+
GL_SIMPLE_FUNC(Color3i,3,GLint,NUM2INT)
|
41
|
+
GL_SIMPLE_FUNC(Color3s,3,GLshort,NUM2INT)
|
42
|
+
GL_SIMPLE_FUNC(Color3ub,3,GLubyte,NUM2INT)
|
43
|
+
GL_SIMPLE_FUNC(Color3ui,3,GLuint,NUM2UINT)
|
44
|
+
GL_SIMPLE_FUNC(Color3us,3,GLushort,NUM2INT)
|
45
|
+
GL_SIMPLE_FUNC(Color4b,4,GLbyte,NUM2INT)
|
46
|
+
GL_SIMPLE_FUNC(Color4d,4,GLdouble,NUM2DBL)
|
47
|
+
GL_SIMPLE_FUNC(Color4f,4,GLfloat,NUM2DBL)
|
48
|
+
GL_SIMPLE_FUNC(Color4i,4,GLint,NUM2INT)
|
49
|
+
GL_SIMPLE_FUNC(Color4s,4,GLshort,NUM2INT)
|
50
|
+
GL_SIMPLE_FUNC(Color4ub,4,GLubyte,NUM2INT)
|
51
|
+
GL_SIMPLE_FUNC(Color4ui,4,GLuint,NUM2UINT)
|
52
|
+
GL_SIMPLE_FUNC(Color4us,4,GLushort,NUM2INT)
|
53
|
+
GL_SIMPLE_FUNC(ColorMask,4,GLboolean,NUM2INT)
|
54
|
+
GL_SIMPLE_FUNC(ColorMaterial,2,GLenum,NUM2INT)
|
55
|
+
GL_SIMPLE_FUNC(CullFace,1,GLenum,NUM2INT)
|
56
|
+
GL_SIMPLE_FUNC(DeleteLists,2,GLuint,NUM2UINT)
|
57
|
+
GL_SIMPLE_FUNC(DepthFunc,1,GLenum,NUM2INT)
|
58
|
+
GL_SIMPLE_FUNC(DepthMask,1,GLboolean,NUM2INT)
|
59
|
+
GL_SIMPLE_FUNC(DepthRange,2,GLclampd,NUM2DBL)
|
60
|
+
GL_SIMPLE_FUNC(Disable,1,GLenum,NUM2INT)
|
61
|
+
GL_SIMPLE_FUNC(DisableClientState,1,GLenum,NUM2INT)
|
62
|
+
GL_SIMPLE_FUNC(DrawBuffer,1,GLenum,NUM2INT)
|
63
|
+
GL_SIMPLE_FUNC(EdgeFlag,1,GLboolean,NUM2INT)
|
64
|
+
GL_SIMPLE_FUNC(Enable,1,GLenum,NUM2INT)
|
65
|
+
GL_SIMPLE_FUNC(EnableClientState,1,GLenum,NUM2INT)
|
66
|
+
GL_SIMPLE_FUNC(End,0,0,0)
|
67
|
+
GL_SIMPLE_FUNC(EndList,0,0,0)
|
68
|
+
GL_SIMPLE_FUNC(EvalCoord1d,1,GLdouble,NUM2DBL)
|
69
|
+
GL_SIMPLE_FUNC(EvalCoord1f,1,GLfloat,NUM2DBL)
|
70
|
+
GL_SIMPLE_FUNC(EvalCoord2d,2,GLdouble,NUM2DBL)
|
71
|
+
GL_SIMPLE_FUNC(EvalCoord2f,2,GLfloat,NUM2DBL)
|
72
|
+
GL_SIMPLE_FUNC(EvalPoint1,1,GLint,NUM2INT)
|
73
|
+
GL_SIMPLE_FUNC(EvalPoint2,2,GLint,NUM2INT)
|
74
|
+
GL_SIMPLE_FUNC(Finish,0,0,0)
|
75
|
+
GL_SIMPLE_FUNC(Flush,0,0,0)
|
76
|
+
GL_SIMPLE_FUNC(FrontFace,1,GLenum,NUM2INT)
|
77
|
+
GL_SIMPLE_FUNC(Frustum,6,GLdouble,NUM2DBL)
|
78
|
+
GL_SIMPLE_FUNC(Hint,2,GLenum,NUM2UINT)
|
79
|
+
GL_SIMPLE_FUNC(Indexd,1,GLdouble,NUM2DBL)
|
80
|
+
GL_SIMPLE_FUNC(Indexf,1,GLfloat,NUM2DBL)
|
81
|
+
GL_SIMPLE_FUNC(Indexi,1,GLint,NUM2INT)
|
82
|
+
GL_SIMPLE_FUNC(IndexMask,1,GLuint,NUM2UINT)
|
83
|
+
GL_SIMPLE_FUNC(Indexs,1,GLshort,NUM2INT)
|
84
|
+
GL_SIMPLE_FUNC(Indexub,1,GLubyte,NUM2INT)
|
85
|
+
GL_SIMPLE_FUNC(InitNames,0,0,0)
|
86
|
+
GL_SIMPLE_FUNC(LineWidth,1,GLfloat,NUM2DBL)
|
87
|
+
GL_SIMPLE_FUNC(ListBase,1,GLuint,NUM2UINT)
|
88
|
+
GL_SIMPLE_FUNC(LoadIdentity,0,0,0)
|
89
|
+
GL_SIMPLE_FUNC(LoadName,1,GLuint,NUM2UINT)
|
90
|
+
GL_SIMPLE_FUNC(LogicOp,1,GLenum,NUM2INT)
|
91
|
+
GL_SIMPLE_FUNC(MatrixMode,1,GLenum,NUM2INT)
|
92
|
+
GL_SIMPLE_FUNC(Normal3b,3,GLbyte,NUM2INT)
|
93
|
+
GL_SIMPLE_FUNC(Normal3d,3,GLdouble,NUM2DBL)
|
94
|
+
GL_SIMPLE_FUNC(Normal3f,3,GLfloat,NUM2DBL)
|
95
|
+
GL_SIMPLE_FUNC(Normal3i,3,GLint,NUM2INT)
|
96
|
+
GL_SIMPLE_FUNC(Normal3s,3,GLshort,NUM2INT)
|
97
|
+
GL_SIMPLE_FUNC(Ortho,6,GLdouble,NUM2DBL)
|
98
|
+
GL_SIMPLE_FUNC(PassThrough,1,GLfloat,NUM2DBL)
|
99
|
+
GL_SIMPLE_FUNC(PixelZoom,2,GLfloat,NUM2DBL)
|
100
|
+
GL_SIMPLE_FUNC(PointSize,1,GLfloat,NUM2DBL)
|
101
|
+
GL_SIMPLE_FUNC(PolygonMode,2,GLenum,NUM2INT)
|
102
|
+
GL_SIMPLE_FUNC(PopAttrib,0,0,0)
|
103
|
+
GL_SIMPLE_FUNC(PopClientAttrib,0,0,0)
|
104
|
+
GL_SIMPLE_FUNC(PopMatrix,0,0,0)
|
105
|
+
GL_SIMPLE_FUNC(PopName,0,0,0)
|
106
|
+
GL_SIMPLE_FUNC(PushAttrib,1,GLbitfield,NUM2UINT)
|
107
|
+
GL_SIMPLE_FUNC(PushClientAttrib,1,GLbitfield,NUM2UINT)
|
108
|
+
GL_SIMPLE_FUNC(PushMatrix,0,0,0)
|
109
|
+
GL_SIMPLE_FUNC(PushName,1,GLuint,NUM2UINT)
|
110
|
+
GL_SIMPLE_FUNC(RasterPos2d,2,GLdouble,NUM2DBL)
|
111
|
+
GL_SIMPLE_FUNC(RasterPos2f,2,GLfloat,NUM2DBL)
|
112
|
+
GL_SIMPLE_FUNC(RasterPos2i,2,GLint,NUM2INT)
|
113
|
+
GL_SIMPLE_FUNC(RasterPos2s,2,GLshort,NUM2INT)
|
114
|
+
GL_SIMPLE_FUNC(RasterPos3d,3,GLdouble,NUM2DBL)
|
115
|
+
GL_SIMPLE_FUNC(RasterPos3f,3,GLfloat,NUM2DBL)
|
116
|
+
GL_SIMPLE_FUNC(RasterPos3i,3,GLint,NUM2INT)
|
117
|
+
GL_SIMPLE_FUNC(RasterPos3s,3,GLshort,NUM2INT)
|
118
|
+
GL_SIMPLE_FUNC(RasterPos4d,4,GLdouble,NUM2DBL)
|
119
|
+
GL_SIMPLE_FUNC(RasterPos4f,4,GLfloat,NUM2DBL)
|
120
|
+
GL_SIMPLE_FUNC(RasterPos4i,4,GLint,NUM2INT)
|
121
|
+
GL_SIMPLE_FUNC(RasterPos4s,4,GLshort,NUM2INT)
|
122
|
+
GL_SIMPLE_FUNC(ReadBuffer,1,GLenum,NUM2INT)
|
123
|
+
GL_SIMPLE_FUNC(Rectd,4,GLdouble,NUM2DBL)
|
124
|
+
GL_SIMPLE_FUNC(Rectf,4,GLfloat,NUM2DBL)
|
125
|
+
GL_SIMPLE_FUNC(Recti,4,GLint,NUM2INT)
|
126
|
+
GL_SIMPLE_FUNC(Rects,4,GLshort,NUM2INT)
|
127
|
+
GL_SIMPLE_FUNC(Rotated,4,GLdouble,NUM2DBL)
|
128
|
+
GL_SIMPLE_FUNC(Rotatef,4,GLfloat,NUM2DBL)
|
129
|
+
GL_SIMPLE_FUNC(Scaled,3,GLdouble,NUM2DBL)
|
130
|
+
GL_SIMPLE_FUNC(Scalef,3,GLfloat,NUM2DBL)
|
131
|
+
GL_SIMPLE_FUNC(Scissor,4,GLint,NUM2UINT)
|
132
|
+
GL_SIMPLE_FUNC(ShadeModel,1,GLenum,NUM2INT)
|
133
|
+
GL_SIMPLE_FUNC(StencilMask,1,GLuint,NUM2UINT)
|
134
|
+
GL_SIMPLE_FUNC(StencilOp,3,GLenum,NUM2INT)
|
135
|
+
GL_SIMPLE_FUNC(TexCoord1d,1,GLdouble,NUM2DBL)
|
136
|
+
GL_SIMPLE_FUNC(TexCoord1f,1,GLfloat,NUM2DBL)
|
137
|
+
GL_SIMPLE_FUNC(TexCoord1i,1,GLint,NUM2INT)
|
138
|
+
GL_SIMPLE_FUNC(TexCoord1s,1,GLshort,NUM2INT)
|
139
|
+
GL_SIMPLE_FUNC(TexCoord2d,2,GLdouble,NUM2DBL)
|
140
|
+
GL_SIMPLE_FUNC(TexCoord2f,2,GLfloat,NUM2DBL)
|
141
|
+
GL_SIMPLE_FUNC(TexCoord2i,2,GLint,NUM2INT)
|
142
|
+
GL_SIMPLE_FUNC(TexCoord2s,2,GLshort,NUM2INT)
|
143
|
+
GL_SIMPLE_FUNC(TexCoord3d,3,GLdouble,NUM2DBL)
|
144
|
+
GL_SIMPLE_FUNC(TexCoord3f,3,GLfloat,NUM2DBL)
|
145
|
+
GL_SIMPLE_FUNC(TexCoord3i,3,GLint,NUM2INT)
|
146
|
+
GL_SIMPLE_FUNC(TexCoord3s,3,GLshort,NUM2INT)
|
147
|
+
GL_SIMPLE_FUNC(TexCoord4d,4,GLdouble,NUM2DBL)
|
148
|
+
GL_SIMPLE_FUNC(TexCoord4f,4,GLfloat,NUM2DBL)
|
149
|
+
GL_SIMPLE_FUNC(TexCoord4i,4,GLint,NUM2INT)
|
150
|
+
GL_SIMPLE_FUNC(TexCoord4s,4,GLshort,NUM2INT)
|
151
|
+
GL_SIMPLE_FUNC(Translated,3,GLdouble,NUM2DBL)
|
152
|
+
GL_SIMPLE_FUNC(Translatef,3,GLfloat,NUM2DBL)
|
153
|
+
GL_SIMPLE_FUNC(Vertex2d,2,GLdouble,NUM2DBL)
|
154
|
+
GL_SIMPLE_FUNC(Vertex2f,2,GLfloat,NUM2DBL)
|
155
|
+
GL_SIMPLE_FUNC(Vertex2i,2,GLint,NUM2INT)
|
156
|
+
GL_SIMPLE_FUNC(Vertex2s,2,GLshort,NUM2INT)
|
157
|
+
GL_SIMPLE_FUNC(Vertex3d,3,GLdouble,NUM2DBL)
|
158
|
+
GL_SIMPLE_FUNC(Vertex3f,3,GLfloat,NUM2DBL)
|
159
|
+
GL_SIMPLE_FUNC(Vertex3i,3,GLint,NUM2INT)
|
160
|
+
GL_SIMPLE_FUNC(Vertex3s,3,GLshort,NUM2INT)
|
161
|
+
GL_SIMPLE_FUNC(Vertex4d,4,GLdouble,NUM2DBL)
|
162
|
+
GL_SIMPLE_FUNC(Vertex4f,4,GLfloat,NUM2DBL)
|
163
|
+
GL_SIMPLE_FUNC(Vertex4i,4,GLint,NUM2INT)
|
164
|
+
GL_SIMPLE_FUNC(Vertex4s,4,GLshort,NUM2INT)
|
165
|
+
GL_SIMPLE_FUNC(Viewport,4,GLuint,NUM2UINT)
|
166
|
+
|
33
167
|
static VALUE
|
34
168
|
gl_NewList(obj,arg1,arg2)
|
35
169
|
VALUE obj,arg1,arg2;
|
@@ -42,24 +176,6 @@ VALUE obj,arg1,arg2;
|
|
42
176
|
return Qnil;
|
43
177
|
}
|
44
178
|
|
45
|
-
static VALUE
|
46
|
-
gl_EndList(obj)
|
47
|
-
VALUE obj;
|
48
|
-
{
|
49
|
-
glEndList();
|
50
|
-
return Qnil;
|
51
|
-
}
|
52
|
-
|
53
|
-
static VALUE
|
54
|
-
gl_CallList(obj,arg1)
|
55
|
-
VALUE obj,arg1;
|
56
|
-
{
|
57
|
-
GLuint list;
|
58
|
-
list = (GLuint)NUM2UINT(arg1);
|
59
|
-
glCallList(list);
|
60
|
-
return Qnil;
|
61
|
-
}
|
62
|
-
|
63
179
|
static VALUE
|
64
180
|
gl_CallLists(obj,arg1)
|
65
181
|
VALUE obj,arg1;
|
@@ -84,18 +200,6 @@ VALUE obj,arg1;
|
|
84
200
|
return Qnil;
|
85
201
|
}
|
86
202
|
|
87
|
-
static VALUE
|
88
|
-
gl_DeleteLists(obj,arg1,arg2)
|
89
|
-
VALUE obj,arg1,arg2;
|
90
|
-
{
|
91
|
-
GLuint list;
|
92
|
-
GLsizei range;
|
93
|
-
list = (GLuint)NUM2UINT(arg1);
|
94
|
-
range = (GLsizei)NUM2UINT(arg2);
|
95
|
-
glDeleteLists(list,range);
|
96
|
-
return Qnil;
|
97
|
-
}
|
98
|
-
|
99
203
|
static VALUE
|
100
204
|
gl_GenLists(obj,arg1)
|
101
205
|
VALUE obj,arg1;
|
@@ -107,26 +211,6 @@ VALUE obj,arg1;
|
|
107
211
|
return INT2NUM(ret);
|
108
212
|
}
|
109
213
|
|
110
|
-
static VALUE
|
111
|
-
gl_ListBase(obj,arg1)
|
112
|
-
VALUE obj,arg1;
|
113
|
-
{
|
114
|
-
GLuint base;
|
115
|
-
base = (GLuint)NUM2UINT(arg1);
|
116
|
-
glListBase(base);
|
117
|
-
return Qnil;
|
118
|
-
}
|
119
|
-
|
120
|
-
static VALUE
|
121
|
-
gl_Begin(obj,arg1)
|
122
|
-
VALUE obj,arg1;
|
123
|
-
{
|
124
|
-
GLenum mode;
|
125
|
-
mode = (GLenum)NUM2INT(arg1);
|
126
|
-
glBegin(mode);
|
127
|
-
return Qnil;
|
128
|
-
}
|
129
|
-
|
130
214
|
static VALUE
|
131
215
|
gl_Bitmap(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
132
216
|
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
@@ -143,1367 +227,314 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
143
227
|
yorig = (GLfloat)NUM2DBL(arg4);
|
144
228
|
xmove = (GLfloat)NUM2DBL(arg5);
|
145
229
|
ymove = (GLfloat)NUM2DBL(arg6);
|
146
|
-
if (
|
147
|
-
|
148
|
-
|
149
|
-
} else if (TYPE(arg7) == T_STRING) {
|
230
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
231
|
+
glBitmap(width, height, xorig, yorig, xmove, ymove, (GLvoid *)NUM2INT(arg7));
|
232
|
+
} else {
|
150
233
|
const GLubyte *bitmap;
|
234
|
+
Check_Type(arg7,T_STRING);
|
235
|
+
|
151
236
|
if (RSTRING(arg7)->len < (width * height / 8))
|
152
237
|
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg7)->len);
|
153
238
|
|
154
239
|
bitmap = (const GLubyte*)RSTRING(arg7)->ptr;
|
155
240
|
glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
|
156
|
-
} else {
|
157
|
-
Check_Type(arg7,T_STRING); /* force exception */
|
158
241
|
}
|
159
242
|
return Qnil;
|
160
243
|
}
|
161
244
|
|
162
245
|
static VALUE
|
163
|
-
|
164
|
-
VALUE obj,arg1
|
246
|
+
gl_EdgeFlagv(obj,arg1)
|
247
|
+
VALUE obj,arg1;
|
165
248
|
{
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
green = (GLbyte)NUM2INT(arg2);
|
171
|
-
blue = (GLbyte)NUM2INT(arg3);
|
172
|
-
glColor3b(red,green,blue);
|
249
|
+
GLboolean flag[1] = { GL_FALSE };
|
250
|
+
Check_Type(arg1,T_ARRAY);
|
251
|
+
ary2cboolean(arg1,flag,1);
|
252
|
+
glEdgeFlagv(flag);
|
173
253
|
return Qnil;
|
174
254
|
}
|
175
255
|
|
176
256
|
static VALUE
|
177
|
-
|
178
|
-
VALUE obj,arg1
|
257
|
+
gl_Indexdv(obj,arg1)
|
258
|
+
VALUE obj,arg1;
|
179
259
|
{
|
180
|
-
GLdouble
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
green = (GLdouble)NUM2DBL(arg2);
|
185
|
-
blue = (GLdouble)NUM2DBL(arg3);
|
186
|
-
glColor3d(red,green,blue);
|
260
|
+
GLdouble c[1] = {0.0};
|
261
|
+
Check_Type(arg1,T_ARRAY);
|
262
|
+
ary2cdbl(arg1,c,1);
|
263
|
+
glIndexdv(c);
|
187
264
|
return Qnil;
|
188
265
|
}
|
189
266
|
|
190
267
|
static VALUE
|
191
|
-
|
192
|
-
VALUE obj,arg1
|
268
|
+
gl_Indexfv(obj,arg1)
|
269
|
+
VALUE obj,arg1;
|
193
270
|
{
|
194
|
-
GLfloat
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
green = (GLfloat)NUM2DBL(arg2);
|
199
|
-
blue = (GLfloat)NUM2DBL(arg3);
|
200
|
-
glColor3f(red,green,blue);
|
271
|
+
GLfloat c[1] = {0.0};
|
272
|
+
Check_Type(arg1,T_ARRAY);
|
273
|
+
ary2cflt(arg1,c,1);
|
274
|
+
glIndexfv(c);
|
201
275
|
return Qnil;
|
202
276
|
}
|
203
277
|
|
204
278
|
static VALUE
|
205
|
-
|
206
|
-
VALUE obj,arg1
|
279
|
+
gl_Indexiv(obj,arg1)
|
280
|
+
VALUE obj,arg1;
|
207
281
|
{
|
208
|
-
GLint
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
green = (GLint)NUM2INT(arg2);
|
213
|
-
blue = (GLint)NUM2INT(arg3);
|
214
|
-
glColor3i(red,green,blue);
|
282
|
+
GLint c[1] = {0.0};
|
283
|
+
Check_Type(arg1,T_ARRAY);
|
284
|
+
ary2cint(arg1,c,1);
|
285
|
+
glIndexiv(c);
|
215
286
|
return Qnil;
|
216
287
|
}
|
217
288
|
|
218
289
|
static VALUE
|
219
|
-
|
220
|
-
VALUE obj,arg1
|
290
|
+
gl_Indexsv(obj,arg1)
|
291
|
+
VALUE obj,arg1;
|
221
292
|
{
|
222
|
-
GLshort
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
green = (GLshort)NUM2INT(arg2);
|
227
|
-
blue = (GLshort)NUM2INT(arg3);
|
228
|
-
glColor3s(red,green,blue);
|
293
|
+
GLshort c[1] = {0};
|
294
|
+
Check_Type(arg1,T_ARRAY);
|
295
|
+
ary2cshort(arg1,c,1);
|
296
|
+
glIndexsv(c);
|
229
297
|
return Qnil;
|
230
298
|
}
|
231
299
|
|
232
300
|
static VALUE
|
233
|
-
|
234
|
-
VALUE obj,arg1,arg2
|
301
|
+
gl_ClipPlane(obj,arg1,arg2)
|
302
|
+
VALUE obj,arg1,arg2;
|
235
303
|
{
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
glColor3ub(red,green,blue);
|
304
|
+
GLenum plane;
|
305
|
+
GLdouble equation[4];
|
306
|
+
plane = (GLenum)NUM2INT(arg1);
|
307
|
+
Check_Type(arg2,T_ARRAY);
|
308
|
+
ary2cdbl(arg2, equation, 4);
|
309
|
+
glClipPlane(plane,equation);
|
243
310
|
return Qnil;
|
244
311
|
}
|
245
312
|
|
246
313
|
static VALUE
|
247
|
-
|
248
|
-
VALUE obj,arg1,arg2
|
314
|
+
gl_Fogf(obj,arg1,arg2)
|
315
|
+
VALUE obj,arg1,arg2;
|
249
316
|
{
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
blue = (GLuint)NUM2UINT(arg3);
|
256
|
-
glColor3ui(red,green,blue);
|
317
|
+
GLenum pname;
|
318
|
+
GLfloat param;
|
319
|
+
pname = (GLenum)NUM2INT(arg1);
|
320
|
+
param = (GLfloat)NUM2DBL(arg2);
|
321
|
+
glFogf(pname,param);
|
257
322
|
return Qnil;
|
258
323
|
}
|
259
324
|
|
260
325
|
static VALUE
|
261
|
-
|
262
|
-
VALUE obj,arg1,arg2
|
326
|
+
gl_Fogfv(obj,arg1,arg2)
|
327
|
+
VALUE obj,arg1,arg2;
|
263
328
|
{
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
glColor3us(red,green,blue);
|
329
|
+
GLenum pname;
|
330
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
331
|
+
pname = (GLenum)NUM2INT(arg1);
|
332
|
+
Check_Type(arg2,T_ARRAY);
|
333
|
+
ary2cflt(arg2,params,4);
|
334
|
+
glFogfv(pname,params);
|
271
335
|
return Qnil;
|
272
336
|
}
|
273
337
|
|
274
338
|
static VALUE
|
275
|
-
|
276
|
-
VALUE obj,arg1,arg2
|
339
|
+
gl_Fogi(obj,arg1,arg2)
|
340
|
+
VALUE obj,arg1,arg2;
|
277
341
|
{
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
green = (GLbyte)NUM2INT(arg2);
|
284
|
-
blue = (GLbyte)NUM2INT(arg3);
|
285
|
-
alpha = (GLbyte)NUM2INT(arg4);
|
286
|
-
glColor4b(red,green,blue,alpha);
|
342
|
+
GLenum pname;
|
343
|
+
GLint param;
|
344
|
+
pname = (GLenum)NUM2INT(arg1);
|
345
|
+
param = (GLint)NUM2INT(arg2);
|
346
|
+
glFogi(pname,param);
|
287
347
|
return Qnil;
|
288
348
|
}
|
289
349
|
|
290
350
|
static VALUE
|
291
|
-
|
292
|
-
VALUE obj,arg1,arg2
|
351
|
+
gl_Fogiv(obj,arg1,arg2)
|
352
|
+
VALUE obj,arg1,arg2;
|
293
353
|
{
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
blue = (GLdouble)NUM2DBL(arg3);
|
301
|
-
alpha = (GLdouble)NUM2DBL(arg4);
|
302
|
-
glColor4d(red,green,blue,alpha);
|
354
|
+
GLenum pname;
|
355
|
+
GLint params[4] = {0,0,0,0};
|
356
|
+
pname = (GLenum)NUM2INT(arg1);
|
357
|
+
Check_Type(arg2,T_ARRAY);
|
358
|
+
ary2cint(arg2,params,4);
|
359
|
+
glFogiv(pname,params);
|
303
360
|
return Qnil;
|
304
361
|
}
|
305
362
|
|
306
363
|
static VALUE
|
307
|
-
|
308
|
-
VALUE obj,arg1,arg2,arg3
|
364
|
+
gl_Lightf(obj,arg1,arg2,arg3)
|
365
|
+
VALUE obj,arg1,arg2,arg3;
|
309
366
|
{
|
310
|
-
|
311
|
-
|
312
|
-
GLfloat
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
alpha = (GLfloat)NUM2DBL(arg4);
|
318
|
-
glColor4f(red,green,blue,alpha);
|
367
|
+
GLenum light;
|
368
|
+
GLenum pname;
|
369
|
+
GLfloat param;
|
370
|
+
light = (GLenum)NUM2INT(arg1);
|
371
|
+
pname = (GLenum)NUM2INT(arg2);
|
372
|
+
param = (GLfloat)NUM2DBL(arg3);
|
373
|
+
glLightf(light,pname,param);
|
319
374
|
return Qnil;
|
320
375
|
}
|
321
376
|
|
322
377
|
static VALUE
|
323
|
-
|
324
|
-
VALUE obj,arg1,arg2,arg3
|
378
|
+
gl_Lightfv(obj,arg1,arg2,arg3)
|
379
|
+
VALUE obj,arg1,arg2,arg3;
|
325
380
|
{
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
glColor4i(red,green,blue,alpha);
|
381
|
+
GLenum light;
|
382
|
+
GLenum pname;
|
383
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
384
|
+
light = (GLenum)NUM2INT(arg1);
|
385
|
+
pname = (GLenum)NUM2INT(arg2);
|
386
|
+
Check_Type(arg3,T_ARRAY);
|
387
|
+
ary2cflt(arg3,params,4);
|
388
|
+
glLightfv(light,pname,params);
|
335
389
|
return Qnil;
|
336
390
|
}
|
337
391
|
|
338
392
|
static VALUE
|
339
|
-
|
340
|
-
VALUE obj,arg1,arg2,arg3
|
393
|
+
gl_Lighti(obj,arg1,arg2,arg3)
|
394
|
+
VALUE obj,arg1,arg2,arg3;
|
341
395
|
{
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
alpha = (GLshort)NUM2INT(arg4);
|
350
|
-
glColor4s(red,green,blue,alpha);
|
396
|
+
GLenum light;
|
397
|
+
GLenum pname;
|
398
|
+
GLint param;
|
399
|
+
light = (GLenum)NUM2INT(arg1);
|
400
|
+
pname = (GLenum)NUM2INT(arg2);
|
401
|
+
param = (GLint)NUM2INT(arg3);
|
402
|
+
glLighti(light,pname,param);
|
351
403
|
return Qnil;
|
352
404
|
}
|
353
405
|
|
354
406
|
static VALUE
|
355
|
-
|
356
|
-
VALUE obj,arg1,arg2,arg3
|
407
|
+
gl_Lightiv(obj,arg1,arg2,arg3)
|
408
|
+
VALUE obj,arg1,arg2,arg3;
|
357
409
|
{
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
glColor4ub(red,green,blue,alpha);
|
410
|
+
GLenum light;
|
411
|
+
GLenum pname;
|
412
|
+
GLint params[4]={0,0,0,0};
|
413
|
+
light = (GLenum)NUM2INT(arg1);
|
414
|
+
pname = (GLenum)NUM2INT(arg2);
|
415
|
+
Check_Type(arg3,T_ARRAY);
|
416
|
+
ary2cint(arg3,params,4);
|
417
|
+
glLightiv(light,pname,params);
|
367
418
|
return Qnil;
|
368
419
|
}
|
369
420
|
|
370
421
|
static VALUE
|
371
|
-
|
372
|
-
VALUE obj,arg1,arg2
|
422
|
+
gl_LightModelf(obj,arg1,arg2)
|
423
|
+
VALUE obj,arg1,arg2;
|
373
424
|
{
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
green = (GLuint)NUM2UINT(arg2);
|
380
|
-
blue = (GLuint)NUM2UINT(arg3);
|
381
|
-
alpha = (GLuint)NUM2UINT(arg4);
|
382
|
-
glColor4ui(red,green,blue,alpha);
|
425
|
+
GLenum pname;
|
426
|
+
GLfloat param;
|
427
|
+
pname = (GLenum)NUM2INT(arg1);
|
428
|
+
param = (GLfloat)NUM2DBL(arg2);
|
429
|
+
glLightModelf(pname,param);
|
383
430
|
return Qnil;
|
384
431
|
}
|
385
432
|
|
386
433
|
static VALUE
|
387
|
-
|
388
|
-
VALUE obj,arg1,arg2
|
434
|
+
gl_LightModelfv(obj,arg1,arg2)
|
435
|
+
VALUE obj,arg1,arg2;
|
389
436
|
{
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
blue = (GLushort)NUM2INT(arg3);
|
397
|
-
alpha = (GLushort)NUM2INT(arg4);
|
398
|
-
glColor4us(red,green,blue,alpha);
|
437
|
+
GLenum pname;
|
438
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
439
|
+
pname = (GLenum)NUM2INT(arg1);
|
440
|
+
Check_Type(arg2,T_ARRAY);
|
441
|
+
ary2cflt(arg2,params,4);
|
442
|
+
glLightModelfv(pname,params);
|
399
443
|
return Qnil;
|
400
444
|
}
|
401
445
|
|
402
446
|
static VALUE
|
403
|
-
|
404
|
-
VALUE obj,arg1;
|
447
|
+
gl_LightModeli(obj,arg1,arg2)
|
448
|
+
VALUE obj,arg1,arg2;
|
405
449
|
{
|
406
|
-
|
407
|
-
|
408
|
-
|
450
|
+
GLenum pname;
|
451
|
+
GLint param;
|
452
|
+
pname = (GLenum)NUM2INT(arg1);
|
453
|
+
param = (GLint)NUM2INT(arg2);
|
454
|
+
glLightModeli(pname,param);
|
409
455
|
return Qnil;
|
410
456
|
}
|
411
457
|
|
412
458
|
static VALUE
|
413
|
-
|
414
|
-
VALUE obj,arg1;
|
459
|
+
gl_LightModeliv(obj,arg1,arg2)
|
460
|
+
VALUE obj,arg1,arg2;
|
415
461
|
{
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
462
|
+
GLenum pname;
|
463
|
+
GLint params[4] = {0,0,0,0};
|
464
|
+
pname = (GLenum)NUM2INT(arg1);
|
465
|
+
Check_Type(arg2,T_ARRAY);
|
466
|
+
ary2cint(arg2,params,4);
|
467
|
+
glLightModeliv(pname,params);
|
420
468
|
return Qnil;
|
421
469
|
}
|
422
470
|
|
423
471
|
static VALUE
|
424
|
-
|
425
|
-
VALUE obj;
|
472
|
+
gl_LineStipple(obj,arg1,arg2)
|
473
|
+
VALUE obj,arg1,arg2;
|
426
474
|
{
|
427
|
-
|
475
|
+
GLint factor;
|
476
|
+
GLushort pattern;
|
477
|
+
factor = (GLint)NUM2INT(arg1);
|
478
|
+
pattern = (GLushort)(NUM2INT(arg2) & 0xFFFF);
|
479
|
+
glLineStipple(factor,pattern);
|
428
480
|
return Qnil;
|
429
481
|
}
|
430
482
|
|
431
483
|
static VALUE
|
432
|
-
|
433
|
-
VALUE obj,arg1;
|
484
|
+
gl_Materialf(obj,arg1,arg2,arg3)
|
485
|
+
VALUE obj,arg1,arg2,arg3;
|
434
486
|
{
|
435
|
-
|
436
|
-
|
437
|
-
|
487
|
+
GLenum face;
|
488
|
+
GLenum pname;
|
489
|
+
GLfloat param;
|
490
|
+
face = (GLenum)NUM2INT(arg1);
|
491
|
+
pname = (GLenum)NUM2INT(arg2);
|
492
|
+
param = (GLfloat)NUM2DBL(arg3);
|
493
|
+
glMaterialf(face,pname,param);
|
438
494
|
return Qnil;
|
439
495
|
}
|
440
496
|
|
441
497
|
static VALUE
|
442
|
-
|
443
|
-
VALUE obj,arg1;
|
498
|
+
gl_Materialfv(obj,arg1,arg2,arg3)
|
499
|
+
VALUE obj,arg1,arg2,arg3;
|
444
500
|
{
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
501
|
+
GLenum face;
|
502
|
+
GLenum pname;
|
503
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
504
|
+
face = (GLenum)NUM2INT(arg1);
|
505
|
+
pname = (GLenum)NUM2INT(arg2);
|
506
|
+
Check_Type(arg3,T_ARRAY);
|
507
|
+
ary2cflt(arg3,params,4);
|
508
|
+
glMaterialfv(face,pname,params);
|
449
509
|
return Qnil;
|
450
510
|
}
|
451
511
|
|
452
512
|
static VALUE
|
453
|
-
|
454
|
-
VALUE obj,arg1;
|
513
|
+
gl_Materiali(obj,arg1,arg2,arg3)
|
514
|
+
VALUE obj,arg1,arg2,arg3;
|
455
515
|
{
|
456
|
-
|
457
|
-
|
458
|
-
|
516
|
+
GLenum face;
|
517
|
+
GLenum pname;
|
518
|
+
GLint param;
|
519
|
+
face = (GLenum)NUM2INT(arg1);
|
520
|
+
pname = (GLenum)NUM2INT(arg2);
|
521
|
+
param = (GLint)NUM2INT(arg3);
|
522
|
+
glMateriali(face,pname,param);
|
459
523
|
return Qnil;
|
460
524
|
}
|
461
525
|
|
462
526
|
static VALUE
|
463
|
-
|
464
|
-
VALUE obj,arg1;
|
465
|
-
{
|
466
|
-
GLfloat c[1] = {0.0};
|
467
|
-
Check_Type(arg1,T_ARRAY);
|
468
|
-
ary2cflt(arg1,c,1);
|
469
|
-
glIndexfv(c);
|
470
|
-
return Qnil;
|
471
|
-
}
|
472
|
-
|
473
|
-
static VALUE
|
474
|
-
gl_Indexi(obj,arg1)
|
475
|
-
VALUE obj,arg1;
|
476
|
-
{
|
477
|
-
GLint c;
|
478
|
-
c = (GLint)NUM2INT(arg1);
|
479
|
-
glIndexi(c);
|
480
|
-
return Qnil;
|
481
|
-
}
|
482
|
-
|
483
|
-
static VALUE
|
484
|
-
gl_Indexiv(obj,arg1)
|
485
|
-
VALUE obj,arg1;
|
486
|
-
{
|
487
|
-
GLint c[1] = {0.0};
|
488
|
-
Check_Type(arg1,T_ARRAY);
|
489
|
-
ary2cint(arg1,c,1);
|
490
|
-
glIndexiv(c);
|
491
|
-
return Qnil;
|
492
|
-
}
|
493
|
-
|
494
|
-
static VALUE
|
495
|
-
gl_Indexs(obj,arg1)
|
496
|
-
VALUE obj,arg1;
|
497
|
-
{
|
498
|
-
GLshort c;
|
499
|
-
c = (GLshort)NUM2INT(arg1);
|
500
|
-
glIndexs(c);
|
501
|
-
return Qnil;
|
502
|
-
}
|
503
|
-
|
504
|
-
static VALUE
|
505
|
-
gl_Indexsv(obj,arg1)
|
506
|
-
VALUE obj,arg1;
|
507
|
-
{
|
508
|
-
GLshort c[1] = {0};
|
509
|
-
Check_Type(arg1,T_ARRAY);
|
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
|
-
Check_Type(arg2,T_ARRAY);
|
1201
|
-
ary2cdbl(arg2, equation, 4);
|
1202
|
-
glClipPlane(plane,equation);
|
1203
|
-
return Qnil;
|
1204
|
-
}
|
1205
|
-
|
1206
|
-
static VALUE
|
1207
|
-
gl_ColorMaterial(obj,arg1,arg2)
|
1208
|
-
VALUE obj,arg1,arg2;
|
1209
|
-
{
|
1210
|
-
GLenum face;
|
1211
|
-
GLenum mode;
|
1212
|
-
face = (GLenum)NUM2INT(arg1);
|
1213
|
-
mode = (GLenum)NUM2INT(arg2);
|
1214
|
-
glColorMaterial(face,mode);
|
1215
|
-
return Qnil;
|
1216
|
-
}
|
1217
|
-
|
1218
|
-
static VALUE
|
1219
|
-
gl_CullFace(obj,arg1)
|
1220
|
-
VALUE obj,arg1;
|
1221
|
-
{
|
1222
|
-
GLenum mode;
|
1223
|
-
mode = (GLenum)NUM2INT(arg1);
|
1224
|
-
glCullFace(mode);
|
1225
|
-
return Qnil;
|
1226
|
-
}
|
1227
|
-
|
1228
|
-
static VALUE
|
1229
|
-
gl_Fogf(obj,arg1,arg2)
|
1230
|
-
VALUE obj,arg1,arg2;
|
1231
|
-
{
|
1232
|
-
GLenum pname;
|
1233
|
-
GLfloat param;
|
1234
|
-
pname = (GLenum)NUM2INT(arg1);
|
1235
|
-
param = (GLfloat)NUM2DBL(arg2);
|
1236
|
-
glFogf(pname,param);
|
1237
|
-
return Qnil;
|
1238
|
-
}
|
1239
|
-
|
1240
|
-
static VALUE
|
1241
|
-
gl_Fogfv(obj,arg1,arg2)
|
1242
|
-
VALUE obj,arg1,arg2;
|
1243
|
-
{
|
1244
|
-
GLenum pname;
|
1245
|
-
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1246
|
-
pname = (GLenum)NUM2INT(arg1);
|
1247
|
-
Check_Type(arg2,T_ARRAY);
|
1248
|
-
ary2cflt(arg2,params,4);
|
1249
|
-
glFogfv(pname,params);
|
1250
|
-
return Qnil;
|
1251
|
-
}
|
1252
|
-
|
1253
|
-
static VALUE
|
1254
|
-
gl_Fogi(obj,arg1,arg2)
|
1255
|
-
VALUE obj,arg1,arg2;
|
1256
|
-
{
|
1257
|
-
GLenum pname;
|
1258
|
-
GLint param;
|
1259
|
-
pname = (GLenum)NUM2INT(arg1);
|
1260
|
-
param = (GLint)NUM2INT(arg2);
|
1261
|
-
glFogi(pname,param);
|
1262
|
-
return Qnil;
|
1263
|
-
}
|
1264
|
-
|
1265
|
-
static VALUE
|
1266
|
-
gl_Fogiv(obj,arg1,arg2)
|
1267
|
-
VALUE obj,arg1,arg2;
|
1268
|
-
{
|
1269
|
-
GLenum pname;
|
1270
|
-
GLint params[4] = {0,0,0,0};
|
1271
|
-
pname = (GLenum)NUM2INT(arg1);
|
1272
|
-
Check_Type(arg2,T_ARRAY);
|
1273
|
-
ary2cint(arg2,params,4);
|
1274
|
-
glFogiv(pname,params);
|
1275
|
-
return Qnil;
|
1276
|
-
}
|
1277
|
-
|
1278
|
-
static VALUE
|
1279
|
-
gl_FrontFace(obj,arg1)
|
1280
|
-
VALUE obj,arg1;
|
1281
|
-
{
|
1282
|
-
GLenum mode;
|
1283
|
-
mode = (GLenum)NUM2INT(arg1);
|
1284
|
-
glFrontFace(mode);
|
1285
|
-
return Qnil;
|
1286
|
-
}
|
1287
|
-
|
1288
|
-
static VALUE
|
1289
|
-
gl_Hint(obj,arg1,arg2)
|
1290
|
-
VALUE obj,arg1,arg2;
|
1291
|
-
{
|
1292
|
-
GLenum target;
|
1293
|
-
GLenum mode;
|
1294
|
-
target = (GLenum)NUM2UINT(arg1);
|
1295
|
-
mode = (GLenum)NUM2UINT(arg2);
|
1296
|
-
glHint(target,mode);
|
1297
|
-
return Qnil;
|
1298
|
-
}
|
1299
|
-
|
1300
|
-
static VALUE
|
1301
|
-
gl_Lightf(obj,arg1,arg2,arg3)
|
1302
|
-
VALUE obj,arg1,arg2,arg3;
|
1303
|
-
{
|
1304
|
-
GLenum light;
|
1305
|
-
GLenum pname;
|
1306
|
-
GLfloat param;
|
1307
|
-
light = (GLenum)NUM2INT(arg1);
|
1308
|
-
pname = (GLenum)NUM2INT(arg2);
|
1309
|
-
param = (GLfloat)NUM2DBL(arg3);
|
1310
|
-
glLightf(light,pname,param);
|
1311
|
-
return Qnil;
|
1312
|
-
}
|
1313
|
-
|
1314
|
-
static VALUE
|
1315
|
-
gl_Lightfv(obj,arg1,arg2,arg3)
|
1316
|
-
VALUE obj,arg1,arg2,arg3;
|
1317
|
-
{
|
1318
|
-
GLenum light;
|
1319
|
-
GLenum pname;
|
1320
|
-
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1321
|
-
light = (GLenum)NUM2INT(arg1);
|
1322
|
-
pname = (GLenum)NUM2INT(arg2);
|
1323
|
-
Check_Type(arg3,T_ARRAY);
|
1324
|
-
ary2cflt(arg3,params,4);
|
1325
|
-
glLightfv(light,pname,params);
|
1326
|
-
return Qnil;
|
1327
|
-
}
|
1328
|
-
|
1329
|
-
static VALUE
|
1330
|
-
gl_Lighti(obj,arg1,arg2,arg3)
|
1331
|
-
VALUE obj,arg1,arg2,arg3;
|
1332
|
-
{
|
1333
|
-
GLenum light;
|
1334
|
-
GLenum pname;
|
1335
|
-
GLint param;
|
1336
|
-
light = (GLenum)NUM2INT(arg1);
|
1337
|
-
pname = (GLenum)NUM2INT(arg2);
|
1338
|
-
param = (GLint)NUM2INT(arg3);
|
1339
|
-
glLighti(light,pname,param);
|
1340
|
-
return Qnil;
|
1341
|
-
}
|
1342
|
-
|
1343
|
-
static VALUE
|
1344
|
-
gl_Lightiv(obj,arg1,arg2,arg3)
|
1345
|
-
VALUE obj,arg1,arg2,arg3;
|
1346
|
-
{
|
1347
|
-
GLenum light;
|
1348
|
-
GLenum pname;
|
1349
|
-
GLint params[4]={0,0,0,0};
|
1350
|
-
light = (GLenum)NUM2INT(arg1);
|
1351
|
-
pname = (GLenum)NUM2INT(arg2);
|
1352
|
-
Check_Type(arg3,T_ARRAY);
|
1353
|
-
ary2cint(arg3,params,4);
|
1354
|
-
glLightiv(light,pname,params);
|
1355
|
-
return Qnil;
|
1356
|
-
}
|
1357
|
-
|
1358
|
-
static VALUE
|
1359
|
-
gl_LightModelf(obj,arg1,arg2)
|
1360
|
-
VALUE obj,arg1,arg2;
|
1361
|
-
{
|
1362
|
-
GLenum pname;
|
1363
|
-
GLfloat param;
|
1364
|
-
pname = (GLenum)NUM2INT(arg1);
|
1365
|
-
param = (GLfloat)NUM2DBL(arg2);
|
1366
|
-
glLightModelf(pname,param);
|
1367
|
-
return Qnil;
|
1368
|
-
}
|
1369
|
-
|
1370
|
-
static VALUE
|
1371
|
-
gl_LightModelfv(obj,arg1,arg2)
|
1372
|
-
VALUE obj,arg1,arg2;
|
1373
|
-
{
|
1374
|
-
GLenum pname;
|
1375
|
-
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1376
|
-
pname = (GLenum)NUM2INT(arg1);
|
1377
|
-
Check_Type(arg2,T_ARRAY);
|
1378
|
-
ary2cflt(arg2,params,4);
|
1379
|
-
glLightModelfv(pname,params);
|
1380
|
-
return Qnil;
|
1381
|
-
}
|
1382
|
-
|
1383
|
-
static VALUE
|
1384
|
-
gl_LightModeli(obj,arg1,arg2)
|
1385
|
-
VALUE obj,arg1,arg2;
|
1386
|
-
{
|
1387
|
-
GLenum pname;
|
1388
|
-
GLint param;
|
1389
|
-
pname = (GLenum)NUM2INT(arg1);
|
1390
|
-
param = (GLint)NUM2INT(arg2);
|
1391
|
-
glLightModeli(pname,param);
|
1392
|
-
return Qnil;
|
1393
|
-
}
|
1394
|
-
|
1395
|
-
static VALUE
|
1396
|
-
gl_LightModeliv(obj,arg1,arg2)
|
1397
|
-
VALUE obj,arg1,arg2;
|
1398
|
-
{
|
1399
|
-
GLenum pname;
|
1400
|
-
GLint params[4] = {0,0,0,0};
|
1401
|
-
pname = (GLenum)NUM2INT(arg1);
|
1402
|
-
Check_Type(arg2,T_ARRAY);
|
1403
|
-
ary2cint(arg2,params,4);
|
1404
|
-
glLightModeliv(pname,params);
|
1405
|
-
return Qnil;
|
1406
|
-
}
|
1407
|
-
|
1408
|
-
static VALUE
|
1409
|
-
gl_LineStipple(obj,arg1,arg2)
|
1410
|
-
VALUE obj,arg1,arg2;
|
1411
|
-
{
|
1412
|
-
GLint factor;
|
1413
|
-
GLushort pattern;
|
1414
|
-
factor = (GLint)NUM2INT(arg1);
|
1415
|
-
pattern = (GLushort)(NUM2INT(arg2) & 0xFFFF);
|
1416
|
-
glLineStipple(factor,pattern);
|
1417
|
-
return Qnil;
|
1418
|
-
}
|
1419
|
-
|
1420
|
-
static VALUE
|
1421
|
-
gl_LineWidth(obj,arg1)
|
1422
|
-
VALUE obj,arg1;
|
1423
|
-
{
|
1424
|
-
GLfloat width;
|
1425
|
-
width = (GLfloat)NUM2DBL(arg1);
|
1426
|
-
glLineWidth(width);
|
1427
|
-
return Qnil;
|
1428
|
-
}
|
1429
|
-
|
1430
|
-
static VALUE
|
1431
|
-
gl_Materialf(obj,arg1,arg2,arg3)
|
1432
|
-
VALUE obj,arg1,arg2,arg3;
|
1433
|
-
{
|
1434
|
-
GLenum face;
|
1435
|
-
GLenum pname;
|
1436
|
-
GLfloat param;
|
1437
|
-
face = (GLenum)NUM2INT(arg1);
|
1438
|
-
pname = (GLenum)NUM2INT(arg2);
|
1439
|
-
param = (GLfloat)NUM2DBL(arg3);
|
1440
|
-
glMaterialf(face,pname,param);
|
1441
|
-
return Qnil;
|
1442
|
-
}
|
1443
|
-
|
1444
|
-
static VALUE
|
1445
|
-
gl_Materialfv(obj,arg1,arg2,arg3)
|
1446
|
-
VALUE obj,arg1,arg2,arg3;
|
1447
|
-
{
|
1448
|
-
GLenum face;
|
1449
|
-
GLenum pname;
|
1450
|
-
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1451
|
-
face = (GLenum)NUM2INT(arg1);
|
1452
|
-
pname = (GLenum)NUM2INT(arg2);
|
1453
|
-
Check_Type(arg3,T_ARRAY);
|
1454
|
-
ary2cflt(arg3,params,4);
|
1455
|
-
glMaterialfv(face,pname,params);
|
1456
|
-
return Qnil;
|
1457
|
-
}
|
1458
|
-
|
1459
|
-
static VALUE
|
1460
|
-
gl_Materiali(obj,arg1,arg2,arg3)
|
1461
|
-
VALUE obj,arg1,arg2,arg3;
|
1462
|
-
{
|
1463
|
-
GLenum face;
|
1464
|
-
GLenum pname;
|
1465
|
-
GLint param;
|
1466
|
-
face = (GLenum)NUM2INT(arg1);
|
1467
|
-
pname = (GLenum)NUM2INT(arg2);
|
1468
|
-
param = (GLint)NUM2INT(arg3);
|
1469
|
-
glMateriali(face,pname,param);
|
1470
|
-
return Qnil;
|
1471
|
-
}
|
1472
|
-
|
1473
|
-
static VALUE
|
1474
|
-
gl_Materialiv(obj,arg1,arg2,arg3)
|
1475
|
-
VALUE obj,arg1,arg2,arg3;
|
1476
|
-
{
|
1477
|
-
GLenum face;
|
1478
|
-
GLenum pname;
|
1479
|
-
GLint params[4] = {0,0,0,0};
|
1480
|
-
face = (GLenum)NUM2INT(arg1);
|
1481
|
-
pname = (GLenum)NUM2INT(arg2);
|
1482
|
-
Check_Type(arg3,T_ARRAY);
|
1483
|
-
ary2cint(arg3,params,4);
|
1484
|
-
glMaterialiv(face,pname,params);
|
1485
|
-
return Qnil;
|
1486
|
-
}
|
1487
|
-
|
1488
|
-
static VALUE
|
1489
|
-
gl_PointSize(obj,arg1)
|
1490
|
-
VALUE obj,arg1;
|
1491
|
-
{
|
1492
|
-
GLfloat size;
|
1493
|
-
size = (GLfloat)NUM2DBL(arg1);
|
1494
|
-
glPointSize(size);
|
1495
|
-
return Qnil;
|
1496
|
-
}
|
1497
|
-
|
1498
|
-
static VALUE
|
1499
|
-
gl_PolygonMode(obj,arg1,arg2)
|
1500
|
-
VALUE obj,arg1,arg2;
|
527
|
+
gl_Materialiv(obj,arg1,arg2,arg3)
|
528
|
+
VALUE obj,arg1,arg2,arg3;
|
1501
529
|
{
|
1502
530
|
GLenum face;
|
1503
|
-
GLenum
|
531
|
+
GLenum pname;
|
532
|
+
GLint params[4] = {0,0,0,0};
|
1504
533
|
face = (GLenum)NUM2INT(arg1);
|
1505
|
-
|
1506
|
-
|
534
|
+
pname = (GLenum)NUM2INT(arg2);
|
535
|
+
Check_Type(arg3,T_ARRAY);
|
536
|
+
ary2cint(arg3,params,4);
|
537
|
+
glMaterialiv(face,pname,params);
|
1507
538
|
return Qnil;
|
1508
539
|
}
|
1509
540
|
|
@@ -1512,44 +543,23 @@ gl_PolygonStipple(obj,arg1)
|
|
1512
543
|
VALUE obj,arg1;
|
1513
544
|
{
|
1514
545
|
GLubyte mask[128];
|
1515
|
-
memset(mask, 0x0, sizeof(GLubyte)*128);
|
1516
|
-
if (TYPE(arg1) == T_ARRAY) {
|
1517
|
-
ary2cubyte(arg1,mask,128);
|
1518
|
-
}
|
1519
|
-
else if (TYPE(arg1) == T_STRING) {
|
1520
|
-
if (RSTRING(arg1)->len < 128)
|
1521
|
-
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg1)->len);
|
1522
|
-
memcpy(mask, RSTRING(arg1)->ptr, 128);
|
1523
|
-
}
|
1524
|
-
else
|
1525
|
-
Check_Type(arg1,T_STRING); /* force exception */
|
1526
|
-
glPolygonStipple(mask);
|
1527
|
-
return Qnil;
|
1528
|
-
}
|
1529
|
-
|
1530
|
-
static VALUE
|
1531
|
-
gl_Scissor(obj,arg1,arg2,arg3,arg4)
|
1532
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
1533
|
-
{
|
1534
|
-
GLint x;
|
1535
|
-
GLint y;
|
1536
|
-
GLsizei width;
|
1537
|
-
GLsizei height;
|
1538
|
-
x = (GLint)NUM2INT(arg1);
|
1539
|
-
y = (GLint)NUM2INT(arg2);
|
1540
|
-
width = (GLsizei)NUM2UINT(arg3);
|
1541
|
-
height = (GLsizei)NUM2UINT(arg4);
|
1542
|
-
glScissor(x,y,width,height);
|
1543
|
-
return Qnil;
|
1544
|
-
}
|
1545
546
|
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
547
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
548
|
+
glPolygonStipple((GLvoid *)NUM2INT(arg1));
|
549
|
+
} else {
|
550
|
+
memset(mask, 0x0, sizeof(GLubyte)*128);
|
551
|
+
if (TYPE(arg1) == T_ARRAY) {
|
552
|
+
ary2cubyte(arg1,mask,128);
|
553
|
+
}
|
554
|
+
else if (TYPE(arg1) == T_STRING) {
|
555
|
+
if (RSTRING(arg1)->len < 128)
|
556
|
+
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg1)->len);
|
557
|
+
memcpy(mask, RSTRING(arg1)->ptr, 128);
|
558
|
+
}
|
559
|
+
else
|
560
|
+
Check_Type(arg1,T_STRING); /* force exception */
|
561
|
+
glPolygonStipple(mask);
|
562
|
+
}
|
1553
563
|
return Qnil;
|
1554
564
|
}
|
1555
565
|
|
@@ -1611,7 +621,6 @@ VALUE obj,arg1,arg2,arg3;
|
|
1611
621
|
return Qnil;
|
1612
622
|
}
|
1613
623
|
|
1614
|
-
/* FIXME: spatna funkce ? */
|
1615
624
|
static VALUE
|
1616
625
|
gl_TexImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
|
1617
626
|
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
@@ -1624,9 +633,6 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
1624
633
|
GLenum format;
|
1625
634
|
GLenum type;
|
1626
635
|
const char *pixels;
|
1627
|
-
int size;
|
1628
|
-
int type_size;
|
1629
|
-
int format_size;
|
1630
636
|
target = (GLenum)NUM2INT(arg1);
|
1631
637
|
level = (GLint)NUM2INT(arg2);
|
1632
638
|
components = (GLint)NUM2INT(arg3);
|
@@ -1634,29 +640,18 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
|
|
1634
640
|
border = (GLint)NUM2INT(arg5);
|
1635
641
|
format = (GLenum)NUM2INT(arg6);
|
1636
642
|
type = (GLenum)NUM2INT(arg7);
|
1637
|
-
type_size = gltype_size(type);
|
1638
|
-
format_size = glformat_size(format);
|
1639
643
|
|
1640
|
-
if (
|
644
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
645
|
+
glTexImage1D(target,level,components,width,border,format,type,(GLvoid *)NUM2INT(arg8));
|
1641
646
|
return Qnil;
|
1642
|
-
|
1643
|
-
size = format_size*(width/8);
|
1644
|
-
else
|
1645
|
-
size = type_size*format_size*width;
|
647
|
+
}
|
1646
648
|
|
1647
649
|
if (target == GL_PROXY_TEXTURE_1D || NIL_P(arg8)) { /* proxy texture, no data read */
|
1648
650
|
pixels = NULL;
|
1649
651
|
} else {
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
if (RSTRING(arg8)->len < size)
|
1654
|
-
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg8)->len);
|
1655
|
-
pixels = RSTRING(arg8)->ptr;
|
1656
|
-
} else {
|
1657
|
-
Check_Type(arg8,T_STRING); /* force exception */
|
1658
|
-
return Qnil;
|
1659
|
-
}
|
652
|
+
Check_Type(arg8,T_STRING);
|
653
|
+
CheckDataSize(type,format,width,arg8);
|
654
|
+
pixels = RSTRING(arg8)->ptr;
|
1660
655
|
}
|
1661
656
|
glTexImage1D(target,level,components,width,border,format,type,pixels);
|
1662
657
|
return Qnil;
|
@@ -1675,9 +670,6 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
1675
670
|
GLenum format;
|
1676
671
|
GLenum type;
|
1677
672
|
const char *pixels;
|
1678
|
-
int size;
|
1679
|
-
int type_size;
|
1680
|
-
int format_size;
|
1681
673
|
target = (GLenum)NUM2INT(arg1);
|
1682
674
|
level = (GLint)NUM2INT(arg2);
|
1683
675
|
components = (GLint)NUM2INT(arg3);
|
@@ -1686,29 +678,18 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
1686
678
|
border = (GLint)NUM2INT(arg6);
|
1687
679
|
format = (GLenum)NUM2INT(arg7);
|
1688
680
|
type = (GLenum)NUM2INT(arg8);
|
1689
|
-
type_size = gltype_size(type);
|
1690
|
-
format_size = glformat_size(format);
|
1691
681
|
|
1692
|
-
if (
|
682
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
683
|
+
glTexImage2D(target,level,components,width,height,border,format,type,(GLvoid *)NUM2INT(arg9));
|
1693
684
|
return Qnil;
|
1694
|
-
|
1695
|
-
size = format_size*((height*width)/8);
|
1696
|
-
else
|
1697
|
-
size = type_size*format_size*height*width;
|
685
|
+
}
|
1698
686
|
|
1699
|
-
if (target == GL_PROXY_TEXTURE_2D || target == GL_PROXY_TEXTURE_CUBE_MAP || NIL_P(arg9)) { /* proxy texture, no data read */
|
687
|
+
if (target == GL_PROXY_TEXTURE_2D || target == GL_PROXY_TEXTURE_1D_ARRAY_EXT || target == GL_PROXY_TEXTURE_CUBE_MAP || NIL_P(arg9)) { /* proxy texture, no data read */
|
1700
688
|
pixels = NULL;
|
1701
689
|
} else {
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
if (RSTRING(arg9)->len < size)
|
1706
|
-
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg9)->len);
|
1707
|
-
pixels = RSTRING(arg9)->ptr;
|
1708
|
-
} else {
|
1709
|
-
Check_Type(arg9,T_STRING); /* force exception */
|
1710
|
-
return Qnil;
|
1711
|
-
}
|
690
|
+
Check_Type(arg9,T_STRING);
|
691
|
+
CheckDataSize(type,format,width*height,arg9);
|
692
|
+
pixels = RSTRING(arg9)->ptr;
|
1712
693
|
}
|
1713
694
|
glTexImage2D(target,level,components,width,height,border,format,type,pixels);
|
1714
695
|
return Qnil;
|
@@ -1753,388 +734,160 @@ VALUE obj,arg1,arg2,arg3;
|
|
1753
734
|
target = (GLenum)NUM2INT(arg1);
|
1754
735
|
pname = (GLenum)NUM2INT(arg2);
|
1755
736
|
param = (GLint)NUM2INT(arg3);
|
1756
|
-
glTexEnvi(target,pname,param);
|
1757
|
-
return Qnil;
|
1758
|
-
}
|
1759
|
-
|
1760
|
-
static VALUE
|
1761
|
-
gl_TexEnviv(obj,arg1,arg2,arg3)
|
1762
|
-
VALUE obj,arg1,arg2,arg3;
|
1763
|
-
{
|
1764
|
-
GLenum target;
|
1765
|
-
GLenum pname;
|
1766
|
-
GLint params[4] = {0,0,0,0};
|
1767
|
-
target = (GLenum)NUM2INT(arg1);
|
1768
|
-
pname = (GLenum)NUM2INT(arg2);
|
1769
|
-
Check_Type(arg3,T_ARRAY);
|
1770
|
-
ary2cint(arg3,params,4);
|
1771
|
-
glTexEnviv(target,pname,params);
|
1772
|
-
return Qnil;
|
1773
|
-
}
|
1774
|
-
|
1775
|
-
static VALUE
|
1776
|
-
gl_TexGend(obj,arg1,arg2,arg3)
|
1777
|
-
VALUE obj,arg1,arg2,arg3;
|
1778
|
-
{
|
1779
|
-
GLenum coord;
|
1780
|
-
GLenum pname;
|
1781
|
-
GLdouble param;
|
1782
|
-
coord = (GLenum)NUM2INT(arg1);
|
1783
|
-
pname = (GLenum)NUM2INT(arg2);
|
1784
|
-
param = (GLdouble)NUM2DBL(arg3);
|
1785
|
-
glTexGend(coord,pname,param);
|
1786
|
-
return Qnil;
|
1787
|
-
}
|
1788
|
-
|
1789
|
-
static VALUE
|
1790
|
-
gl_TexGendv(obj,arg1,arg2,arg3)
|
1791
|
-
VALUE obj,arg1,arg2,arg3;
|
1792
|
-
{
|
1793
|
-
GLenum coord;
|
1794
|
-
GLenum pname;
|
1795
|
-
GLdouble params[4] = {0.0,0.0,0.0,0.0};
|
1796
|
-
coord = (GLenum)NUM2INT(arg1);
|
1797
|
-
pname = (GLenum)NUM2INT(arg2);
|
1798
|
-
Check_Type(arg3,T_ARRAY);
|
1799
|
-
ary2cdbl(arg3,params,4);
|
1800
|
-
glTexGendv(coord,pname,params);
|
1801
|
-
return Qnil;
|
1802
|
-
}
|
1803
|
-
|
1804
|
-
|
1805
|
-
static VALUE
|
1806
|
-
gl_TexGenf(obj,arg1,arg2,arg3)
|
1807
|
-
VALUE obj,arg1,arg2,arg3;
|
1808
|
-
{
|
1809
|
-
GLenum coord;
|
1810
|
-
GLenum pname;
|
1811
|
-
GLfloat param;
|
1812
|
-
coord = (GLenum)NUM2INT(arg1);
|
1813
|
-
pname = (GLenum)NUM2INT(arg2);
|
1814
|
-
param = (GLfloat)NUM2DBL(arg3);
|
1815
|
-
glTexGenf(coord,pname,param);
|
1816
|
-
return Qnil;
|
1817
|
-
}
|
1818
|
-
|
1819
|
-
static VALUE
|
1820
|
-
gl_TexGenfv(obj,arg1,arg2,arg3)
|
1821
|
-
VALUE obj,arg1,arg2,arg3;
|
1822
|
-
{
|
1823
|
-
GLenum coord;
|
1824
|
-
GLenum pname;
|
1825
|
-
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
1826
|
-
coord = (GLenum)NUM2INT(arg1);
|
1827
|
-
pname = (GLenum)NUM2INT(arg2);
|
1828
|
-
Check_Type(arg3,T_ARRAY);
|
1829
|
-
ary2cflt(arg3,params,4);
|
1830
|
-
glTexGenfv(coord,pname,params);
|
1831
|
-
return Qnil;
|
1832
|
-
}
|
1833
|
-
|
1834
|
-
static VALUE
|
1835
|
-
gl_TexGeni(obj,arg1,arg2,arg3)
|
1836
|
-
VALUE obj,arg1,arg2,arg3;
|
1837
|
-
{
|
1838
|
-
GLenum coord;
|
1839
|
-
GLenum pname;
|
1840
|
-
GLint param;
|
1841
|
-
coord = (GLenum)NUM2INT(arg1);
|
1842
|
-
pname = (GLenum)NUM2INT(arg2);
|
1843
|
-
param = (GLint)NUM2INT(arg3);
|
1844
|
-
glTexGeni(coord,pname,param);
|
1845
|
-
return Qnil;
|
1846
|
-
}
|
1847
|
-
|
1848
|
-
static VALUE
|
1849
|
-
gl_TexGeniv(obj,arg1,arg2,arg3)
|
1850
|
-
VALUE obj,arg1,arg2,arg3;
|
1851
|
-
{
|
1852
|
-
GLenum coord;
|
1853
|
-
GLenum pname;
|
1854
|
-
GLint params[4] = {0,0,0,0};
|
1855
|
-
coord = (GLenum)NUM2INT(arg1);
|
1856
|
-
pname = (GLenum)NUM2INT(arg2);
|
1857
|
-
Check_Type(arg3,T_ARRAY);
|
1858
|
-
ary2cint(arg3,params,4);
|
1859
|
-
glTexGeniv(coord,pname,params);
|
1860
|
-
return Qnil;
|
1861
|
-
}
|
1862
|
-
static VALUE g_current_feed_buffer;
|
1863
|
-
static VALUE
|
1864
|
-
gl_FeedbackBuffer(obj,arg1,arg2)
|
1865
|
-
VALUE obj,arg1,arg2;
|
1866
|
-
{
|
1867
|
-
GLsizei size;
|
1868
|
-
GLenum type;
|
1869
|
-
size = (GLsizei)NUM2UINT(arg1);
|
1870
|
-
type = (GLenum)NUM2INT(arg2);
|
1871
|
-
g_current_feed_buffer = allocate_buffer_with_string(sizeof(GLfloat)*size);
|
1872
|
-
rb_str_freeze(g_current_feed_buffer);
|
1873
|
-
glFeedbackBuffer(size, type, (GLfloat*)RSTRING(g_current_feed_buffer)->ptr);
|
1874
|
-
return g_current_feed_buffer;
|
1875
|
-
}
|
1876
|
-
|
1877
|
-
static VALUE g_current_sel_buffer;
|
1878
|
-
static VALUE
|
1879
|
-
gl_SelectBuffer(obj,arg1)
|
1880
|
-
VALUE obj,arg1;
|
1881
|
-
{
|
1882
|
-
GLsizei size;
|
1883
|
-
size = (GLsizei)NUM2UINT(arg1);
|
1884
|
-
g_current_sel_buffer = allocate_buffer_with_string(sizeof(GLuint)*size);
|
1885
|
-
rb_str_freeze(g_current_sel_buffer);
|
1886
|
-
glSelectBuffer(size, (GLuint*)RSTRING(g_current_sel_buffer)->ptr);
|
1887
|
-
return g_current_sel_buffer;
|
1888
|
-
}
|
1889
|
-
|
1890
|
-
static VALUE
|
1891
|
-
gl_RenderMode(obj,arg1)
|
1892
|
-
VALUE obj,arg1;
|
1893
|
-
{
|
1894
|
-
GLenum mode;
|
1895
|
-
GLint ret;
|
1896
|
-
mode = (GLenum)NUM2INT(arg1);
|
1897
|
-
ret = glRenderMode(mode);
|
1898
|
-
return INT2NUM(ret);
|
1899
|
-
}
|
1900
|
-
|
1901
|
-
static VALUE
|
1902
|
-
gl_InitNames(obj)
|
1903
|
-
VALUE obj;
|
1904
|
-
{
|
1905
|
-
glInitNames();
|
1906
|
-
return Qnil;
|
1907
|
-
}
|
1908
|
-
|
1909
|
-
static VALUE
|
1910
|
-
gl_LoadName(obj,arg1)
|
1911
|
-
VALUE obj,arg1;
|
1912
|
-
{
|
1913
|
-
GLuint name;
|
1914
|
-
name = (GLuint)NUM2UINT(arg1);
|
1915
|
-
glLoadName(name);
|
1916
|
-
return Qnil;
|
1917
|
-
}
|
1918
|
-
|
1919
|
-
static VALUE
|
1920
|
-
gl_PassThrough(obj,arg1)
|
1921
|
-
VALUE obj,arg1;
|
1922
|
-
{
|
1923
|
-
GLfloat token;
|
1924
|
-
token = (GLfloat)NUM2DBL(arg1);
|
1925
|
-
glPassThrough(token);
|
1926
|
-
return Qnil;
|
1927
|
-
}
|
1928
|
-
|
1929
|
-
static VALUE
|
1930
|
-
gl_PopName(obj)
|
1931
|
-
VALUE obj;
|
1932
|
-
{
|
1933
|
-
glPopName();
|
1934
|
-
return Qnil;
|
1935
|
-
}
|
1936
|
-
|
1937
|
-
static VALUE
|
1938
|
-
gl_PushName(obj,arg1)
|
1939
|
-
VALUE obj,arg1;
|
1940
|
-
{
|
1941
|
-
GLuint name;
|
1942
|
-
name = (GLuint)NUM2UINT(arg1);
|
1943
|
-
glPushName(name);
|
1944
|
-
return Qnil;
|
1945
|
-
}
|
1946
|
-
|
1947
|
-
static VALUE
|
1948
|
-
gl_DrawBuffer(obj,arg1)
|
1949
|
-
VALUE obj,arg1;
|
1950
|
-
{
|
1951
|
-
GLenum mode;
|
1952
|
-
mode = (GLenum)NUM2INT(arg1);
|
1953
|
-
glDrawBuffer(mode);
|
1954
|
-
return Qnil;
|
1955
|
-
}
|
1956
|
-
|
1957
|
-
static VALUE
|
1958
|
-
gl_Clear(obj,arg1)
|
1959
|
-
VALUE obj,arg1;
|
1960
|
-
{
|
1961
|
-
GLbitfield mask;
|
1962
|
-
mask = (GLbitfield)NUM2UINT(arg1);
|
1963
|
-
glClear(mask);
|
1964
|
-
return Qnil;
|
1965
|
-
}
|
1966
|
-
|
1967
|
-
static VALUE
|
1968
|
-
gl_ClearAccum(obj,arg1,arg2,arg3,arg4)
|
1969
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
1970
|
-
{
|
1971
|
-
GLfloat red;
|
1972
|
-
GLfloat green;
|
1973
|
-
GLfloat blue;
|
1974
|
-
GLfloat alpha;
|
1975
|
-
red = (GLfloat)NUM2DBL(arg1);
|
1976
|
-
green = (GLfloat)NUM2DBL(arg2);
|
1977
|
-
blue = (GLfloat)NUM2DBL(arg3);
|
1978
|
-
alpha = (GLfloat)NUM2DBL(arg4);
|
1979
|
-
glClearAccum(red,green,blue,alpha);
|
1980
|
-
return Qnil;
|
1981
|
-
}
|
1982
|
-
|
1983
|
-
static VALUE
|
1984
|
-
gl_ClearIndex(obj,arg1)
|
1985
|
-
VALUE obj,arg1;
|
1986
|
-
{
|
1987
|
-
GLfloat c;
|
1988
|
-
c = (GLfloat)NUM2DBL(arg1);
|
1989
|
-
glClearIndex(c);
|
1990
|
-
return Qnil;
|
1991
|
-
}
|
1992
|
-
|
1993
|
-
static VALUE
|
1994
|
-
gl_ClearColor(obj,arg1,arg2,arg3,arg4)
|
1995
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
1996
|
-
{
|
1997
|
-
GLclampf red;
|
1998
|
-
GLclampf green;
|
1999
|
-
GLclampf blue;
|
2000
|
-
GLclampf alpha;
|
2001
|
-
red = (GLclampf)NUM2DBL(arg1);
|
2002
|
-
green = (GLclampf)NUM2DBL(arg2);
|
2003
|
-
blue = (GLclampf)NUM2DBL(arg3);
|
2004
|
-
alpha = (GLclampf)NUM2DBL(arg4);
|
2005
|
-
glClearColor(red,green,blue,alpha);
|
2006
|
-
return Qnil;
|
2007
|
-
}
|
2008
|
-
|
2009
|
-
static VALUE
|
2010
|
-
gl_ClearStencil(obj,arg1)
|
2011
|
-
VALUE obj,arg1;
|
2012
|
-
{
|
2013
|
-
GLint s;
|
2014
|
-
s = (GLint)NUM2INT(arg1);
|
2015
|
-
glClearStencil(s);
|
737
|
+
glTexEnvi(target,pname,param);
|
2016
738
|
return Qnil;
|
2017
739
|
}
|
2018
740
|
|
2019
741
|
static VALUE
|
2020
|
-
|
2021
|
-
VALUE obj,arg1;
|
742
|
+
gl_TexEnviv(obj,arg1,arg2,arg3)
|
743
|
+
VALUE obj,arg1,arg2,arg3;
|
2022
744
|
{
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
745
|
+
GLenum target;
|
746
|
+
GLenum pname;
|
747
|
+
GLint params[4] = {0,0,0,0};
|
748
|
+
target = (GLenum)NUM2INT(arg1);
|
749
|
+
pname = (GLenum)NUM2INT(arg2);
|
750
|
+
Check_Type(arg3,T_ARRAY);
|
751
|
+
ary2cint(arg3,params,4);
|
752
|
+
glTexEnviv(target,pname,params);
|
2026
753
|
return Qnil;
|
2027
754
|
}
|
2028
755
|
|
2029
756
|
static VALUE
|
2030
|
-
|
2031
|
-
VALUE obj,arg1;
|
757
|
+
gl_TexGend(obj,arg1,arg2,arg3)
|
758
|
+
VALUE obj,arg1,arg2,arg3;
|
2032
759
|
{
|
2033
|
-
|
2034
|
-
|
2035
|
-
|
760
|
+
GLenum coord;
|
761
|
+
GLenum pname;
|
762
|
+
GLdouble param;
|
763
|
+
coord = (GLenum)NUM2INT(arg1);
|
764
|
+
pname = (GLenum)NUM2INT(arg2);
|
765
|
+
param = (GLdouble)NUM2DBL(arg3);
|
766
|
+
glTexGend(coord,pname,param);
|
2036
767
|
return Qnil;
|
2037
768
|
}
|
2038
769
|
|
2039
770
|
static VALUE
|
2040
|
-
|
2041
|
-
VALUE obj,arg1,arg2,arg3
|
771
|
+
gl_TexGendv(obj,arg1,arg2,arg3)
|
772
|
+
VALUE obj,arg1,arg2,arg3;
|
2042
773
|
{
|
2043
|
-
|
2044
|
-
|
2045
|
-
|
2046
|
-
|
2047
|
-
|
2048
|
-
|
2049
|
-
|
2050
|
-
|
2051
|
-
glColorMask(red,green,blue,alpha);
|
774
|
+
GLenum coord;
|
775
|
+
GLenum pname;
|
776
|
+
GLdouble params[4] = {0.0,0.0,0.0,0.0};
|
777
|
+
coord = (GLenum)NUM2INT(arg1);
|
778
|
+
pname = (GLenum)NUM2INT(arg2);
|
779
|
+
Check_Type(arg3,T_ARRAY);
|
780
|
+
ary2cdbl(arg3,params,4);
|
781
|
+
glTexGendv(coord,pname,params);
|
2052
782
|
return Qnil;
|
2053
783
|
}
|
2054
784
|
|
2055
|
-
static VALUE
|
2056
|
-
gl_DepthMask(obj,arg1)
|
2057
|
-
VALUE obj,arg1;
|
2058
|
-
{
|
2059
|
-
GLboolean flag;
|
2060
|
-
flag = (GLboolean)NUM2INT(arg1);
|
2061
|
-
glDepthMask(flag);
|
2062
|
-
return Qnil;
|
2063
|
-
}
|
2064
785
|
|
2065
786
|
static VALUE
|
2066
|
-
|
2067
|
-
VALUE obj,arg1;
|
787
|
+
gl_TexGenf(obj,arg1,arg2,arg3)
|
788
|
+
VALUE obj,arg1,arg2,arg3;
|
2068
789
|
{
|
2069
|
-
|
2070
|
-
|
2071
|
-
|
790
|
+
GLenum coord;
|
791
|
+
GLenum pname;
|
792
|
+
GLfloat param;
|
793
|
+
coord = (GLenum)NUM2INT(arg1);
|
794
|
+
pname = (GLenum)NUM2INT(arg2);
|
795
|
+
param = (GLfloat)NUM2DBL(arg3);
|
796
|
+
glTexGenf(coord,pname,param);
|
2072
797
|
return Qnil;
|
2073
798
|
}
|
2074
799
|
|
2075
800
|
static VALUE
|
2076
|
-
|
2077
|
-
VALUE obj,arg1,arg2;
|
801
|
+
gl_TexGenfv(obj,arg1,arg2,arg3)
|
802
|
+
VALUE obj,arg1,arg2,arg3;
|
2078
803
|
{
|
2079
|
-
GLenum
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
804
|
+
GLenum coord;
|
805
|
+
GLenum pname;
|
806
|
+
GLfloat params[4] = {0.0,0.0,0.0,0.0};
|
807
|
+
coord = (GLenum)NUM2INT(arg1);
|
808
|
+
pname = (GLenum)NUM2INT(arg2);
|
809
|
+
Check_Type(arg3,T_ARRAY);
|
810
|
+
ary2cflt(arg3,params,4);
|
811
|
+
glTexGenfv(coord,pname,params);
|
2084
812
|
return Qnil;
|
2085
813
|
}
|
2086
814
|
|
2087
815
|
static VALUE
|
2088
|
-
|
2089
|
-
VALUE obj,arg1;
|
816
|
+
gl_TexGeni(obj,arg1,arg2,arg3)
|
817
|
+
VALUE obj,arg1,arg2,arg3;
|
2090
818
|
{
|
2091
|
-
GLenum
|
2092
|
-
|
2093
|
-
|
819
|
+
GLenum coord;
|
820
|
+
GLenum pname;
|
821
|
+
GLint param;
|
822
|
+
coord = (GLenum)NUM2INT(arg1);
|
823
|
+
pname = (GLenum)NUM2INT(arg2);
|
824
|
+
param = (GLint)NUM2INT(arg3);
|
825
|
+
glTexGeni(coord,pname,param);
|
2094
826
|
return Qnil;
|
2095
827
|
}
|
2096
828
|
|
2097
829
|
static VALUE
|
2098
|
-
|
2099
|
-
VALUE obj,arg1;
|
830
|
+
gl_TexGeniv(obj,arg1,arg2,arg3)
|
831
|
+
VALUE obj,arg1,arg2,arg3;
|
2100
832
|
{
|
2101
|
-
GLenum
|
2102
|
-
|
2103
|
-
|
833
|
+
GLenum coord;
|
834
|
+
GLenum pname;
|
835
|
+
GLint params[4] = {0,0,0,0};
|
836
|
+
coord = (GLenum)NUM2INT(arg1);
|
837
|
+
pname = (GLenum)NUM2INT(arg2);
|
838
|
+
Check_Type(arg3,T_ARRAY);
|
839
|
+
ary2cint(arg3,params,4);
|
840
|
+
glTexGeniv(coord,pname,params);
|
2104
841
|
return Qnil;
|
2105
842
|
}
|
2106
|
-
|
843
|
+
static VALUE g_current_feed_buffer;
|
2107
844
|
static VALUE
|
2108
|
-
|
2109
|
-
VALUE obj;
|
845
|
+
gl_FeedbackBuffer(obj,arg1,arg2)
|
846
|
+
VALUE obj,arg1,arg2;
|
2110
847
|
{
|
2111
|
-
|
2112
|
-
|
848
|
+
GLsizei size;
|
849
|
+
GLenum type;
|
850
|
+
size = (GLsizei)NUM2UINT(arg1);
|
851
|
+
type = (GLenum)NUM2INT(arg2);
|
852
|
+
g_current_feed_buffer = allocate_buffer_with_string(sizeof(GLfloat)*size);
|
853
|
+
rb_str_freeze(g_current_feed_buffer);
|
854
|
+
glFeedbackBuffer(size, type, (GLfloat*)RSTRING(g_current_feed_buffer)->ptr);
|
855
|
+
return g_current_feed_buffer;
|
2113
856
|
}
|
2114
857
|
|
858
|
+
static VALUE g_current_sel_buffer;
|
2115
859
|
static VALUE
|
2116
|
-
|
2117
|
-
VALUE obj;
|
860
|
+
gl_SelectBuffer(obj,arg1)
|
861
|
+
VALUE obj,arg1;
|
2118
862
|
{
|
2119
|
-
|
2120
|
-
|
863
|
+
GLsizei size;
|
864
|
+
size = (GLsizei)NUM2UINT(arg1);
|
865
|
+
g_current_sel_buffer = allocate_buffer_with_string(sizeof(GLuint)*size);
|
866
|
+
rb_str_freeze(g_current_sel_buffer);
|
867
|
+
glSelectBuffer(size, (GLuint*)RSTRING(g_current_sel_buffer)->ptr);
|
868
|
+
return g_current_sel_buffer;
|
2121
869
|
}
|
2122
870
|
|
2123
871
|
static VALUE
|
2124
|
-
|
2125
|
-
VALUE obj;
|
872
|
+
gl_RenderMode(obj,arg1)
|
873
|
+
VALUE obj,arg1;
|
2126
874
|
{
|
2127
|
-
|
2128
|
-
|
875
|
+
GLenum mode;
|
876
|
+
GLint ret;
|
877
|
+
mode = (GLenum)NUM2INT(arg1);
|
878
|
+
ret = glRenderMode(mode);
|
879
|
+
return INT2NUM(ret);
|
2129
880
|
}
|
2130
881
|
|
2131
882
|
static VALUE
|
2132
|
-
|
2133
|
-
VALUE obj,arg1;
|
883
|
+
gl_Accum(obj,arg1,arg2)
|
884
|
+
VALUE obj,arg1,arg2;
|
2134
885
|
{
|
2135
|
-
|
2136
|
-
|
2137
|
-
|
886
|
+
GLenum op;
|
887
|
+
GLfloat value;
|
888
|
+
op = (GLenum)NUM2INT(arg1);
|
889
|
+
value = (GLfloat)NUM2DBL(arg2);
|
890
|
+
glAccum(op,value);
|
2138
891
|
return Qnil;
|
2139
892
|
}
|
2140
893
|
|
@@ -2330,16 +1083,6 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
2330
1083
|
return Qnil;
|
2331
1084
|
}
|
2332
1085
|
|
2333
|
-
static VALUE
|
2334
|
-
gl_EvalCoord1d(obj,arg1)
|
2335
|
-
VALUE obj,arg1;
|
2336
|
-
{
|
2337
|
-
GLdouble u;
|
2338
|
-
u = (GLdouble)NUM2DBL(arg1);
|
2339
|
-
glEvalCoord1d(u);
|
2340
|
-
return Qnil;
|
2341
|
-
}
|
2342
|
-
|
2343
1086
|
static VALUE
|
2344
1087
|
gl_EvalCoord1dv(obj,arg1)
|
2345
1088
|
VALUE obj,arg1;
|
@@ -2351,16 +1094,6 @@ VALUE obj,arg1;
|
|
2351
1094
|
return Qnil;
|
2352
1095
|
}
|
2353
1096
|
|
2354
|
-
static VALUE
|
2355
|
-
gl_EvalCoord1f(obj,arg1)
|
2356
|
-
VALUE obj,arg1;
|
2357
|
-
{
|
2358
|
-
GLfloat u;
|
2359
|
-
u = (GLfloat)NUM2DBL(arg1);
|
2360
|
-
glEvalCoord1f(u);
|
2361
|
-
return Qnil;
|
2362
|
-
}
|
2363
|
-
|
2364
1097
|
static VALUE
|
2365
1098
|
gl_EvalCoord1fv(obj,arg1)
|
2366
1099
|
VALUE obj,arg1;
|
@@ -2372,18 +1105,6 @@ VALUE obj,arg1;
|
|
2372
1105
|
return Qnil;
|
2373
1106
|
}
|
2374
1107
|
|
2375
|
-
static VALUE
|
2376
|
-
gl_EvalCoord2d(obj,arg1,arg2)
|
2377
|
-
VALUE obj,arg1,arg2;
|
2378
|
-
{
|
2379
|
-
GLdouble u;
|
2380
|
-
GLdouble v;
|
2381
|
-
u = (GLdouble)NUM2DBL(arg1);
|
2382
|
-
v = (GLdouble)NUM2DBL(arg2);
|
2383
|
-
glEvalCoord2d(u,v);
|
2384
|
-
return Qnil;
|
2385
|
-
}
|
2386
|
-
|
2387
1108
|
static VALUE
|
2388
1109
|
gl_EvalCoord2dv(obj,arg1)
|
2389
1110
|
VALUE obj,arg1;
|
@@ -2395,18 +1116,6 @@ VALUE obj,arg1;
|
|
2395
1116
|
return Qnil;
|
2396
1117
|
}
|
2397
1118
|
|
2398
|
-
static VALUE
|
2399
|
-
gl_EvalCoord2f(obj,arg1,arg2)
|
2400
|
-
VALUE obj,arg1,arg2;
|
2401
|
-
{
|
2402
|
-
GLfloat u;
|
2403
|
-
GLfloat v;
|
2404
|
-
u = (GLfloat)NUM2DBL(arg1);
|
2405
|
-
v = (GLfloat)NUM2DBL(arg2);
|
2406
|
-
glEvalCoord2f(u,v);
|
2407
|
-
return Qnil;
|
2408
|
-
}
|
2409
|
-
|
2410
1119
|
static VALUE
|
2411
1120
|
gl_EvalCoord2fv(obj,arg1)
|
2412
1121
|
VALUE obj,arg1;
|
@@ -2432,16 +1141,6 @@ VALUE obj,arg1,arg2,arg3;
|
|
2432
1141
|
return Qnil;
|
2433
1142
|
}
|
2434
1143
|
|
2435
|
-
static VALUE
|
2436
|
-
gl_EvalPoint1(obj,arg1)
|
2437
|
-
VALUE obj,arg1;
|
2438
|
-
{
|
2439
|
-
GLint i;
|
2440
|
-
i = (GLint)NUM2INT(arg1);
|
2441
|
-
glEvalPoint1(i);
|
2442
|
-
return Qnil;
|
2443
|
-
}
|
2444
|
-
|
2445
1144
|
static VALUE
|
2446
1145
|
gl_EvalMesh2(obj,arg1,arg2,arg3,arg4,arg5)
|
2447
1146
|
VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
@@ -2460,18 +1159,6 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
2460
1159
|
return Qnil;
|
2461
1160
|
}
|
2462
1161
|
|
2463
|
-
static VALUE
|
2464
|
-
gl_EvalPoint2(obj,arg1,arg2)
|
2465
|
-
VALUE obj,arg1,arg2;
|
2466
|
-
{
|
2467
|
-
GLint i;
|
2468
|
-
GLint j;
|
2469
|
-
i = (GLint)NUM2INT(arg1);
|
2470
|
-
j = (GLint)NUM2INT(arg2);
|
2471
|
-
glEvalPoint2(i,j);
|
2472
|
-
return Qnil;
|
2473
|
-
}
|
2474
|
-
|
2475
1162
|
static VALUE
|
2476
1163
|
gl_AlphaFunc(obj,arg1,arg2)
|
2477
1164
|
VALUE obj,arg1,arg2;
|
@@ -2484,28 +1171,6 @@ VALUE obj,arg1,arg2;
|
|
2484
1171
|
return Qnil;
|
2485
1172
|
}
|
2486
1173
|
|
2487
|
-
static VALUE
|
2488
|
-
gl_BlendFunc(obj,arg1,arg2)
|
2489
|
-
VALUE obj,arg1,arg2;
|
2490
|
-
{
|
2491
|
-
GLenum sfactor;
|
2492
|
-
GLenum dfactor;
|
2493
|
-
sfactor = (GLenum)NUM2INT(arg1);
|
2494
|
-
dfactor = (GLenum)NUM2INT(arg2);
|
2495
|
-
glBlendFunc(sfactor,dfactor);
|
2496
|
-
return Qnil;
|
2497
|
-
}
|
2498
|
-
|
2499
|
-
static VALUE
|
2500
|
-
gl_LogicOp(obj,arg1)
|
2501
|
-
VALUE obj,arg1;
|
2502
|
-
{
|
2503
|
-
GLenum opcode;
|
2504
|
-
opcode = (GLenum)NUM2INT(arg1);
|
2505
|
-
glLogicOp(opcode);
|
2506
|
-
return Qnil;
|
2507
|
-
}
|
2508
|
-
|
2509
1174
|
static VALUE
|
2510
1175
|
gl_StencilFunc(obj,arg1,arg2,arg3)
|
2511
1176
|
VALUE obj,arg1,arg2,arg3;
|
@@ -2520,42 +1185,6 @@ VALUE obj,arg1,arg2,arg3;
|
|
2520
1185
|
return Qnil;
|
2521
1186
|
}
|
2522
1187
|
|
2523
|
-
static VALUE
|
2524
|
-
gl_StencilOp(obj,arg1,arg2,arg3)
|
2525
|
-
VALUE obj,arg1,arg2,arg3;
|
2526
|
-
{
|
2527
|
-
GLenum fail;
|
2528
|
-
GLenum zfail;
|
2529
|
-
GLenum zpass;
|
2530
|
-
fail = (GLenum)NUM2INT(arg1);
|
2531
|
-
zfail = (GLenum)NUM2INT(arg2);
|
2532
|
-
zpass = (GLenum)NUM2INT(arg3);
|
2533
|
-
glStencilOp(fail,zfail,zpass);
|
2534
|
-
return Qnil;
|
2535
|
-
}
|
2536
|
-
|
2537
|
-
static VALUE
|
2538
|
-
gl_DepthFunc(obj,arg1)
|
2539
|
-
VALUE obj,arg1;
|
2540
|
-
{
|
2541
|
-
GLenum func;
|
2542
|
-
func = (GLenum)NUM2INT(arg1);
|
2543
|
-
glDepthFunc(func);
|
2544
|
-
return Qnil;
|
2545
|
-
}
|
2546
|
-
|
2547
|
-
static VALUE
|
2548
|
-
gl_PixelZoom(obj,arg1,arg2)
|
2549
|
-
VALUE obj,arg1,arg2;
|
2550
|
-
{
|
2551
|
-
GLfloat xfactor;
|
2552
|
-
GLfloat yfactor;
|
2553
|
-
xfactor = (GLfloat)NUM2DBL(arg1);
|
2554
|
-
yfactor = (GLfloat)NUM2DBL(arg2);
|
2555
|
-
glPixelZoom(xfactor,yfactor);
|
2556
|
-
return Qnil;
|
2557
|
-
}
|
2558
|
-
|
2559
1188
|
static VALUE
|
2560
1189
|
gl_PixelTransferf(obj,arg1,arg2)
|
2561
1190
|
VALUE obj,arg1,arg2;
|
@@ -2604,66 +1233,45 @@ VALUE obj,arg1,arg2;
|
|
2604
1233
|
return Qnil;
|
2605
1234
|
}
|
2606
1235
|
|
2607
|
-
|
2608
|
-
|
2609
|
-
|
2610
|
-
|
2611
|
-
|
2612
|
-
|
2613
|
-
|
2614
|
-
map
|
2615
|
-
|
2616
|
-
size
|
2617
|
-
|
2618
|
-
|
2619
|
-
|
2620
|
-
|
2621
|
-
|
2622
|
-
|
2623
|
-
|
2624
|
-
|
2625
|
-
|
2626
|
-
|
2627
|
-
|
2628
|
-
|
2629
|
-
|
2630
|
-
|
2631
|
-
|
2632
|
-
|
2633
|
-
|
2634
|
-
|
2635
|
-
|
2636
|
-
|
2637
|
-
|
2638
|
-
|
2639
|
-
|
2640
|
-
|
2641
|
-
static VALUE
|
2642
|
-
gl_PixelMapusv(obj,arg1,arg2)
|
2643
|
-
VALUE obj,arg1,arg2;
|
2644
|
-
{
|
2645
|
-
GLenum map;
|
2646
|
-
GLushort *values;
|
2647
|
-
GLsizei size;
|
2648
|
-
map = (GLenum)NUM2INT(arg1);
|
2649
|
-
Check_Type(arg2,T_ARRAY);
|
2650
|
-
size = RARRAY(arg2)->len;
|
2651
|
-
values = ALLOC_N(GLushort,size);
|
2652
|
-
ary2cushort(arg2,values,size);
|
2653
|
-
glPixelMapusv(map,size,values);
|
2654
|
-
xfree(values);
|
2655
|
-
return Qnil;
|
1236
|
+
#define GLPIXELMAP_FUNC(_type_,_vartype_,_convert_) \
|
1237
|
+
static VALUE \
|
1238
|
+
gl_PixelMap##_type_##v(argc,argv,obj) \
|
1239
|
+
int argc; \
|
1240
|
+
VALUE *argv; \
|
1241
|
+
VALUE obj; \
|
1242
|
+
{ \
|
1243
|
+
GLenum map; \
|
1244
|
+
_vartype_ *values; \
|
1245
|
+
GLsizei size; \
|
1246
|
+
VALUE args[4]; \
|
1247
|
+
switch(rb_scan_args(argc, argv, "21", &args[0], &args[1], &args[2])) { \
|
1248
|
+
default: \
|
1249
|
+
case 2: \
|
1250
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) \
|
1251
|
+
rb_raise(rb_eArgError, "Pixel unpack buffer bound, but offset argument missing"); \
|
1252
|
+
map = (GLenum)NUM2INT(args[0]); \
|
1253
|
+
Check_Type(args[1],T_ARRAY); \
|
1254
|
+
size = RARRAY(args[1])->len; \
|
1255
|
+
values = ALLOC_N(_vartype_,size); \
|
1256
|
+
_convert_(args[1],values,size); \
|
1257
|
+
glPixelMap##_type_##v(map,size,values); \
|
1258
|
+
xfree(values); \
|
1259
|
+
break; \
|
1260
|
+
case 3: \
|
1261
|
+
if (!CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) \
|
1262
|
+
rb_raise(rb_eArgError, "Pixel unpack buffer not bound"); \
|
1263
|
+
map = (GLenum)NUM2INT(args[0]); \
|
1264
|
+
size = (GLsizei)NUM2INT(args[1]); \
|
1265
|
+
glPixelMap##_type_##v(map,size,(GLvoid *)NUM2INT(args[2])); \
|
1266
|
+
break; \
|
1267
|
+
} \
|
1268
|
+
return Qnil; \
|
2656
1269
|
}
|
2657
1270
|
|
2658
|
-
|
2659
|
-
|
2660
|
-
|
2661
|
-
|
2662
|
-
GLenum mode;
|
2663
|
-
mode = (GLenum)NUM2INT(arg1);
|
2664
|
-
glReadBuffer(mode);
|
2665
|
-
return Qnil;
|
2666
|
-
}
|
1271
|
+
GLPIXELMAP_FUNC(f,GLfloat,ary2cflt)
|
1272
|
+
GLPIXELMAP_FUNC(ui,GLuint,ary2cuint)
|
1273
|
+
GLPIXELMAP_FUNC(us,GLushort,ary2cushort)
|
1274
|
+
#undef GLPIXELMAP_FUNC
|
2667
1275
|
|
2668
1276
|
static VALUE
|
2669
1277
|
gl_CopyPixels(obj,arg1,arg2,arg3,arg4,arg5)
|
@@ -2684,8 +1292,10 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
2684
1292
|
}
|
2685
1293
|
|
2686
1294
|
static VALUE
|
2687
|
-
gl_ReadPixels(
|
2688
|
-
|
1295
|
+
gl_ReadPixels(argc,argv,obj)
|
1296
|
+
int argc;
|
1297
|
+
VALUE *argv;
|
1298
|
+
VALUE obj;
|
2689
1299
|
{
|
2690
1300
|
GLint x;
|
2691
1301
|
GLint y;
|
@@ -2694,29 +1304,36 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
|
2694
1304
|
int format;
|
2695
1305
|
int type;
|
2696
1306
|
VALUE pixels;
|
2697
|
-
|
2698
|
-
|
2699
|
-
|
2700
|
-
x = (GLint)NUM2INT(
|
2701
|
-
y = (GLint)NUM2INT(
|
2702
|
-
width = (GLsizei)NUM2UINT(
|
2703
|
-
height = (GLsizei)NUM2UINT(
|
2704
|
-
format = NUM2INT(
|
2705
|
-
type = NUM2INT(
|
2706
|
-
|
2707
|
-
|
2708
|
-
|
2709
|
-
|
2710
|
-
|
2711
|
-
|
2712
|
-
|
2713
|
-
|
2714
|
-
|
2715
|
-
|
2716
|
-
|
2717
|
-
|
2718
|
-
|
2719
|
-
|
1307
|
+
VALUE args[7];
|
1308
|
+
int numargs;
|
1309
|
+
numargs = rb_scan_args(argc, argv, "61", &args[0], &args[1], &args[2], &args[3], &args[4], &args[5], &args[6]);
|
1310
|
+
x = (GLint)NUM2INT(args[0]);
|
1311
|
+
y = (GLint)NUM2INT(args[1]);
|
1312
|
+
width = (GLsizei)NUM2UINT(args[2]);
|
1313
|
+
height = (GLsizei)NUM2UINT(args[3]);
|
1314
|
+
format = NUM2INT(args[4]);
|
1315
|
+
type = NUM2INT(args[5]);
|
1316
|
+
|
1317
|
+
switch(numargs) {
|
1318
|
+
default:
|
1319
|
+
case 6:
|
1320
|
+
if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
1321
|
+
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
|
1322
|
+
pixels = allocate_buffer_with_string(GetDataSize(type,format,width*height));
|
1323
|
+
FORCE_PIXEL_STORE_MODE
|
1324
|
+
glReadPixels(x,y,width,height,format,type,(GLvoid*)RSTRING(pixels)->ptr);
|
1325
|
+
RESTORE_PIXEL_STORE_MODE
|
1326
|
+
return pixels;
|
1327
|
+
break;
|
1328
|
+
case 7:
|
1329
|
+
if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
1330
|
+
rb_raise(rb_eArgError, "Pixel pack buffer not bound");
|
1331
|
+
FORCE_PIXEL_STORE_MODE
|
1332
|
+
glReadPixels(x,y,width,height,format,type,(GLvoid*)NUM2INT(args[6]));
|
1333
|
+
RESTORE_PIXEL_STORE_MODE
|
1334
|
+
return Qnil;
|
1335
|
+
break;
|
1336
|
+
}
|
2720
1337
|
}
|
2721
1338
|
|
2722
1339
|
static VALUE
|
@@ -2728,26 +1345,18 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5;
|
|
2728
1345
|
GLenum format;
|
2729
1346
|
GLenum type;
|
2730
1347
|
const char *pixels;
|
2731
|
-
GLsizei size;
|
2732
|
-
GLsizei type_size;
|
2733
|
-
GLsizei format_size;
|
2734
1348
|
width = (GLsizei)NUM2UINT(arg1);
|
2735
1349
|
height = (GLsizei)NUM2UINT(arg2);
|
2736
1350
|
format = (GLenum)NUM2INT(arg3);
|
2737
1351
|
type = (GLenum)NUM2INT(arg4);
|
2738
|
-
|
2739
|
-
|
2740
|
-
|
2741
|
-
|
2742
|
-
|
2743
|
-
|
2744
|
-
|
2745
|
-
|
2746
|
-
size = type_size*format_size*width*height;
|
2747
|
-
if (RSTRING(arg5)->len < size)
|
2748
|
-
rb_raise(rb_eArgError, "string length:%d", RSTRING(arg5)->len);
|
2749
|
-
pixels = RSTRING(arg5)->ptr;
|
2750
|
-
glDrawPixels(width,height,format,type,pixels);
|
1352
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
1353
|
+
glDrawPixels(width,height,format,type,(GLvoid *)NUM2INT(arg5));
|
1354
|
+
} else {
|
1355
|
+
Check_Type(arg5,T_STRING);
|
1356
|
+
CheckDataSize(type,format,width*height,arg5);
|
1357
|
+
pixels = RSTRING(arg5)->ptr;
|
1358
|
+
glDrawPixels(width,height,format,type,pixels);
|
1359
|
+
}
|
2751
1360
|
return Qnil;
|
2752
1361
|
}
|
2753
1362
|
|
@@ -2776,7 +1385,7 @@ VALUE obj,arg1; \
|
|
2776
1385
|
int nitems; \
|
2777
1386
|
VALUE ary, ary2; \
|
2778
1387
|
int i,j; \
|
2779
|
-
_type_ items[
|
1388
|
+
_type_ items[64]; \
|
2780
1389
|
pname = NUM2INT(arg1); \
|
2781
1390
|
switch(pname) { \
|
2782
1391
|
case GL_ACCUM_CLEAR_VALUE: \
|
@@ -2796,10 +1405,25 @@ VALUE obj,arg1; \
|
|
2796
1405
|
case GL_SCISSOR_BOX: \
|
2797
1406
|
case GL_TEXTURE_ENV_COLOR: \
|
2798
1407
|
case GL_VIEWPORT: \
|
1408
|
+
case GL_REFERENCE_PLANE_EQUATION_SGIX: \
|
1409
|
+
case GL_FOG_OFFSET_VALUE_SGIX: \
|
1410
|
+
case GL_TEXTURE_ENV_BIAS_SGIX: \
|
1411
|
+
case GL_CULL_VERTEX_OBJECT_POSITION_EXT: \
|
1412
|
+
case GL_CULL_VERTEX_EYE_POSITION_EXT: \
|
1413
|
+
case GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX: \
|
1414
|
+
case GL_CONSTANT_COLOR0_NV: \
|
1415
|
+
case GL_CONSTANT_COLOR1_NV: \
|
1416
|
+
case GL_TEXTURE_COLOR_WRITEMASK_SGIS: \
|
1417
|
+
case GL_FLOAT_CLEAR_COLOR_VALUE_NV: \
|
2799
1418
|
nitems = 4; \
|
2800
1419
|
break; \
|
2801
1420
|
case GL_CURRENT_NORMAL: \
|
2802
1421
|
case GL_POINT_DISTANCE_ATTENUATION: \
|
1422
|
+
case GL_SPRITE_AXIS_SGIX: \
|
1423
|
+
case GL_SPRITE_TRANSLATION_SGIX: \
|
1424
|
+
case GL_CURRENT_RASTER_NORMAL_SGIX: \
|
1425
|
+
case GL_CURRENT_TANGENT_EXT: \
|
1426
|
+
case GL_CURRENT_BINORMAL_EXT: \
|
2803
1427
|
nitems = 3; \
|
2804
1428
|
break; \
|
2805
1429
|
case GL_DEPTH_RANGE: \
|
@@ -2811,11 +1435,56 @@ VALUE obj,arg1; \
|
|
2811
1435
|
case GL_POLYGON_MODE: \
|
2812
1436
|
case GL_ALIASED_LINE_WIDTH_RANGE: \
|
2813
1437
|
case GL_ALIASED_POINT_SIZE_RANGE: \
|
1438
|
+
case GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX: \
|
1439
|
+
case GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX: \
|
1440
|
+
case GL_FOG_FUNC_SGIS: \
|
1441
|
+
case GL_DEPTH_BOUNDS_EXT: \
|
2814
1442
|
nitems = 2; \
|
2815
1443
|
break; \
|
2816
1444
|
case GL_MODELVIEW_MATRIX: \
|
2817
1445
|
case GL_PROJECTION_MATRIX: \
|
2818
1446
|
case GL_TEXTURE_MATRIX: \
|
1447
|
+
case GL_COLOR_MATRIX: \
|
1448
|
+
case GL_TRANSPOSE_MODELVIEW_MATRIX: \
|
1449
|
+
case GL_TRANSPOSE_PROJECTION_MATRIX: \
|
1450
|
+
case GL_TRANSPOSE_TEXTURE_MATRIX: \
|
1451
|
+
case GL_TRANSPOSE_COLOR_MATRIX: \
|
1452
|
+
case GL_MODELVIEW0_ARB: \
|
1453
|
+
case GL_MODELVIEW1_ARB: \
|
1454
|
+
case GL_MODELVIEW2_ARB: \
|
1455
|
+
case GL_MODELVIEW3_ARB: \
|
1456
|
+
case GL_MODELVIEW4_ARB: \
|
1457
|
+
case GL_MODELVIEW5_ARB: \
|
1458
|
+
case GL_MODELVIEW6_ARB: \
|
1459
|
+
case GL_MODELVIEW7_ARB: \
|
1460
|
+
case GL_MODELVIEW8_ARB: \
|
1461
|
+
case GL_MODELVIEW9_ARB: \
|
1462
|
+
case GL_MODELVIEW10_ARB: \
|
1463
|
+
case GL_MODELVIEW11_ARB: \
|
1464
|
+
case GL_MODELVIEW12_ARB: \
|
1465
|
+
case GL_MODELVIEW13_ARB: \
|
1466
|
+
case GL_MODELVIEW14_ARB: \
|
1467
|
+
case GL_MODELVIEW15_ARB: \
|
1468
|
+
case GL_MODELVIEW16_ARB: \
|
1469
|
+
case GL_MODELVIEW17_ARB: \
|
1470
|
+
case GL_MODELVIEW18_ARB: \
|
1471
|
+
case GL_MODELVIEW19_ARB: \
|
1472
|
+
case GL_MODELVIEW20_ARB: \
|
1473
|
+
case GL_MODELVIEW21_ARB: \
|
1474
|
+
case GL_MODELVIEW22_ARB: \
|
1475
|
+
case GL_MODELVIEW23_ARB: \
|
1476
|
+
case GL_MODELVIEW24_ARB: \
|
1477
|
+
case GL_MODELVIEW25_ARB: \
|
1478
|
+
case GL_MODELVIEW26_ARB: \
|
1479
|
+
case GL_MODELVIEW27_ARB: \
|
1480
|
+
case GL_MODELVIEW28_ARB: \
|
1481
|
+
case GL_MODELVIEW29_ARB: \
|
1482
|
+
case GL_MODELVIEW30_ARB: \
|
1483
|
+
case GL_MODELVIEW31_ARB: \
|
1484
|
+
case GL_MATRIX_PALETTE_ARB: \
|
1485
|
+
case GL_PIXEL_TRANSFORM_2D_MATRIX_EXT: \
|
1486
|
+
case GL_MODELVIEW1_MATRIX_EXT: \
|
1487
|
+
case GL_CURRENT_MATRIX_NV: \
|
2819
1488
|
glGet##_name_##v(pname, items); \
|
2820
1489
|
ary = rb_ary_new2(4); \
|
2821
1490
|
for (i = 0; i < 4; i++) { \
|
@@ -2828,6 +1497,11 @@ VALUE obj,arg1; \
|
|
2828
1497
|
case GL_POLYGON_STIPPLE: \
|
2829
1498
|
glGet##_name_##v(pname, items); \
|
2830
1499
|
return rb_str_new((const char*)items, 32); \
|
1500
|
+
case GL_COMPRESSED_TEXTURE_FORMATS: \
|
1501
|
+
glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &nitems); \
|
1502
|
+
if (nitems<=0||nitems>64) \
|
1503
|
+
return INT2NUM(0); \
|
1504
|
+
break; \
|
2831
1505
|
default: /* size=1 */ \
|
2832
1506
|
glGet##_name_##v(pname, items); \
|
2833
1507
|
return _conv_(items[0]); \
|
@@ -3190,124 +1864,89 @@ VALUE obj,arg1,arg2;
|
|
3190
1864
|
return retary;
|
3191
1865
|
}
|
3192
1866
|
|
3193
|
-
|
3194
|
-
|
3195
|
-
|
3196
|
-
|
3197
|
-
|
3198
|
-
|
3199
|
-
|
3200
|
-
|
3201
|
-
|
3202
|
-
|
3203
|
-
|
3204
|
-
|
3205
|
-
|
3206
|
-
|
3207
|
-
|
3208
|
-
|
3209
|
-
case
|
3210
|
-
|
3211
|
-
|
3212
|
-
|
3213
|
-
|
3214
|
-
|
3215
|
-
|
3216
|
-
|
3217
|
-
|
3218
|
-
|
3219
|
-
|
3220
|
-
|
3221
|
-
|
3222
|
-
|
3223
|
-
|
3224
|
-
|
3225
|
-
|
3226
|
-
|
3227
|
-
|
3228
|
-
|
3229
|
-
|
3230
|
-
|
3231
|
-
|
3232
|
-
|
3233
|
-
|
3234
|
-
|
3235
|
-
|
3236
|
-
|
3237
|
-
|
3238
|
-
|
3239
|
-
|
3240
|
-
|
3241
|
-
|
3242
|
-
|
3243
|
-
|
3244
|
-
|
3245
|
-
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break;
|
3246
|
-
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break;
|
3247
|
-
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break;
|
3248
|
-
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break;
|
3249
|
-
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break;
|
3250
|
-
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break;
|
3251
|
-
default:
|
3252
|
-
rb_raise(rb_eArgError, "unknown map:%d",map);
|
3253
|
-
break; /* not reached */
|
3254
|
-
}
|
3255
|
-
glGetIntegerv(map_size,&size);
|
3256
|
-
values = ALLOC_N(GLuint,size);
|
3257
|
-
glGetPixelMapuiv(map,values);
|
3258
|
-
retary = rb_ary_new2(size);
|
3259
|
-
for(i=0;i<size;i++)
|
3260
|
-
rb_ary_push(retary, INT2NUM(values[i]));
|
3261
|
-
xfree(values);
|
3262
|
-
return retary;
|
1867
|
+
#define GLGETPIXELMAP_FUNC(_type_,_vartype_,_convert_) \
|
1868
|
+
static VALUE \
|
1869
|
+
gl_GetPixelMap##_type_##v(argc,argv,obj) \
|
1870
|
+
int argc; \
|
1871
|
+
VALUE *argv; \
|
1872
|
+
VALUE obj; \
|
1873
|
+
{ \
|
1874
|
+
GLenum map; \
|
1875
|
+
GLenum map_size; \
|
1876
|
+
GLint size = 0; \
|
1877
|
+
_vartype_ *values; \
|
1878
|
+
VALUE retary; \
|
1879
|
+
VALUE args[2]; \
|
1880
|
+
int i; \
|
1881
|
+
switch (rb_scan_args(argc, argv, "11", &args[0], &args[1])) { \
|
1882
|
+
default: \
|
1883
|
+
case 1: \
|
1884
|
+
if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING)) \
|
1885
|
+
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing"); \
|
1886
|
+
\
|
1887
|
+
map = (GLenum)NUM2INT(args[0]); \
|
1888
|
+
switch(map) { \
|
1889
|
+
case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break; \
|
1890
|
+
case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break; \
|
1891
|
+
case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break; \
|
1892
|
+
case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break; \
|
1893
|
+
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break; \
|
1894
|
+
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break; \
|
1895
|
+
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break; \
|
1896
|
+
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break; \
|
1897
|
+
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break; \
|
1898
|
+
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break; \
|
1899
|
+
default: \
|
1900
|
+
rb_raise(rb_eArgError, "unknown map:%d",map); \
|
1901
|
+
break; \
|
1902
|
+
} \
|
1903
|
+
glGetIntegerv(map_size,&size); \
|
1904
|
+
values = ALLOC_N(_vartype_,size); \
|
1905
|
+
glGetPixelMap##_type_##v(map,values); \
|
1906
|
+
retary = rb_ary_new2(size); \
|
1907
|
+
for(i=0;i<size;i++) \
|
1908
|
+
rb_ary_push(retary, _convert_(values[i])); \
|
1909
|
+
xfree(values); \
|
1910
|
+
return retary; \
|
1911
|
+
case 2: \
|
1912
|
+
if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING)) \
|
1913
|
+
rb_raise(rb_eArgError, "Pixel pack buffer not bound"); \
|
1914
|
+
\
|
1915
|
+
map = (GLenum)NUM2INT(args[0]); \
|
1916
|
+
glGetPixelMap##_type_##v(map,(GLvoid*)NUM2INT(args[1])); \
|
1917
|
+
return Qnil; \
|
1918
|
+
} \
|
3263
1919
|
}
|
3264
1920
|
|
3265
|
-
|
3266
|
-
|
3267
|
-
|
3268
|
-
|
3269
|
-
GLenum map;
|
3270
|
-
GLenum map_size;
|
3271
|
-
GLint size = 0;
|
3272
|
-
GLushort *values;
|
3273
|
-
VALUE retary;
|
3274
|
-
int i;
|
3275
|
-
map = (GLenum)NUM2INT(arg1);
|
3276
|
-
switch(map) {
|
3277
|
-
case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break;
|
3278
|
-
case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break;
|
3279
|
-
case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break;
|
3280
|
-
case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break;
|
3281
|
-
case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break;
|
3282
|
-
case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break;
|
3283
|
-
case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break;
|
3284
|
-
case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break;
|
3285
|
-
case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break;
|
3286
|
-
case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break;
|
3287
|
-
default:
|
3288
|
-
rb_raise(rb_eArgError, "unknown map:%d",map);
|
3289
|
-
break; /* not reached */
|
3290
|
-
}
|
3291
|
-
glGetIntegerv(map_size,&size);
|
3292
|
-
values = ALLOC_N(GLushort,size);
|
3293
|
-
glGetPixelMapusv(map,values);
|
3294
|
-
retary = rb_ary_new2(size);
|
3295
|
-
for(i=0;i<size;i++)
|
3296
|
-
rb_ary_push(retary, INT2NUM(values[i]));
|
3297
|
-
xfree(values);
|
3298
|
-
return retary;
|
3299
|
-
}
|
1921
|
+
GLGETPIXELMAP_FUNC(f,GLfloat,rb_float_new)
|
1922
|
+
GLGETPIXELMAP_FUNC(ui,GLuint,INT2NUM)
|
1923
|
+
GLGETPIXELMAP_FUNC(us,GLushort,INT2NUM)
|
1924
|
+
#undef GLGETPIXELMAP_FUNC
|
3300
1925
|
|
3301
1926
|
static VALUE
|
3302
|
-
gl_GetPolygonStipple(obj)
|
1927
|
+
gl_GetPolygonStipple(argc,argv,obj)
|
1928
|
+
int argc;
|
1929
|
+
VALUE *argv;
|
3303
1930
|
VALUE obj;
|
3304
1931
|
{
|
1932
|
+
VALUE args[1];
|
3305
1933
|
GLubyte mask[128];
|
3306
|
-
|
3307
|
-
|
3308
|
-
|
3309
|
-
|
3310
|
-
|
1934
|
+
switch(rb_scan_args(argc, argv, "01", &args[0])) {
|
1935
|
+
default:
|
1936
|
+
case 0:
|
1937
|
+
if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
1938
|
+
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
|
1939
|
+
memset(mask, 0x0, sizeof(GLubyte)*128);
|
1940
|
+
FORCE_PIXEL_STORE_MODE
|
1941
|
+
glGetPolygonStipple(mask);
|
1942
|
+
RESTORE_PIXEL_STORE_MODE
|
1943
|
+
return rb_str_new((const char*)mask, 128);
|
1944
|
+
case 1:
|
1945
|
+
if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
1946
|
+
rb_raise(rb_eArgError, "Pixel pack buffer not bound");
|
1947
|
+
glGetPolygonStipple((GLvoid *)NUM2INT(args[0]));
|
1948
|
+
return Qnil;
|
1949
|
+
}
|
3311
1950
|
}
|
3312
1951
|
|
3313
1952
|
static VALUE
|
@@ -3335,32 +1974,17 @@ VALUE obj,arg1,arg2;
|
|
3335
1974
|
pname = (GLenum)NUM2INT(arg2);
|
3336
1975
|
switch(pname) {
|
3337
1976
|
case GL_TEXTURE_ENV_COLOR:
|
1977
|
+
case GL_TEXTURE_ENV_BIAS_SGIX:
|
1978
|
+
case GL_CULL_MODES_NV:
|
1979
|
+
case GL_OFFSET_TEXTURE_MATRIX_NV:
|
3338
1980
|
size = 4;
|
3339
1981
|
break;
|
3340
|
-
case
|
3341
|
-
|
3342
|
-
case GL_TEXTURE_LOD_BIAS:
|
3343
|
-
case GL_COMBINE_RGB:
|
3344
|
-
case GL_COMBINE_ALPHA:
|
3345
|
-
case GL_SRC0_RGB:
|
3346
|
-
case GL_SRC1_RGB:
|
3347
|
-
case GL_SRC2_RGB:
|
3348
|
-
case GL_SRC0_ALPHA:
|
3349
|
-
case GL_SRC1_ALPHA:
|
3350
|
-
case GL_SRC2_ALPHA:
|
3351
|
-
case GL_OPERAND0_RGB:
|
3352
|
-
case GL_OPERAND1_RGB:
|
3353
|
-
case GL_OPERAND2_RGB:
|
3354
|
-
case GL_OPERAND0_ALPHA:
|
3355
|
-
case GL_OPERAND1_ALPHA:
|
3356
|
-
case GL_OPERAND2_ALPHA:
|
3357
|
-
case GL_RGB_SCALE:
|
3358
|
-
case GL_ALPHA_SCALE:
|
3359
|
-
size = 1;
|
1982
|
+
case GL_CONST_EYE_NV:
|
1983
|
+
size = 3;
|
3360
1984
|
break;
|
3361
1985
|
default:
|
3362
|
-
|
3363
|
-
break;
|
1986
|
+
size = 1;
|
1987
|
+
break;
|
3364
1988
|
}
|
3365
1989
|
glGetTexEnvfv(target,pname,params);
|
3366
1990
|
retary = rb_ary_new2(size);
|
@@ -3383,32 +2007,17 @@ VALUE obj,arg1,arg2;
|
|
3383
2007
|
pname = (GLenum)NUM2INT(arg2);
|
3384
2008
|
switch(pname) {
|
3385
2009
|
case GL_TEXTURE_ENV_COLOR:
|
2010
|
+
case GL_TEXTURE_ENV_BIAS_SGIX:
|
2011
|
+
case GL_CULL_MODES_NV:
|
2012
|
+
case GL_OFFSET_TEXTURE_MATRIX_NV:
|
3386
2013
|
size = 4;
|
3387
2014
|
break;
|
3388
|
-
case
|
3389
|
-
|
3390
|
-
case GL_TEXTURE_LOD_BIAS:
|
3391
|
-
case GL_COMBINE_RGB:
|
3392
|
-
case GL_COMBINE_ALPHA:
|
3393
|
-
case GL_SRC0_RGB:
|
3394
|
-
case GL_SRC1_RGB:
|
3395
|
-
case GL_SRC2_RGB:
|
3396
|
-
case GL_SRC0_ALPHA:
|
3397
|
-
case GL_SRC1_ALPHA:
|
3398
|
-
case GL_SRC2_ALPHA:
|
3399
|
-
case GL_OPERAND0_RGB:
|
3400
|
-
case GL_OPERAND1_RGB:
|
3401
|
-
case GL_OPERAND2_RGB:
|
3402
|
-
case GL_OPERAND0_ALPHA:
|
3403
|
-
case GL_OPERAND1_ALPHA:
|
3404
|
-
case GL_OPERAND2_ALPHA:
|
3405
|
-
case GL_RGB_SCALE:
|
3406
|
-
case GL_ALPHA_SCALE:
|
3407
|
-
size = 1;
|
2015
|
+
case GL_CONST_EYE_NV:
|
2016
|
+
size = 3;
|
3408
2017
|
break;
|
3409
2018
|
default:
|
3410
|
-
|
3411
|
-
break;
|
2019
|
+
size = 1;
|
2020
|
+
break;
|
3412
2021
|
}
|
3413
2022
|
glGetTexEnviv(target,pname,params);
|
3414
2023
|
retary = rb_ary_new2(size);
|
@@ -3434,12 +2043,9 @@ VALUE obj,arg1,arg2;
|
|
3434
2043
|
case GL_EYE_PLANE:
|
3435
2044
|
size = 4;
|
3436
2045
|
break;
|
3437
|
-
|
2046
|
+
default:
|
3438
2047
|
size = 1;
|
3439
2048
|
break;
|
3440
|
-
default:
|
3441
|
-
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3442
|
-
break; /* not reached */
|
3443
2049
|
}
|
3444
2050
|
glGetTexGendv(coord,pname,params);
|
3445
2051
|
retary = rb_ary_new2(size);
|
@@ -3465,12 +2071,9 @@ VALUE obj,arg1,arg2;
|
|
3465
2071
|
case GL_EYE_PLANE:
|
3466
2072
|
size = 4;
|
3467
2073
|
break;
|
3468
|
-
|
2074
|
+
default:
|
3469
2075
|
size = 1;
|
3470
2076
|
break;
|
3471
|
-
default:
|
3472
|
-
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3473
|
-
break; /* not reached */
|
3474
2077
|
}
|
3475
2078
|
glGetTexGenfv(coord,pname,params);
|
3476
2079
|
retary = rb_ary_new2(size);
|
@@ -3496,12 +2099,9 @@ VALUE obj,arg1,arg2;
|
|
3496
2099
|
case GL_EYE_PLANE:
|
3497
2100
|
size = 4;
|
3498
2101
|
break;
|
3499
|
-
|
2102
|
+
default:
|
3500
2103
|
size = 1;
|
3501
2104
|
break;
|
3502
|
-
default:
|
3503
|
-
rb_raise(rb_eArgError, "unknown pname:%d",pname);
|
3504
|
-
break; /* not reached */
|
3505
2105
|
}
|
3506
2106
|
glGetTexGeniv(coord,pname,params);
|
3507
2107
|
retary = rb_ary_new2(size);
|
@@ -3510,10 +2110,11 @@ VALUE obj,arg1,arg2;
|
|
3510
2110
|
return retary;
|
3511
2111
|
}
|
3512
2112
|
|
3513
|
-
|
3514
2113
|
static VALUE
|
3515
|
-
gl_GetTexImage(
|
3516
|
-
|
2114
|
+
gl_GetTexImage(argc,argv,obj)
|
2115
|
+
int argc;
|
2116
|
+
VALUE *argv;
|
2117
|
+
VALUE obj;
|
3517
2118
|
{
|
3518
2119
|
GLenum tex;
|
3519
2120
|
GLint lod;
|
@@ -3522,46 +2123,71 @@ VALUE obj,arg1,arg2,arg3,arg4;
|
|
3522
2123
|
GLint width = 0;
|
3523
2124
|
GLint height = 0;
|
3524
2125
|
GLint depth = 0;
|
2126
|
+
GLint size4d = 0;
|
3525
2127
|
GLint size;
|
3526
|
-
GLint format_size;
|
3527
|
-
GLint type_size;
|
3528
2128
|
VALUE pixels;
|
3529
|
-
|
3530
|
-
|
3531
|
-
|
3532
|
-
|
3533
|
-
|
3534
|
-
|
3535
|
-
|
3536
|
-
|
2129
|
+
VALUE args[5];
|
2130
|
+
int numargs;
|
2131
|
+
numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
|
2132
|
+
tex = (GLenum)NUM2INT(args[0]);
|
2133
|
+
lod = (GLint)NUM2INT(args[1]);
|
2134
|
+
format = (GLenum)NUM2INT(args[2]);
|
2135
|
+
type = (GLenum)NUM2INT(args[3]);
|
2136
|
+
switch(numargs) {
|
2137
|
+
default:
|
2138
|
+
case 4:
|
2139
|
+
if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
2140
|
+
rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
|
3537
2141
|
|
3538
|
-
|
3539
|
-
|
3540
|
-
|
3541
|
-
|
3542
|
-
|
3543
|
-
|
3544
|
-
|
3545
|
-
|
3546
|
-
|
3547
|
-
|
3548
|
-
|
3549
|
-
|
3550
|
-
|
2142
|
+
size = 1;
|
2143
|
+
switch(tex) {
|
2144
|
+
case GL_TEXTURE_4D_SGIS:
|
2145
|
+
glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_4DSIZE_SGIS,&size4d);
|
2146
|
+
size *= size4d;
|
2147
|
+
/* fall through */
|
2148
|
+
case GL_TEXTURE_3D:
|
2149
|
+
case GL_TEXTURE_1D_STACK_MESAX:
|
2150
|
+
case GL_TEXTURE_2D_STACK_MESAX:
|
2151
|
+
glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_DEPTH,&depth);
|
2152
|
+
size *= depth;
|
2153
|
+
/* fall through */
|
2154
|
+
case GL_TEXTURE_2D:
|
2155
|
+
case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
|
2156
|
+
case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
|
2157
|
+
case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
|
2158
|
+
case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
|
2159
|
+
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
|
2160
|
+
case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
|
2161
|
+
case GL_TEXTURE_RECTANGLE_ARB:
|
2162
|
+
case GL_DETAIL_TEXTURE_2D_SGIS:
|
2163
|
+
glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_HEIGHT,&height);
|
2164
|
+
size *= height;
|
2165
|
+
/* fall through */
|
2166
|
+
case GL_TEXTURE_1D:
|
2167
|
+
glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_WIDTH,&width);
|
2168
|
+
size *= width;
|
2169
|
+
break;
|
2170
|
+
default:
|
2171
|
+
rb_raise(rb_eArgError, "Target type not supported");
|
2172
|
+
}
|
2173
|
+
pixels = allocate_buffer_with_string(GetDataSize(type,format,size));
|
2174
|
+
|
2175
|
+
FORCE_PIXEL_STORE_MODE
|
2176
|
+
glGetTexImage(tex,lod,format,type,(GLvoid*)RSTRING(pixels)->ptr);
|
2177
|
+
RESTORE_PIXEL_STORE_MODE
|
2178
|
+
return pixels;
|
3551
2179
|
break;
|
3552
|
-
|
3553
|
-
|
3554
|
-
|
3555
|
-
size *= format_size*type_size;
|
3556
|
-
pixels = allocate_buffer_with_string(size);
|
2180
|
+
case 5:
|
2181
|
+
if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
|
2182
|
+
rb_raise(rb_eArgError, "Pixel pack buffer not bound");
|
3557
2183
|
|
3558
|
-
|
3559
|
-
|
3560
|
-
|
3561
|
-
|
2184
|
+
FORCE_PIXEL_STORE_MODE
|
2185
|
+
glGetTexImage(tex,lod,format,type,(GLvoid*)NUM2INT(args[4]));
|
2186
|
+
RESTORE_PIXEL_STORE_MODE
|
2187
|
+
return Qnil;
|
2188
|
+
}
|
3562
2189
|
}
|
3563
2190
|
|
3564
|
-
|
3565
2191
|
static VALUE
|
3566
2192
|
gl_GetTexParameterfv(obj,arg1,arg2)
|
3567
2193
|
VALUE obj,arg1,arg2;
|
@@ -3576,6 +2202,9 @@ VALUE obj,arg1,arg2;
|
|
3576
2202
|
pname = (GLenum)NUM2INT(arg2);
|
3577
2203
|
switch(pname) {
|
3578
2204
|
case GL_TEXTURE_BORDER_COLOR:
|
2205
|
+
case GL_TEXTURE_BORDER_VALUES_NV:
|
2206
|
+
case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
|
2207
|
+
case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
|
3579
2208
|
size = 4;
|
3580
2209
|
break;
|
3581
2210
|
default:
|
@@ -3603,6 +2232,9 @@ VALUE obj,arg1,arg2;
|
|
3603
2232
|
pname = (GLenum)NUM2INT(arg2);
|
3604
2233
|
switch(pname) {
|
3605
2234
|
case GL_TEXTURE_BORDER_COLOR:
|
2235
|
+
case GL_TEXTURE_BORDER_VALUES_NV:
|
2236
|
+
case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
|
2237
|
+
case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
|
3606
2238
|
size = 4;
|
3607
2239
|
break;
|
3608
2240
|
default:
|
@@ -3674,46 +2306,6 @@ VALUE obj,arg1;
|
|
3674
2306
|
return INT2NUM(ret);
|
3675
2307
|
}
|
3676
2308
|
|
3677
|
-
static VALUE
|
3678
|
-
gl_DepthRange(obj,arg1,arg2)
|
3679
|
-
VALUE obj,arg1,arg2;
|
3680
|
-
{
|
3681
|
-
GLclampd near_val;
|
3682
|
-
GLclampd far_val;
|
3683
|
-
near_val = (GLclampd)NUM2DBL(arg1);
|
3684
|
-
far_val = (GLclampd)NUM2DBL(arg2);
|
3685
|
-
glDepthRange(near_val,far_val);
|
3686
|
-
return Qnil;
|
3687
|
-
}
|
3688
|
-
|
3689
|
-
static VALUE
|
3690
|
-
gl_Frustum(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
3691
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
3692
|
-
{
|
3693
|
-
GLdouble left;
|
3694
|
-
GLdouble right;
|
3695
|
-
GLdouble bottom;
|
3696
|
-
GLdouble top;
|
3697
|
-
GLdouble near_val;
|
3698
|
-
GLdouble far_val;
|
3699
|
-
left = (GLdouble)NUM2DBL(arg1);
|
3700
|
-
right = (GLdouble)NUM2DBL(arg2);
|
3701
|
-
bottom = (GLdouble)NUM2DBL(arg3);
|
3702
|
-
top = (GLdouble)NUM2DBL(arg4);
|
3703
|
-
near_val = (GLdouble)NUM2DBL(arg5);
|
3704
|
-
far_val = (GLdouble)NUM2DBL(arg6);
|
3705
|
-
glFrustum(left,right,bottom,top,near_val,far_val);
|
3706
|
-
return Qnil;
|
3707
|
-
}
|
3708
|
-
|
3709
|
-
static VALUE
|
3710
|
-
gl_LoadIdentity(obj)
|
3711
|
-
VALUE obj;
|
3712
|
-
{
|
3713
|
-
glLoadIdentity();
|
3714
|
-
return Qnil;
|
3715
|
-
}
|
3716
|
-
|
3717
2309
|
static VALUE
|
3718
2310
|
gl_LoadMatrixf(obj,arg1)
|
3719
2311
|
VALUE obj,arg1;
|
@@ -3734,16 +2326,6 @@ VALUE obj,arg1;
|
|
3734
2326
|
return Qnil;
|
3735
2327
|
}
|
3736
2328
|
|
3737
|
-
static VALUE
|
3738
|
-
gl_MatrixMode(obj,arg1)
|
3739
|
-
VALUE obj,arg1;
|
3740
|
-
{
|
3741
|
-
GLenum mode;
|
3742
|
-
mode = (GLenum)NUM2INT(arg1);
|
3743
|
-
glMatrixMode(mode);
|
3744
|
-
return Qnil;
|
3745
|
-
}
|
3746
|
-
|
3747
2329
|
static VALUE
|
3748
2330
|
gl_MultMatrixf(obj,arg1)
|
3749
2331
|
VALUE obj,arg1;
|
@@ -3764,155 +2346,6 @@ VALUE obj,arg1;
|
|
3764
2346
|
return Qnil;
|
3765
2347
|
}
|
3766
2348
|
|
3767
|
-
static VALUE
|
3768
|
-
gl_Ortho(obj,arg1,arg2,arg3,arg4,arg5,arg6)
|
3769
|
-
VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
|
3770
|
-
{
|
3771
|
-
GLdouble left;
|
3772
|
-
GLdouble right;
|
3773
|
-
GLdouble bottom;
|
3774
|
-
GLdouble top;
|
3775
|
-
GLdouble near_val;
|
3776
|
-
GLdouble far_val;
|
3777
|
-
left = (GLdouble)NUM2DBL(arg1);
|
3778
|
-
right = (GLdouble)NUM2DBL(arg2);
|
3779
|
-
bottom = (GLdouble)NUM2DBL(arg3);
|
3780
|
-
top = (GLdouble)NUM2DBL(arg4);
|
3781
|
-
near_val = (GLdouble)NUM2DBL(arg5);
|
3782
|
-
far_val = (GLdouble)NUM2DBL(arg6);
|
3783
|
-
glOrtho(left,right,bottom,top,near_val,far_val);
|
3784
|
-
return Qnil;
|
3785
|
-
}
|
3786
|
-
|
3787
|
-
static VALUE
|
3788
|
-
gl_PopMatrix(obj)
|
3789
|
-
VALUE obj;
|
3790
|
-
{
|
3791
|
-
glPopMatrix();
|
3792
|
-
return Qnil;
|
3793
|
-
}
|
3794
|
-
|
3795
|
-
static VALUE
|
3796
|
-
gl_PushMatrix(obj)
|
3797
|
-
VALUE obj;
|
3798
|
-
{
|
3799
|
-
glPushMatrix();
|
3800
|
-
return Qnil;
|
3801
|
-
}
|
3802
|
-
|
3803
|
-
static VALUE
|
3804
|
-
gl_Rotated(obj,arg1,arg2,arg3,arg4)
|
3805
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
3806
|
-
{
|
3807
|
-
GLdouble angle;
|
3808
|
-
GLdouble x;
|
3809
|
-
GLdouble y;
|
3810
|
-
GLdouble z;
|
3811
|
-
angle = (GLdouble)NUM2DBL(arg1);
|
3812
|
-
x = (GLdouble)NUM2DBL(arg2);
|
3813
|
-
y = (GLdouble)NUM2DBL(arg3);
|
3814
|
-
z = (GLdouble)NUM2DBL(arg4);
|
3815
|
-
glRotated(angle,x,y,z);
|
3816
|
-
return Qnil;
|
3817
|
-
}
|
3818
|
-
|
3819
|
-
static VALUE
|
3820
|
-
gl_Rotatef(obj,arg1,arg2,arg3,arg4)
|
3821
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
3822
|
-
{
|
3823
|
-
GLfloat angle;
|
3824
|
-
GLfloat x;
|
3825
|
-
GLfloat y;
|
3826
|
-
GLfloat z;
|
3827
|
-
angle = (GLfloat)NUM2DBL(arg1);
|
3828
|
-
x = (GLfloat)NUM2DBL(arg2);
|
3829
|
-
y = (GLfloat)NUM2DBL(arg3);
|
3830
|
-
z = (GLfloat)NUM2DBL(arg4);
|
3831
|
-
glRotatef(angle,x,y,z);
|
3832
|
-
return Qnil;
|
3833
|
-
}
|
3834
|
-
|
3835
|
-
static VALUE
|
3836
|
-
gl_Scaled(obj,arg1,arg2,arg3)
|
3837
|
-
VALUE obj,arg1,arg2,arg3;
|
3838
|
-
{
|
3839
|
-
GLdouble x;
|
3840
|
-
GLdouble y;
|
3841
|
-
GLdouble z;
|
3842
|
-
x = (GLdouble)NUM2DBL(arg1);
|
3843
|
-
y = (GLdouble)NUM2DBL(arg2);
|
3844
|
-
z = (GLdouble)NUM2DBL(arg3);
|
3845
|
-
glScaled(x,y,z);
|
3846
|
-
return Qnil;
|
3847
|
-
}
|
3848
|
-
|
3849
|
-
static VALUE
|
3850
|
-
gl_Scalef(obj,arg1,arg2,arg3)
|
3851
|
-
VALUE obj,arg1,arg2,arg3;
|
3852
|
-
{
|
3853
|
-
GLfloat x;
|
3854
|
-
GLfloat y;
|
3855
|
-
GLfloat z;
|
3856
|
-
x = (GLfloat)NUM2DBL(arg1);
|
3857
|
-
y = (GLfloat)NUM2DBL(arg2);
|
3858
|
-
z = (GLfloat)NUM2DBL(arg3);
|
3859
|
-
glScalef(x,y,z);
|
3860
|
-
return Qnil;
|
3861
|
-
}
|
3862
|
-
|
3863
|
-
static VALUE
|
3864
|
-
gl_Translated(obj,arg1,arg2,arg3)
|
3865
|
-
VALUE obj,arg1,arg2,arg3;
|
3866
|
-
{
|
3867
|
-
GLdouble x;
|
3868
|
-
GLdouble y;
|
3869
|
-
GLdouble z;
|
3870
|
-
x = (GLdouble)NUM2DBL(arg1);
|
3871
|
-
y = (GLdouble)NUM2DBL(arg2);
|
3872
|
-
z = (GLdouble)NUM2DBL(arg3);
|
3873
|
-
glTranslated(x,y,z);
|
3874
|
-
return Qnil;
|
3875
|
-
}
|
3876
|
-
|
3877
|
-
static VALUE
|
3878
|
-
gl_Translatef(obj,arg1,arg2,arg3)
|
3879
|
-
VALUE obj,arg1,arg2,arg3;
|
3880
|
-
{
|
3881
|
-
GLfloat x;
|
3882
|
-
GLfloat y;
|
3883
|
-
GLfloat z;
|
3884
|
-
x = (GLfloat)NUM2DBL(arg1);
|
3885
|
-
y = (GLfloat)NUM2DBL(arg2);
|
3886
|
-
z = (GLfloat)NUM2DBL(arg3);
|
3887
|
-
glTranslatef(x,y,z);
|
3888
|
-
return Qnil;
|
3889
|
-
}
|
3890
|
-
|
3891
|
-
static VALUE
|
3892
|
-
gl_Viewport(obj,arg1,arg2,arg3,arg4)
|
3893
|
-
VALUE obj,arg1,arg2,arg3,arg4;
|
3894
|
-
{
|
3895
|
-
GLint x;
|
3896
|
-
GLint y;
|
3897
|
-
GLsizei width;
|
3898
|
-
GLsizei height;
|
3899
|
-
x = (GLint)NUM2INT(arg1);
|
3900
|
-
y = (GLint)NUM2INT(arg2);
|
3901
|
-
width = (GLsizei)NUM2UINT(arg3);
|
3902
|
-
height = (GLsizei)NUM2UINT(arg4);
|
3903
|
-
glViewport(x,y,width,height);
|
3904
|
-
return Qnil;
|
3905
|
-
}
|
3906
|
-
|
3907
|
-
static VALUE
|
3908
|
-
gl_ArrayElement(obj,arg1)
|
3909
|
-
VALUE obj,arg1;
|
3910
|
-
{
|
3911
|
-
GLint i;
|
3912
|
-
i = (GLint)NUM2INT(arg1);
|
3913
|
-
glArrayElement(i);
|
3914
|
-
return Qnil;
|
3915
|
-
}
|
3916
2349
|
|
3917
2350
|
static VALUE g_Vertex_ptr;
|
3918
2351
|
static VALUE g_Normal_ptr;
|
@@ -3933,10 +2366,15 @@ VALUE obj, arg1, arg2, arg3, arg4; \
|
|
3933
2366
|
size = (GLint)NUM2INT(arg1); \
|
3934
2367
|
type = (GLenum)NUM2INT(arg2); \
|
3935
2368
|
stride = (GLsizei)NUM2UINT(arg3); \
|
3936
|
-
|
3937
|
-
|
3938
|
-
|
3939
|
-
|
2369
|
+
if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) { \
|
2370
|
+
g_##_func_##_ptr = arg4; \
|
2371
|
+
gl##_func_##Pointer(size, type, stride, (const GLvoid*)NUM2INT(arg4)); \
|
2372
|
+
} else { \
|
2373
|
+
Check_Type(arg4, T_STRING); \
|
2374
|
+
rb_str_freeze(arg4); \
|
2375
|
+
g_##_func_##_ptr = arg4; \
|
2376
|
+
gl##_func_##Pointer(size, type, stride, (const GLvoid*)RSTRING(arg4)->ptr); \
|
2377
|
+
} \
|
3940
2378
|
return Qnil; \
|
3941
2379
|
}
|
3942
2380
|
|
@@ -3946,16 +2384,6 @@ POINTER_FUNC(TexCoord)
|
|
3946
2384
|
|
3947
2385
|
#undef POINTER_FUNC
|
3948
2386
|
|
3949
|
-
static VALUE
|
3950
|
-
gl_DisableClientState(obj,arg1)
|
3951
|
-
VALUE obj,arg1;
|
3952
|
-
{
|
3953
|
-
GLenum cap;
|
3954
|
-
cap = (GLenum)NUM2INT(arg1);
|
3955
|
-
glDisableClientState(cap);
|
3956
|
-
return Qnil;
|
3957
|
-
}
|
3958
|
-
|
3959
2387
|
static VALUE
|
3960
2388
|
gl_DrawArrays(obj,arg1,arg2,arg3)
|
3961
2389
|
VALUE obj,arg1,arg2,arg3;
|
@@ -3980,8 +2408,12 @@ VALUE obj,arg1,arg2,arg3,arg4;
|
|
3980
2408
|
mode = (GLenum)NUM2INT(arg1);
|
3981
2409
|
count = (GLsizei)NUM2UINT(arg2);
|
3982
2410
|
type = (GLenum)NUM2INT(arg3);
|
3983
|
-
|
3984
|
-
|
2411
|
+
if (CheckBufferBinding(GL_ELEMENT_ARRAY_BUFFER_BINDING)) {
|
2412
|
+
glDrawElements(mode, count, type, (const GLvoid*)NUM2INT(arg4));
|
2413
|
+
} else {
|
2414
|
+
Check_Type(arg4, T_STRING);
|
2415
|
+
glDrawElements(mode, count, type, (const GLvoid*)RSTRING(arg4)->ptr);
|
2416
|
+
}
|
3985
2417
|
return Qnil;
|
3986
2418
|
}
|
3987
2419
|
|
@@ -3991,20 +2423,15 @@ VALUE obj,arg1,arg2;
|
|
3991
2423
|
{
|
3992
2424
|
GLsizei stride;
|
3993
2425
|
stride = (GLsizei)NUM2UINT(arg1);
|
3994
|
-
|
3995
|
-
|
3996
|
-
|
3997
|
-
|
3998
|
-
|
3999
|
-
|
4000
|
-
|
4001
|
-
|
4002
|
-
|
4003
|
-
VALUE obj,arg1;
|
4004
|
-
{
|
4005
|
-
GLenum cap;
|
4006
|
-
cap = (GLenum)NUM2INT(arg1);
|
4007
|
-
glEnableClientState(cap);
|
2426
|
+
if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
|
2427
|
+
g_EdgeFlag_ptr = arg2;
|
2428
|
+
glEdgeFlagPointer(stride, (const GLboolean*) NUM2INT(arg2));
|
2429
|
+
} else {
|
2430
|
+
Check_Type(arg2, T_STRING);
|
2431
|
+
rb_str_freeze(arg2);
|
2432
|
+
g_EdgeFlag_ptr = arg2;
|
2433
|
+
glEdgeFlagPointer(stride, (const GLboolean*)RSTRING(arg2)->ptr);
|
2434
|
+
}
|
4008
2435
|
return Qnil;
|
4009
2436
|
}
|
4010
2437
|
|
@@ -4050,10 +2477,15 @@ VALUE obj,arg1,arg2,arg3;
|
|
4050
2477
|
GLsizei stride;
|
4051
2478
|
type = (GLenum)NUM2INT(arg1);
|
4052
2479
|
stride = (GLsizei)NUM2UINT(arg2);
|
4053
|
-
|
4054
|
-
|
4055
|
-
|
4056
|
-
|
2480
|
+
if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
|
2481
|
+
g_Index_ptr = arg3;
|
2482
|
+
glIndexPointer(type, stride, (const GLvoid*)NUM2INT(arg3));
|
2483
|
+
} else {
|
2484
|
+
Check_Type(arg3, T_STRING);
|
2485
|
+
rb_str_freeze(arg3);
|
2486
|
+
g_Index_ptr = arg3;
|
2487
|
+
glIndexPointer(type, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
2488
|
+
}
|
4057
2489
|
return Qnil;
|
4058
2490
|
}
|
4059
2491
|
|
@@ -4066,6 +2498,7 @@ VALUE obj,arg1,arg2,arg3;
|
|
4066
2498
|
format = (GLenum)NUM2INT(arg1);
|
4067
2499
|
stride = (GLsizei)NUM2UINT(arg2);
|
4068
2500
|
Check_Type(arg3, T_STRING);
|
2501
|
+
rb_str_freeze(arg3);
|
4069
2502
|
glInterleavedArrays(format, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
4070
2503
|
return Qnil;
|
4071
2504
|
}
|
@@ -4078,24 +2511,19 @@ VALUE obj,arg1,arg2,arg3;
|
|
4078
2511
|
GLsizei stride;
|
4079
2512
|
type = (GLenum)NUM2INT(arg1);
|
4080
2513
|
stride = (GLsizei)NUM2UINT(arg2);
|
4081
|
-
|
4082
|
-
|
4083
|
-
|
4084
|
-
|
2514
|
+
if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
|
2515
|
+
g_Normal_ptr = arg3;
|
2516
|
+
glNormalPointer(type, stride, (const GLvoid*)NUM2INT(arg3));
|
2517
|
+
} else {
|
2518
|
+
Check_Type(arg3, T_STRING);
|
2519
|
+
rb_str_freeze(arg3);
|
2520
|
+
g_Normal_ptr = arg3;
|
2521
|
+
glNormalPointer(type, stride, (const GLvoid*)RSTRING(arg3)->ptr);
|
2522
|
+
}
|
4085
2523
|
return Qnil;
|
4086
2524
|
}
|
4087
2525
|
|
4088
|
-
|
4089
|
-
gl_PolygonOffset(obj,arg1,arg2)
|
4090
|
-
VALUE obj,arg1,arg2;
|
4091
|
-
{
|
4092
|
-
GLfloat factor;
|
4093
|
-
GLfloat units;
|
4094
|
-
factor = (GLfloat)NUM2DBL(arg1);
|
4095
|
-
units = (GLfloat)NUM2DBL(arg2);
|
4096
|
-
glPolygonOffset(factor,units);
|
4097
|
-
return Qnil;
|
4098
|
-
}
|
2526
|
+
GL_SIMPLE_FUNC(PolygonOffset,2,GLfloat,NUM2DBL)
|
4099
2527
|
|
4100
2528
|
static VALUE
|
4101
2529
|
gl_CopyTexImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
|
@@ -4197,37 +2625,22 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
|
|
4197
2625
|
GLsizei width;
|
4198
2626
|
GLenum format;
|
4199
2627
|
GLenum type;
|
4200
|
-
const char *pixels;
|
4201
|
-
int size;
|
4202
|
-
int type_size;
|
4203
|
-
int format_size;
|
4204
2628
|
target = (GLenum)NUM2INT(arg1);
|
4205
2629
|
level = (GLint)NUM2INT(arg2);
|
4206
2630
|
xoffset = (GLint)NUM2INT(arg3);
|
4207
2631
|
width = (GLsizei)NUM2UINT(arg4);
|
4208
2632
|
format = (GLenum)NUM2INT(arg5);
|
4209
2633
|
type = (GLenum)NUM2INT(arg6);
|
4210
|
-
type_size = gltype_size(type);
|
4211
|
-
format_size = glformat_size(format);
|
4212
|
-
if (type_size == -1 || format_size == -1)
|
4213
|
-
return Qnil;
|
4214
2634
|
|
4215
|
-
if (
|
4216
|
-
|
4217
|
-
else
|
4218
|
-
size = type_size*format_size*width;
|
4219
|
-
|
4220
|
-
if (TYPE(arg7) == T_STRING) {
|
4221
|
-
if (RSTRING(arg7)->len < size)
|
4222
|
-
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg7)->len);
|
4223
|
-
pixels = RSTRING(arg7)->ptr;
|
4224
|
-
} else if (TYPE(arg7) == T_FIXNUM || TYPE(arg7) == T_BIGNUM) { /* arg7 is offset to unpack buffer */
|
4225
|
-
pixels = (const char *)NUM2UINT(arg7);
|
4226
|
-
} else {
|
4227
|
-
Check_Type(arg7,T_STRING); /* force exception */
|
2635
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
2636
|
+
glTexSubImage1D(target,level,xoffset,width,format,type,(GLvoid *)NUM2INT(arg7));
|
4228
2637
|
return Qnil;
|
4229
2638
|
}
|
4230
|
-
|
2639
|
+
|
2640
|
+
Check_Type(arg7,T_STRING);
|
2641
|
+
CheckDataSize(type,format,width,arg7);
|
2642
|
+
|
2643
|
+
glTexSubImage1D(target,level,xoffset,width,format,type,RSTRING(arg7)->ptr);
|
4231
2644
|
return Qnil;
|
4232
2645
|
}
|
4233
2646
|
|
@@ -4243,10 +2656,6 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
4243
2656
|
GLsizei height;
|
4244
2657
|
GLenum format;
|
4245
2658
|
GLenum type;
|
4246
|
-
const char *pixels;
|
4247
|
-
int size;
|
4248
|
-
int type_size;
|
4249
|
-
int format_size;
|
4250
2659
|
target = (GLenum)NUM2INT(arg1);
|
4251
2660
|
level = (GLint)NUM2INT(arg2);
|
4252
2661
|
xoffset = (GLint)NUM2INT(arg3);
|
@@ -4255,25 +2664,16 @@ VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
|
|
4255
2664
|
height = (GLsizei)NUM2UINT(arg6);
|
4256
2665
|
format = (GLenum)NUM2INT(arg7);
|
4257
2666
|
type = (GLenum)NUM2INT(arg8);
|
4258
|
-
|
4259
|
-
|
4260
|
-
|
4261
|
-
return Qnil;
|
4262
|
-
if (type==GL_BITMAP)
|
4263
|
-
size = format_size*((height*width)/8);
|
4264
|
-
else
|
4265
|
-
size = type_size*format_size*height*width;
|
4266
|
-
if (TYPE(arg9) == T_STRING) {
|
4267
|
-
if (RSTRING(arg9)->len < size)
|
4268
|
-
rb_raise(rb_eArgError, "string length:%d",RSTRING(arg9)->len);
|
4269
|
-
pixels = RSTRING(arg9)->ptr;
|
4270
|
-
} else if (TYPE(arg9) == T_FIXNUM || TYPE(arg9) == T_BIGNUM) { /* arg9 is offset to unpack buffer */
|
4271
|
-
pixels = (const char *)NUM2UINT(arg9);
|
4272
|
-
} else {
|
4273
|
-
Check_Type(arg9,T_STRING); /* force exception */
|
2667
|
+
|
2668
|
+
if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
|
2669
|
+
glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,(GLvoid *)NUM2INT(arg9));
|
4274
2670
|
return Qnil;
|
4275
2671
|
}
|
4276
|
-
|
2672
|
+
|
2673
|
+
Check_Type(arg9,T_STRING);
|
2674
|
+
CheckDataSize(type,format,width*height,arg9);
|
2675
|
+
|
2676
|
+
glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,(RSTRING(arg9)->ptr));
|
4277
2677
|
return Qnil;
|
4278
2678
|
}
|
4279
2679
|
|
@@ -4324,12 +2724,17 @@ VALUE obj,arg1;
|
|
4324
2724
|
{
|
4325
2725
|
GLsizei n;
|
4326
2726
|
GLuint *textures;
|
4327
|
-
|
4328
|
-
|
4329
|
-
|
4330
|
-
|
4331
|
-
|
4332
|
-
|
2727
|
+
if (TYPE(arg1)==T_ARRAY) {
|
2728
|
+
n = RARRAY(arg1)->len;
|
2729
|
+
textures = ALLOC_N(GLuint,n);
|
2730
|
+
ary2cuint(arg1,textures,n);
|
2731
|
+
glDeleteTextures( n, textures);
|
2732
|
+
xfree(textures);
|
2733
|
+
} else {
|
2734
|
+
GLuint texture;
|
2735
|
+
texture = NUM2INT(arg1);
|
2736
|
+
glDeleteTextures( 1, &texture);
|
2737
|
+
}
|
4333
2738
|
return Qnil;
|
4334
2739
|
}
|
4335
2740
|
|
@@ -4383,16 +2788,6 @@ VALUE obj,arg1,arg2;
|
|
4383
2788
|
return Qnil;
|
4384
2789
|
}
|
4385
2790
|
|
4386
|
-
static VALUE
|
4387
|
-
gl_Indexub(obj,arg1)
|
4388
|
-
VALUE obj,arg1;
|
4389
|
-
{
|
4390
|
-
GLubyte c;
|
4391
|
-
c = (GLubyte)NUM2INT(arg1);
|
4392
|
-
glIndexub(c);
|
4393
|
-
return Qnil;
|
4394
|
-
}
|
4395
|
-
|
4396
2791
|
static VALUE
|
4397
2792
|
gl_Indexubv(obj,arg1)
|
4398
2793
|
VALUE obj,arg1;
|
@@ -4404,23 +2799,6 @@ VALUE obj,arg1;
|
|
4404
2799
|
return Qnil;
|
4405
2800
|
}
|
4406
2801
|
|
4407
|
-
static VALUE
|
4408
|
-
gl_PopClientAttrib(obj)
|
4409
|
-
VALUE obj;
|
4410
|
-
{
|
4411
|
-
glPopClientAttrib();
|
4412
|
-
return Qnil;
|
4413
|
-
}
|
4414
|
-
|
4415
|
-
static VALUE
|
4416
|
-
gl_PushClientAttrib(obj,arg1)
|
4417
|
-
VALUE obj,arg1;
|
4418
|
-
{
|
4419
|
-
GLbitfield mask;
|
4420
|
-
mask = (GLbitfield)NUM2UINT(arg1);
|
4421
|
-
glPushClientAttrib(mask);
|
4422
|
-
return Qnil;
|
4423
|
-
}
|
4424
2802
|
|
4425
2803
|
/* additional functions */
|
4426
2804
|
|
@@ -4995,12 +3373,12 @@ void gl_init_functions_1_0__1_1(VALUE module)
|
|
4995
3373
|
rb_define_module_function(module, "glPixelTransferi", gl_PixelTransferi, 2);
|
4996
3374
|
rb_define_module_function(module, "glPixelStoref", gl_PixelStoref, 2);
|
4997
3375
|
rb_define_module_function(module, "glPixelStorei", gl_PixelStorei, 2);
|
4998
|
-
rb_define_module_function(module, "glPixelMapfv", gl_PixelMapfv,
|
4999
|
-
rb_define_module_function(module, "glPixelMapuiv", gl_PixelMapuiv,
|
5000
|
-
rb_define_module_function(module, "glPixelMapusv", gl_PixelMapusv,
|
3376
|
+
rb_define_module_function(module, "glPixelMapfv", gl_PixelMapfv, -1);
|
3377
|
+
rb_define_module_function(module, "glPixelMapuiv", gl_PixelMapuiv, -1);
|
3378
|
+
rb_define_module_function(module, "glPixelMapusv", gl_PixelMapusv, -1);
|
5001
3379
|
rb_define_module_function(module, "glReadBuffer", gl_ReadBuffer, 1);
|
5002
3380
|
rb_define_module_function(module, "glCopyPixels", gl_CopyPixels, 5);
|
5003
|
-
rb_define_module_function(module, "glReadPixels", gl_ReadPixels,
|
3381
|
+
rb_define_module_function(module, "glReadPixels", gl_ReadPixels, -1);
|
5004
3382
|
rb_define_module_function(module, "glDrawPixels", gl_DrawPixels, 5);
|
5005
3383
|
rb_define_module_function(module, "glGetBooleanv", gl_GetBooleanv, 1);
|
5006
3384
|
rb_define_module_function(module, "glGetClipPlane", gl_GetClipPlane, 1);
|
@@ -5015,17 +3393,17 @@ void gl_init_functions_1_0__1_1(VALUE module)
|
|
5015
3393
|
rb_define_module_function(module, "glGetMapiv", gl_GetMapiv, 2);
|
5016
3394
|
rb_define_module_function(module, "glGetMaterialfv", gl_GetMaterialfv, 2);
|
5017
3395
|
rb_define_module_function(module, "glGetMaterialiv", gl_GetMaterialiv, 2);
|
5018
|
-
rb_define_module_function(module, "glGetPixelMapfv", gl_GetPixelMapfv, 1);
|
5019
|
-
rb_define_module_function(module, "glGetPixelMapuiv", gl_GetPixelMapuiv, 1);
|
5020
|
-
rb_define_module_function(module, "glGetPixelMapusv", gl_GetPixelMapusv, 1);
|
5021
|
-
rb_define_module_function(module, "glGetPolygonStipple", gl_GetPolygonStipple,
|
3396
|
+
rb_define_module_function(module, "glGetPixelMapfv", gl_GetPixelMapfv, -1);
|
3397
|
+
rb_define_module_function(module, "glGetPixelMapuiv", gl_GetPixelMapuiv, -1);
|
3398
|
+
rb_define_module_function(module, "glGetPixelMapusv", gl_GetPixelMapusv, -1);
|
3399
|
+
rb_define_module_function(module, "glGetPolygonStipple", gl_GetPolygonStipple, -1);
|
5022
3400
|
rb_define_module_function(module, "glGetString", gl_GetString, 1);
|
5023
3401
|
rb_define_module_function(module, "glGetTexEnvfv", gl_GetTexEnvfv, 2);
|
5024
3402
|
rb_define_module_function(module, "glGetTexEnviv", gl_GetTexEnviv, 2);
|
5025
3403
|
rb_define_module_function(module, "glGetTexGendv", gl_GetTexGendv, 2);
|
5026
3404
|
rb_define_module_function(module, "glGetTexGenfv", gl_GetTexGenfv, 2);
|
5027
3405
|
rb_define_module_function(module, "glGetTexGeniv", gl_GetTexGeniv, 2);
|
5028
|
-
rb_define_module_function(module, "glGetTexImage", gl_GetTexImage,
|
3406
|
+
rb_define_module_function(module, "glGetTexImage", gl_GetTexImage, -1);
|
5029
3407
|
rb_define_module_function(module, "glGetTexParameterfv", gl_GetTexParameterfv, 2);
|
5030
3408
|
rb_define_module_function(module, "glGetTexParameteriv", gl_GetTexParameteriv, 2);
|
5031
3409
|
rb_define_module_function(module, "glGetTexLevelParameterfv", gl_GetTexLevelParameterfv, 3);
|