ruby-opengl 0.60.1 → 0.61.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. metadata +36 -186
  2. data/Rakefile +0 -168
  3. data/doc/build_install.txt +0 -122
  4. data/doc/extensions.txt +0 -556
  5. data/doc/extensions.txt.in +0 -348
  6. data/doc/history.txt +0 -66
  7. data/doc/requirements_and_design.txt +0 -117
  8. data/doc/roadmap.txt +0 -28
  9. data/doc/scientific_use.txt +0 -35
  10. data/doc/supplies/page_template.html +0 -71
  11. data/doc/thanks.txt +0 -29
  12. data/doc/tutorial.txt +0 -469
  13. data/examples/NeHe/nehe_lesson02.rb +0 -117
  14. data/examples/NeHe/nehe_lesson03.rb +0 -122
  15. data/examples/NeHe/nehe_lesson04.rb +0 -133
  16. data/examples/NeHe/nehe_lesson05.rb +0 -186
  17. data/examples/NeHe/nehe_lesson36.rb +0 -303
  18. data/examples/OrangeBook/3Dlabs-License.txt +0 -33
  19. data/examples/OrangeBook/brick.frag +0 -36
  20. data/examples/OrangeBook/brick.rb +0 -376
  21. data/examples/OrangeBook/brick.vert +0 -41
  22. data/examples/OrangeBook/particle.frag +0 -17
  23. data/examples/OrangeBook/particle.rb +0 -406
  24. data/examples/OrangeBook/particle.vert +0 -38
  25. data/examples/README +0 -16
  26. data/examples/RedBook/aapoly.rb +0 -142
  27. data/examples/RedBook/aargb.rb +0 -119
  28. data/examples/RedBook/accanti.rb +0 -162
  29. data/examples/RedBook/accpersp.rb +0 -215
  30. data/examples/RedBook/alpha.rb +0 -123
  31. data/examples/RedBook/alpha3D.rb +0 -158
  32. data/examples/RedBook/bezcurve.rb +0 -105
  33. data/examples/RedBook/bezmesh.rb +0 -137
  34. data/examples/RedBook/checker.rb +0 -124
  35. data/examples/RedBook/clip.rb +0 -95
  36. data/examples/RedBook/colormat.rb +0 -135
  37. data/examples/RedBook/cube.rb +0 -69
  38. data/examples/RedBook/depthcue.rb +0 -99
  39. data/examples/RedBook/dof.rb +0 -205
  40. data/examples/RedBook/double.rb +0 -105
  41. data/examples/RedBook/drawf.rb +0 -91
  42. data/examples/RedBook/feedback.rb +0 -145
  43. data/examples/RedBook/fog.rb +0 -167
  44. data/examples/RedBook/font.rb +0 -151
  45. data/examples/RedBook/hello.rb +0 -79
  46. data/examples/RedBook/image.rb +0 -137
  47. data/examples/RedBook/jitter.rb +0 -207
  48. data/examples/RedBook/lines.rb +0 -128
  49. data/examples/RedBook/list.rb +0 -111
  50. data/examples/RedBook/material.rb +0 -275
  51. data/examples/RedBook/mipmap.rb +0 -156
  52. data/examples/RedBook/model.rb +0 -113
  53. data/examples/RedBook/movelight.rb +0 -132
  54. data/examples/RedBook/pickdepth.rb +0 -179
  55. data/examples/RedBook/planet.rb +0 -108
  56. data/examples/RedBook/quadric.rb +0 -158
  57. data/examples/RedBook/robot.rb +0 -115
  58. data/examples/RedBook/select.rb +0 -196
  59. data/examples/RedBook/smooth.rb +0 -95
  60. data/examples/RedBook/stencil.rb +0 -163
  61. data/examples/RedBook/stroke.rb +0 -167
  62. data/examples/RedBook/surface.rb +0 -166
  63. data/examples/RedBook/teaambient.rb +0 -132
  64. data/examples/RedBook/teapots.rb +0 -182
  65. data/examples/RedBook/tess.rb +0 -183
  66. data/examples/RedBook/texbind.rb +0 -147
  67. data/examples/RedBook/texgen.rb +0 -169
  68. data/examples/RedBook/texturesurf.rb +0 -128
  69. data/examples/RedBook/varray.rb +0 -159
  70. data/examples/RedBook/wrap.rb +0 -148
  71. data/examples/misc/OGLBench.rb +0 -337
  72. data/examples/misc/anisotropic.rb +0 -194
  73. data/examples/misc/fbo_test.rb +0 -356
  74. data/examples/misc/font-glut.rb +0 -46
  75. data/examples/misc/glfwtest.rb +0 -30
  76. data/examples/misc/plane.rb +0 -161
  77. data/examples/misc/readpixel.rb +0 -65
  78. data/examples/misc/sdltest.rb +0 -34
  79. data/examples/misc/trislam.rb +0 -828
  80. data/ext/common/common.h +0 -423
  81. data/ext/common/conv.h +0 -244
  82. data/ext/common/funcdef.h +0 -280
  83. data/ext/common/gl-enums.h +0 -10031
  84. data/ext/common/gl-error.h +0 -23
  85. data/ext/common/gl-types.h +0 -61
  86. data/ext/common/glu-enums.h +0 -463
  87. data/ext/gl/gl-1.0-1.1.c +0 -2817
  88. data/ext/gl/gl-1.2.c +0 -814
  89. data/ext/gl/gl-1.3.c +0 -444
  90. data/ext/gl/gl-1.4.c +0 -349
  91. data/ext/gl/gl-1.5.c +0 -225
  92. data/ext/gl/gl-2.0.c +0 -657
  93. data/ext/gl/gl-2.1.c +0 -57
  94. data/ext/gl/gl-enums.c +0 -3354
  95. data/ext/gl/gl-error.c +0 -104
  96. data/ext/gl/gl-ext-3dfx.c +0 -27
  97. data/ext/gl/gl-ext-arb.c +0 -866
  98. data/ext/gl/gl-ext-ati.c +0 -41
  99. data/ext/gl/gl-ext-ext.c +0 -890
  100. data/ext/gl/gl-ext-gremedy.c +0 -41
  101. data/ext/gl/gl-ext-nv.c +0 -679
  102. data/ext/gl/gl.c +0 -214
  103. data/ext/gl/mkrf_conf.rb +0 -34
  104. data/ext/glu/glu-enums.c +0 -164
  105. data/ext/glu/glu.c +0 -1530
  106. data/ext/glu/mkrf_conf.rb +0 -35
  107. data/ext/glut/glut.c +0 -1623
  108. data/ext/glut/mkrf_conf.rb +0 -37
  109. data/lib/opengl.rb +0 -84
  110. data/test/README +0 -10
  111. data/test/tc_common.rb +0 -98
  112. data/test/tc_ext_arb.rb +0 -467
  113. data/test/tc_ext_ati.rb +0 -33
  114. data/test/tc_ext_ext.rb +0 -551
  115. data/test/tc_ext_gremedy.rb +0 -36
  116. data/test/tc_ext_nv.rb +0 -357
  117. data/test/tc_func_10_11.rb +0 -1281
  118. data/test/tc_func_12.rb +0 -186
  119. data/test/tc_func_13.rb +0 -229
  120. data/test/tc_func_14.rb +0 -197
  121. data/test/tc_func_15.rb +0 -270
  122. data/test/tc_func_20.rb +0 -346
  123. data/test/tc_func_21.rb +0 -541
  124. data/test/tc_glu.rb +0 -310
  125. data/test/tc_include_gl.rb +0 -35
  126. data/test/tc_misc.rb +0 -54
  127. data/test/tc_require_gl.rb +0 -34
@@ -1,2817 +0,0 @@
1
- /*
2
- * Copyright (C) 1999 - 2005 Yoshi <yoshi@giganet.net>
3
- * Copyright (C) 2006 John M. Gabriele <jmg3000@gmail.com>
4
- * Copyright (C) 2007 Jan Dvorak <jan.dvorak@kraxnet.cz>
5
- *
6
- * This program is distributed under the terms of the MIT license.
7
- * See the included MIT-LICENSE file for the terms of this license.
8
- *
9
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
10
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
11
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
12
- * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
13
- * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
14
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
15
- * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
16
- */
17
-
18
- #include "../common/common.h"
19
-
20
- #ifndef MAX
21
- #define MAX(a, b) (((a) > (b)) ? (a) : (b))
22
- #endif
23
-
24
- /* OpenGL 1.0 + 1.1 functions */
25
-
26
- GL_FUNC_STATIC_2(Accum,GLvoid, GLenum,GLfloat)
27
- GL_FUNC_STATIC_2(AlphaFunc,GLvoid, GLenum,GLclampf)
28
- GL_FUNC_STATIC_1(ArrayElement,GLvoid, GLint)
29
- GL_FUNC_STATIC_2(BindTexture,GLvoid, GLenum,GLuint)
30
- GL_FUNC_STATIC_2(BlendFunc,GLvoid, GLenum,GLenum)
31
- GL_FUNC_STATIC_1(CallList,GLvoid, GLuint)
32
- GL_FUNC_STATIC_1(Clear,GLvoid, GLbitfield)
33
- GL_FUNC_STATIC_4(ClearAccum,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
34
- GL_FUNC_STATIC_4(ClearColor,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
35
- GL_FUNC_STATIC_1(ClearDepth,GLvoid, GLclampd)
36
- GL_FUNC_STATIC_1(ClearIndex,GLvoid, GLfloat)
37
- GL_FUNC_STATIC_1(ClearStencil,GLvoid, GLint)
38
- GL_FUNC_STATIC_3(Color3b,GLvoid, GLbyte,GLbyte,GLbyte)
39
- GL_FUNC_STATIC_3(Color3d,GLvoid, GLdouble,GLdouble,GLdouble)
40
- GL_FUNC_STATIC_3(Color3f,GLvoid, GLfloat,GLfloat,GLfloat)
41
- GL_FUNC_STATIC_3(Color3i,GLvoid, GLint,GLint,GLint)
42
- GL_FUNC_STATIC_3(Color3s,GLvoid, GLshort,GLshort,GLshort)
43
- GL_FUNC_STATIC_3(Color3ub,GLvoid, GLubyte,GLubyte,GLubyte)
44
- GL_FUNC_STATIC_3(Color3ui,GLvoid, GLuint,GLuint,GLuint)
45
- GL_FUNC_STATIC_3(Color3us,GLvoid, GLushort,GLushort,GLushort)
46
- GL_FUNC_STATIC_4(Color4b,GLvoid, GLbyte,GLbyte,GLbyte,GLbyte)
47
- GL_FUNC_STATIC_4(Color4d,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
48
- GL_FUNC_STATIC_4(Color4f,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
49
- GL_FUNC_STATIC_4(Color4i,GLvoid, GLint,GLint,GLint,GLint)
50
- GL_FUNC_STATIC_4(Color4s,GLvoid, GLshort,GLshort,GLshort,GLshort)
51
- GL_FUNC_STATIC_4(Color4ub,GLvoid, GLubyte,GLubyte,GLubyte,GLubyte)
52
- GL_FUNC_STATIC_4(Color4ui,GLvoid, GLuint,GLuint,GLuint,GLuint)
53
- GL_FUNC_STATIC_4(Color4us,GLvoid, GLushort,GLushort,GLushort,GLushort)
54
- GL_FUNC_STATIC_4(ColorMask,GLvoid, GLboolean,GLboolean,GLboolean,GLboolean)
55
- GL_FUNC_STATIC_2(ColorMaterial,GLvoid, GLenum,GLenum)
56
- GL_FUNC_STATIC_5(CopyPixels,GLvoid, GLint,GLint,GLsizei,GLsizei,GLenum)
57
- GL_FUNC_STATIC_7(CopyTexImage1D,GLvoid, GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLint)
58
- GL_FUNC_STATIC_8(CopyTexImage2D,GLvoid, GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint)
59
- GL_FUNC_STATIC_6(CopyTexSubImage1D,GLvoid, GLenum,GLint,GLint,GLint,GLint,GLsizei)
60
- GL_FUNC_STATIC_8(CopyTexSubImage2D,GLvoid, GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei)
61
- GL_FUNC_STATIC_1(CullFace,GLvoid, GLenum)
62
- GL_FUNC_STATIC_2(DeleteLists,GLvoid, GLuint,GLuint)
63
- GL_FUNC_STATIC_1(DepthFunc,GLvoid, GLenum)
64
- GL_FUNC_STATIC_1(DepthMask,GLvoid, GLboolean)
65
- GL_FUNC_STATIC_2(DepthRange,GLvoid, GLclampd,GLclampd)
66
- GL_FUNC_STATIC_1(Disable,GLvoid, GLenum)
67
- GL_FUNC_STATIC_1(DisableClientState,GLvoid, GLenum)
68
- GL_FUNC_STATIC_3(DrawArrays,GLvoid, GLenum,GLint,GLsizei)
69
- GL_FUNC_STATIC_1(DrawBuffer,GLvoid, GLenum)
70
- GL_FUNC_STATIC_1(EdgeFlag,GLvoid, GLboolean)
71
- GL_FUNC_STATIC_1(Enable,GLvoid, GLenum)
72
- GL_FUNC_STATIC_1(EnableClientState,GLvoid, GLenum)
73
- GL_FUNC_STATIC_0(EndList,GLvoid)
74
- GL_FUNC_STATIC_1(EvalCoord1d,GLvoid, GLdouble)
75
- GL_FUNC_STATIC_1(EvalCoord1f,GLvoid, GLfloat)
76
- GL_FUNC_STATIC_2(EvalCoord2d,GLvoid, GLdouble,GLdouble)
77
- GL_FUNC_STATIC_2(EvalCoord2f,GLvoid, GLfloat,GLfloat)
78
- GL_FUNC_STATIC_3(EvalMesh1,GLvoid, GLenum,GLint,GLint)
79
- GL_FUNC_STATIC_5(EvalMesh2,GLvoid, GLenum,GLint,GLint,GLint,GLint)
80
- GL_FUNC_STATIC_1(EvalPoint1,GLvoid, GLint)
81
- GL_FUNC_STATIC_2(EvalPoint2,GLvoid, GLint,GLint)
82
- GL_FUNC_STATIC_0(Finish,GLvoid)
83
- GL_FUNC_STATIC_0(Flush,GLvoid)
84
- GL_FUNC_STATIC_2(Fogi,GLvoid, GLenum,GLint)
85
- GL_FUNC_STATIC_2(Fogf,GLvoid, GLenum,GLfloat)
86
- GL_FUNC_STATIC_1(FrontFace,GLvoid, GLenum)
87
- GL_FUNC_STATIC_6(Frustum,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble)
88
- GL_FUNC_STATIC_1(GenLists,GLuint, GLsizei)
89
- GL_FUNC_STATIC_0(GetError,GLenum)
90
- GL_FUNC_STATIC_2(Hint,GLvoid, GLenum,GLenum)
91
- GL_FUNC_STATIC_1(Indexd,GLvoid, GLdouble)
92
- GL_FUNC_STATIC_1(Indexf,GLvoid, GLfloat)
93
- GL_FUNC_STATIC_1(Indexi,GLvoid, GLint)
94
- GL_FUNC_STATIC_1(IndexMask,GLvoid, GLuint)
95
- GL_FUNC_STATIC_1(Indexs,GLvoid, GLshort)
96
- GL_FUNC_STATIC_1(Indexub,GLvoid, GLubyte)
97
- GL_FUNC_STATIC_0(InitNames,GLvoid)
98
- GL_FUNC_STATIC_1(IsEnabled,GLboolean, GLenum)
99
- GL_FUNC_STATIC_1(IsList,GLboolean, GLuint)
100
- GL_FUNC_STATIC_1(IsTexture,GLboolean, GLuint)
101
- GL_FUNC_STATIC_2(LightModelf,GLvoid, GLenum,GLfloat)
102
- GL_FUNC_STATIC_2(LightModeli,GLvoid, GLenum,GLint)
103
- GL_FUNC_STATIC_3(Lightf,GLvoid, GLenum,GLenum,GLfloat)
104
- GL_FUNC_STATIC_3(Lighti,GLvoid, GLenum,GLenum,GLint)
105
- GL_FUNC_STATIC_2(LineStipple,GLvoid, GLint,GLushort)
106
- GL_FUNC_STATIC_1(LineWidth,GLvoid, GLfloat)
107
- GL_FUNC_STATIC_1(ListBase,GLvoid, GLuint)
108
- GL_FUNC_STATIC_0(LoadIdentity,GLvoid)
109
- GL_FUNC_STATIC_1(LoadName,GLvoid, GLuint)
110
- GL_FUNC_STATIC_1(LogicOp,GLvoid, GLenum)
111
- GL_FUNC_STATIC_3(MapGrid1d,GLvoid, GLint,GLdouble,GLdouble)
112
- GL_FUNC_STATIC_3(MapGrid1f,GLvoid, GLint,GLfloat,GLfloat)
113
- GL_FUNC_STATIC_6(MapGrid2d,GLvoid, GLint,GLdouble,GLdouble,GLint,GLdouble,GLdouble)
114
- GL_FUNC_STATIC_6(MapGrid2f,GLvoid, GLint,GLfloat,GLfloat,GLint,GLfloat,GLfloat)
115
- GL_FUNC_STATIC_3(Materialf,GLvoid, GLenum,GLenum,GLfloat)
116
- GL_FUNC_STATIC_3(Materiali,GLvoid, GLenum,GLenum,GLint)
117
- GL_FUNC_STATIC_1(MatrixMode,GLvoid, GLenum)
118
- GL_FUNC_STATIC_2(NewList,GLvoid, GLuint,GLenum)
119
- GL_FUNC_STATIC_3(Normal3b,GLvoid, GLbyte,GLbyte,GLbyte)
120
- GL_FUNC_STATIC_3(Normal3d,GLvoid, GLdouble,GLdouble,GLdouble)
121
- GL_FUNC_STATIC_3(Normal3f,GLvoid, GLfloat,GLfloat,GLfloat)
122
- GL_FUNC_STATIC_3(Normal3i,GLvoid, GLint,GLint,GLint)
123
- GL_FUNC_STATIC_3(Normal3s,GLvoid, GLshort,GLshort,GLshort)
124
- GL_FUNC_STATIC_6(Ortho,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble)
125
- GL_FUNC_STATIC_1(PassThrough,GLvoid, GLfloat)
126
- GL_FUNC_STATIC_2(PixelStoref,GLvoid, GLenum,GLfloat)
127
- GL_FUNC_STATIC_2(PixelStorei,GLvoid, GLenum,GLint)
128
- GL_FUNC_STATIC_2(PixelTransferf,GLvoid, GLenum,GLfloat)
129
- GL_FUNC_STATIC_2(PixelTransferi,GLvoid, GLenum,GLint)
130
- GL_FUNC_STATIC_2(PixelZoom,GLvoid, GLfloat,GLfloat)
131
- GL_FUNC_STATIC_1(PointSize,GLvoid, GLfloat)
132
- GL_FUNC_STATIC_2(PolygonMode,GLvoid, GLenum,GLenum)
133
- GL_FUNC_STATIC_2(PolygonOffset,GLvoid, GLfloat,GLfloat)
134
- GL_FUNC_STATIC_0(PopAttrib,GLvoid)
135
- GL_FUNC_STATIC_0(PopClientAttrib,GLvoid)
136
- GL_FUNC_STATIC_0(PopMatrix,GLvoid)
137
- GL_FUNC_STATIC_0(PopName,GLvoid)
138
- GL_FUNC_STATIC_1(PushAttrib,GLvoid, GLbitfield)
139
- GL_FUNC_STATIC_1(PushClientAttrib,GLvoid, GLbitfield)
140
- GL_FUNC_STATIC_0(PushMatrix,GLvoid)
141
- GL_FUNC_STATIC_1(PushName,GLvoid, GLuint)
142
- GL_FUNC_STATIC_2(RasterPos2d,GLvoid, GLdouble,GLdouble)
143
- GL_FUNC_STATIC_2(RasterPos2f,GLvoid, GLfloat,GLfloat)
144
- GL_FUNC_STATIC_2(RasterPos2i,GLvoid, GLint,GLint)
145
- GL_FUNC_STATIC_2(RasterPos2s,GLvoid, GLshort,GLshort)
146
- GL_FUNC_STATIC_3(RasterPos3d,GLvoid, GLdouble,GLdouble,GLdouble)
147
- GL_FUNC_STATIC_3(RasterPos3f,GLvoid, GLfloat,GLfloat,GLfloat)
148
- GL_FUNC_STATIC_3(RasterPos3i,GLvoid, GLint,GLint,GLint)
149
- GL_FUNC_STATIC_3(RasterPos3s,GLvoid, GLshort,GLshort,GLshort)
150
- GL_FUNC_STATIC_4(RasterPos4d,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
151
- GL_FUNC_STATIC_4(RasterPos4f,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
152
- GL_FUNC_STATIC_4(RasterPos4i,GLvoid, GLint,GLint,GLint,GLint)
153
- GL_FUNC_STATIC_4(RasterPos4s,GLvoid, GLshort,GLshort,GLshort,GLshort)
154
- GL_FUNC_STATIC_1(ReadBuffer,GLvoid, GLenum)
155
- GL_FUNC_STATIC_4(Rectd,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
156
- GL_FUNC_STATIC_4(Rectf,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
157
- GL_FUNC_STATIC_4(Recti,GLvoid, GLint,GLint,GLint,GLint)
158
- GL_FUNC_STATIC_4(Rects,GLvoid, GLshort,GLshort,GLshort,GLshort)
159
- GL_FUNC_STATIC_1(RenderMode,GLint, GLenum)
160
- GL_FUNC_STATIC_4(Rotated,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
161
- GL_FUNC_STATIC_4(Rotatef,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
162
- GL_FUNC_STATIC_3(Scaled,GLvoid, GLdouble,GLdouble,GLdouble)
163
- GL_FUNC_STATIC_3(Scalef,GLvoid, GLdouble,GLdouble,GLdouble)
164
- GL_FUNC_STATIC_4(Scissor,GLvoid, GLint,GLint,GLint,GLint)
165
- GL_FUNC_STATIC_1(ShadeModel,GLvoid, GLenum)
166
- GL_FUNC_STATIC_3(StencilFunc,GLvoid, GLenum,GLint,GLuint)
167
- GL_FUNC_STATIC_1(StencilMask,GLvoid, GLuint)
168
- GL_FUNC_STATIC_3(StencilOp,GLvoid, GLenum,GLenum,GLenum)
169
- GL_FUNC_STATIC_1(TexCoord1d,GLvoid, GLdouble)
170
- GL_FUNC_STATIC_1(TexCoord1f,GLvoid, GLfloat)
171
- GL_FUNC_STATIC_1(TexCoord1i,GLvoid, GLint)
172
- GL_FUNC_STATIC_1(TexCoord1s,GLvoid, GLshort)
173
- GL_FUNC_STATIC_2(TexCoord2d,GLvoid, GLdouble,GLdouble)
174
- GL_FUNC_STATIC_2(TexCoord2f,GLvoid, GLfloat,GLfloat)
175
- GL_FUNC_STATIC_2(TexCoord2i,GLvoid, GLint,GLint)
176
- GL_FUNC_STATIC_2(TexCoord2s,GLvoid, GLshort,GLshort)
177
- GL_FUNC_STATIC_3(TexCoord3d,GLvoid, GLdouble,GLdouble,GLdouble)
178
- GL_FUNC_STATIC_3(TexCoord3f,GLvoid, GLfloat,GLfloat,GLfloat)
179
- GL_FUNC_STATIC_3(TexCoord3i,GLvoid, GLint,GLint,GLint)
180
- GL_FUNC_STATIC_3(TexCoord3s,GLvoid, GLshort,GLshort,GLshort)
181
- GL_FUNC_STATIC_4(TexCoord4d,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
182
- GL_FUNC_STATIC_4(TexCoord4f,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
183
- GL_FUNC_STATIC_4(TexCoord4i,GLvoid, GLint,GLint,GLint,GLint)
184
- GL_FUNC_STATIC_4(TexCoord4s,GLvoid, GLshort,GLshort,GLshort,GLshort)
185
- GL_FUNC_STATIC_3(TexEnvf,GLvoid, GLenum,GLenum,GLfloat)
186
- GL_FUNC_STATIC_3(TexEnvi,GLvoid, GLenum,GLenum,GLint)
187
- GL_FUNC_STATIC_3(TexGend,GLvoid, GLenum,GLenum,GLdouble)
188
- GL_FUNC_STATIC_3(TexGenf,GLvoid, GLenum,GLenum,GLfloat)
189
- GL_FUNC_STATIC_3(TexGeni,GLvoid, GLenum,GLenum,GLint)
190
- GL_FUNC_STATIC_3(TexParameterf,GLvoid, GLenum,GLenum,GLfloat)
191
- GL_FUNC_STATIC_3(TexParameteri,GLvoid, GLenum,GLenum,GLint)
192
- GL_FUNC_STATIC_3(Translated,GLvoid, GLdouble,GLdouble,GLdouble)
193
- GL_FUNC_STATIC_3(Translatef,GLvoid, GLdouble,GLdouble,GLdouble)
194
- GL_FUNC_STATIC_2(Vertex2d,GLvoid, GLdouble,GLdouble)
195
- GL_FUNC_STATIC_2(Vertex2f,GLvoid, GLfloat,GLfloat)
196
- GL_FUNC_STATIC_2(Vertex2i,GLvoid, GLint,GLint)
197
- GL_FUNC_STATIC_2(Vertex2s,GLvoid, GLshort,GLshort)
198
- GL_FUNC_STATIC_3(Vertex3d,GLvoid, GLdouble,GLdouble,GLdouble)
199
- GL_FUNC_STATIC_3(Vertex3f,GLvoid, GLfloat,GLfloat,GLfloat)
200
- GL_FUNC_STATIC_3(Vertex3i,GLvoid, GLint,GLint,GLint)
201
- GL_FUNC_STATIC_3(Vertex3s,GLvoid, GLshort,GLshort,GLshort)
202
- GL_FUNC_STATIC_4(Vertex4d,GLvoid, GLdouble,GLdouble,GLdouble,GLdouble)
203
- GL_FUNC_STATIC_4(Vertex4f,GLvoid, GLfloat,GLfloat,GLfloat,GLfloat)
204
- GL_FUNC_STATIC_4(Vertex4i,GLvoid, GLint,GLint,GLint,GLint)
205
- GL_FUNC_STATIC_4(Vertex4s,GLvoid, GLshort,GLshort,GLshort,GLshort)
206
- GL_FUNC_STATIC_4(Viewport,GLvoid, GLuint,GLuint,GLuint,GLuint)
207
-
208
- VALUE inside_begin_end = Qfalse;
209
-
210
- static VALUE
211
- gl_Begin(obj,arg1)
212
- VALUE obj,arg1;
213
- {
214
- glBegin(CONV_GLenum(arg1));
215
- inside_begin_end = Qtrue;
216
- return Qnil;
217
- }
218
-
219
- static VALUE
220
- gl_End(obj)
221
- VALUE obj;
222
- {
223
- inside_begin_end = Qfalse;
224
- glEnd();
225
- CHECK_GLERROR
226
- return Qnil;
227
- }
228
-
229
- static VALUE
230
- gl_CallLists(obj,arg1,arg2)
231
- VALUE obj,arg1,arg2;
232
- {
233
- GLsizei n;
234
- GLenum type;
235
- VALUE lists;
236
- type = CONV_GLenum(arg1);
237
- lists = pack_array_or_pass_string(type,arg2);
238
- n = RSTRING_LEN(lists) / gltype_glformat_unit_size(type,1);
239
- glCallLists(n, type, RSTRING_PTR(lists));
240
- CHECK_GLERROR
241
- return Qnil;
242
- }
243
-
244
- static VALUE
245
- gl_Bitmap(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
246
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
247
- {
248
- GLsizei width;
249
- GLsizei height;
250
- GLfloat xorig;
251
- GLfloat yorig;
252
- GLfloat xmove;
253
- GLfloat ymove;
254
- width = (GLsizei)NUM2UINT(arg1);
255
- height = (GLsizei)NUM2UINT(arg2);
256
- xorig = (GLfloat)NUM2DBL(arg3);
257
- yorig = (GLfloat)NUM2DBL(arg4);
258
- xmove = (GLfloat)NUM2DBL(arg5);
259
- ymove = (GLfloat)NUM2DBL(arg6);
260
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
261
- glBitmap(width, height, xorig, yorig, xmove, ymove, (GLvoid *)NUM2INT(arg7));
262
- } else {
263
- VALUE data;
264
- data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg7);
265
-
266
- if ((RSTRING_LEN(data)*8) < (width * height))
267
- rb_raise(rb_eArgError, "string length:%li", RSTRING_LEN(data));
268
-
269
- glBitmap(width, height, xorig, yorig, xmove, ymove, (const GLubyte *)RSTRING_PTR(data));
270
- }
271
- CHECK_GLERROR
272
- return Qnil;
273
- }
274
-
275
- static VALUE
276
- gl_EdgeFlagv(obj,arg1)
277
- VALUE obj,arg1;
278
- {
279
- GLboolean flag[1] = { GL_FALSE };
280
- Check_Type(arg1,T_ARRAY);
281
- ary2cboolean(arg1,flag,1);
282
- glEdgeFlagv(flag);
283
- CHECK_GLERROR
284
- return Qnil;
285
- }
286
-
287
- static VALUE
288
- gl_Indexdv(obj,arg1)
289
- VALUE obj,arg1;
290
- {
291
- GLdouble c[1] = {0.0};
292
- Check_Type(arg1,T_ARRAY);
293
- ary2cdbl(arg1,c,1);
294
- glIndexdv(c);
295
- CHECK_GLERROR
296
- return Qnil;
297
- }
298
-
299
- static VALUE
300
- gl_Indexfv(obj,arg1)
301
- VALUE obj,arg1;
302
- {
303
- GLfloat c[1] = {0.0};
304
- Check_Type(arg1,T_ARRAY);
305
- ary2cflt(arg1,c,1);
306
- glIndexfv(c);
307
- CHECK_GLERROR
308
- return Qnil;
309
- }
310
-
311
- static VALUE
312
- gl_Indexiv(obj,arg1)
313
- VALUE obj,arg1;
314
- {
315
- GLint c[1] = {0.0};
316
- Check_Type(arg1,T_ARRAY);
317
- ary2cint(arg1,c,1);
318
- glIndexiv(c);
319
- CHECK_GLERROR
320
- return Qnil;
321
- }
322
-
323
- static VALUE
324
- gl_Indexsv(obj,arg1)
325
- VALUE obj,arg1;
326
- {
327
- GLshort c[1] = {0};
328
- Check_Type(arg1,T_ARRAY);
329
- ary2cshort(arg1,c,1);
330
- glIndexsv(c);
331
- CHECK_GLERROR
332
- return Qnil;
333
- }
334
-
335
- static VALUE
336
- gl_ClipPlane(obj,arg1,arg2)
337
- VALUE obj,arg1,arg2;
338
- {
339
- GLenum plane;
340
- GLdouble equation[4];
341
- plane = (GLenum)NUM2INT(arg1);
342
- Check_Type(arg2,T_ARRAY);
343
- ary2cdbl(arg2, equation, 4);
344
- glClipPlane(plane,equation);
345
- CHECK_GLERROR
346
- return Qnil;
347
- }
348
-
349
- static VALUE
350
- gl_Fogfv(obj,arg1,arg2)
351
- VALUE obj,arg1,arg2;
352
- {
353
- GLenum pname;
354
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
355
- pname = (GLenum)NUM2INT(arg1);
356
- Check_Type(arg2,T_ARRAY);
357
- ary2cflt(arg2,params,4);
358
- glFogfv(pname,params);
359
- CHECK_GLERROR
360
- return Qnil;
361
- }
362
-
363
- static VALUE
364
- gl_Fogiv(obj,arg1,arg2)
365
- VALUE obj,arg1,arg2;
366
- {
367
- GLenum pname;
368
- GLint params[4] = {0,0,0,0};
369
- pname = (GLenum)NUM2INT(arg1);
370
- Check_Type(arg2,T_ARRAY);
371
- ary2cint(arg2,params,4);
372
- glFogiv(pname,params);
373
- CHECK_GLERROR
374
- return Qnil;
375
- }
376
-
377
- static VALUE
378
- gl_Lightfv(obj,arg1,arg2,arg3)
379
- VALUE obj,arg1,arg2,arg3;
380
- {
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);
389
- CHECK_GLERROR
390
- return Qnil;
391
- }
392
-
393
- static VALUE
394
- gl_Lightiv(obj,arg1,arg2,arg3)
395
- VALUE obj,arg1,arg2,arg3;
396
- {
397
- GLenum light;
398
- GLenum pname;
399
- GLint params[4]={0,0,0,0};
400
- light = (GLenum)NUM2INT(arg1);
401
- pname = (GLenum)NUM2INT(arg2);
402
- Check_Type(arg3,T_ARRAY);
403
- ary2cint(arg3,params,4);
404
- glLightiv(light,pname,params);
405
- CHECK_GLERROR
406
- return Qnil;
407
- }
408
-
409
- static VALUE
410
- gl_LightModelfv(obj,arg1,arg2)
411
- VALUE obj,arg1,arg2;
412
- {
413
- GLenum pname;
414
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
415
- pname = (GLenum)NUM2INT(arg1);
416
- Check_Type(arg2,T_ARRAY);
417
- ary2cflt(arg2,params,4);
418
- glLightModelfv(pname,params);
419
- CHECK_GLERROR
420
- return Qnil;
421
- }
422
-
423
- static VALUE
424
- gl_LightModeliv(obj,arg1,arg2)
425
- VALUE obj,arg1,arg2;
426
- {
427
- GLenum pname;
428
- GLint params[4] = {0,0,0,0};
429
- pname = (GLenum)NUM2INT(arg1);
430
- Check_Type(arg2,T_ARRAY);
431
- ary2cint(arg2,params,4);
432
- glLightModeliv(pname,params);
433
- CHECK_GLERROR
434
- return Qnil;
435
- }
436
-
437
-
438
- static VALUE
439
- gl_Materialfv(obj,arg1,arg2,arg3)
440
- VALUE obj,arg1,arg2,arg3;
441
- {
442
- GLenum face;
443
- GLenum pname;
444
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
445
- face = (GLenum)NUM2INT(arg1);
446
- pname = (GLenum)NUM2INT(arg2);
447
- Check_Type(arg3,T_ARRAY);
448
- ary2cflt(arg3,params,4);
449
- glMaterialfv(face,pname,params);
450
- CHECK_GLERROR
451
- return Qnil;
452
- }
453
-
454
- static VALUE
455
- gl_Materialiv(obj,arg1,arg2,arg3)
456
- VALUE obj,arg1,arg2,arg3;
457
- {
458
- GLenum face;
459
- GLenum pname;
460
- GLint params[4] = {0,0,0,0};
461
- face = (GLenum)NUM2INT(arg1);
462
- pname = (GLenum)NUM2INT(arg2);
463
- Check_Type(arg3,T_ARRAY);
464
- ary2cint(arg3,params,4);
465
- glMaterialiv(face,pname,params);
466
- CHECK_GLERROR
467
- return Qnil;
468
- }
469
-
470
- static VALUE
471
- gl_PolygonStipple(obj,arg1)
472
- VALUE obj,arg1;
473
- {
474
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
475
- glPolygonStipple((GLvoid *)NUM2INT(arg1));
476
- } else {
477
- VALUE data;
478
- data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg1);
479
- if (RSTRING_LEN(data) < 128)
480
- rb_raise(rb_eArgError, "string length:%li", RSTRING_LEN(data));
481
-
482
- glPolygonStipple((GLubyte *)RSTRING_PTR(data));
483
- }
484
- CHECK_GLERROR
485
- return Qnil;
486
- }
487
-
488
-
489
- static VALUE
490
- gl_TexParameterfv(obj,arg1,arg2,arg3)
491
- VALUE obj,arg1,arg2,arg3;
492
- {
493
- GLenum target;
494
- GLenum pname;
495
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
496
- target = (GLenum)NUM2INT(arg1);
497
- pname = (GLenum)NUM2INT(arg2);
498
- Check_Type(arg3,T_ARRAY);
499
- ary2cflt(arg3,params,4);
500
- glTexParameterfv(target,pname,params);
501
- CHECK_GLERROR
502
- return Qnil;
503
- }
504
-
505
- static VALUE
506
- gl_TexParameteriv(obj,arg1,arg2,arg3)
507
- VALUE obj,arg1,arg2,arg3;
508
- {
509
- GLenum target;
510
- GLenum pname;
511
- GLint params[4] = {0,0,0,0};
512
- target = (GLenum)NUM2INT(arg1);
513
- pname = (GLenum)NUM2INT(arg2);
514
- Check_Type(arg3,T_ARRAY);
515
- ary2cint(arg3,params,4);
516
- glTexParameteriv(target,pname,params);
517
- CHECK_GLERROR
518
- return Qnil;
519
- }
520
-
521
- static VALUE
522
- gl_TexImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8)
523
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8;
524
- {
525
- GLenum target;
526
- GLint level;
527
- GLint components;
528
- GLsizei width;
529
- GLint border;
530
- GLenum format;
531
- GLenum type;
532
- const char *pixels;
533
- target = (GLenum)NUM2INT(arg1);
534
- level = (GLint)NUM2INT(arg2);
535
- components = (GLint)NUM2INT(arg3);
536
- width = (GLsizei)NUM2UINT(arg4);
537
- border = (GLint)NUM2INT(arg5);
538
- format = (GLenum)NUM2INT(arg6);
539
- type = (GLenum)NUM2INT(arg7);
540
-
541
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
542
- glTexImage1D(target,level,components,width,border,format,type,(GLvoid *)NUM2INT(arg8));
543
- CHECK_GLERROR
544
- return Qnil;
545
- }
546
-
547
- if (target == GL_PROXY_TEXTURE_1D || NIL_P(arg8)) { /* proxy texture, no data read */
548
- pixels = NULL;
549
- } else {
550
- VALUE data;
551
- data = pack_array_or_pass_string(type,arg8);
552
- CheckDataSize(type,format,width,data);
553
- pixels = RSTRING_PTR(data);
554
- }
555
- glTexImage1D(target,level,components,width,border,format,type,pixels);
556
- CHECK_GLERROR
557
- return Qnil;
558
- }
559
-
560
- static VALUE
561
- gl_TexImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
562
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
563
- {
564
- GLenum target;
565
- GLint level;
566
- GLint components;
567
- GLsizei width;
568
- GLsizei height;
569
- GLint border;
570
- GLenum format;
571
- GLenum type;
572
- const char *pixels;
573
- target = (GLenum)NUM2INT(arg1);
574
- level = (GLint)NUM2INT(arg2);
575
- components = (GLint)NUM2INT(arg3);
576
- width = (GLsizei)NUM2UINT(arg4);
577
- height = (GLsizei)NUM2UINT(arg5);
578
- border = (GLint)NUM2INT(arg6);
579
- format = (GLenum)NUM2INT(arg7);
580
- type = (GLenum)NUM2INT(arg8);
581
-
582
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
583
- glTexImage2D(target,level,components,width,height,border,format,type,(GLvoid *)NUM2INT(arg9));
584
- CHECK_GLERROR
585
- return Qnil;
586
- }
587
-
588
- 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 */
589
- pixels = NULL;
590
- } else {
591
- VALUE data;
592
- data = pack_array_or_pass_string(type,arg9);
593
- CheckDataSize(type,format,width*height,data);
594
- pixels = RSTRING_PTR(data);
595
- }
596
- glTexImage2D(target,level,components,width,height,border,format,type,pixels);
597
- CHECK_GLERROR
598
- return Qnil;
599
- }
600
-
601
- static VALUE
602
- gl_TexEnvfv(obj,arg1,arg2,arg3)
603
- VALUE obj,arg1,arg2,arg3;
604
- {
605
- GLenum target;
606
- GLenum pname;
607
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
608
- target = (GLenum)NUM2INT(arg1);
609
- pname = (GLenum)NUM2INT(arg2);
610
- Check_Type(arg3,T_ARRAY);
611
- ary2cflt(arg3,params,4);
612
- glTexEnvfv(target,pname,params);
613
- CHECK_GLERROR
614
- return Qnil;
615
- }
616
-
617
- static VALUE
618
- gl_TexEnviv(obj,arg1,arg2,arg3)
619
- VALUE obj,arg1,arg2,arg3;
620
- {
621
- GLenum target;
622
- GLenum pname;
623
- GLint params[4] = {0,0,0,0};
624
- target = (GLenum)NUM2INT(arg1);
625
- pname = (GLenum)NUM2INT(arg2);
626
- Check_Type(arg3,T_ARRAY);
627
- ary2cint(arg3,params,4);
628
- glTexEnviv(target,pname,params);
629
- CHECK_GLERROR
630
- return Qnil;
631
- }
632
-
633
-
634
- static VALUE
635
- gl_TexGendv(obj,arg1,arg2,arg3)
636
- VALUE obj,arg1,arg2,arg3;
637
- {
638
- GLenum coord;
639
- GLenum pname;
640
- GLdouble params[4] = {0.0,0.0,0.0,0.0};
641
- coord = (GLenum)NUM2INT(arg1);
642
- pname = (GLenum)NUM2INT(arg2);
643
- Check_Type(arg3,T_ARRAY);
644
- ary2cdbl(arg3,params,4);
645
- glTexGendv(coord,pname,params);
646
- CHECK_GLERROR
647
- return Qnil;
648
- }
649
-
650
-
651
- static VALUE
652
- gl_TexGenfv(obj,arg1,arg2,arg3)
653
- VALUE obj,arg1,arg2,arg3;
654
- {
655
- GLenum coord;
656
- GLenum pname;
657
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
658
- coord = (GLenum)NUM2INT(arg1);
659
- pname = (GLenum)NUM2INT(arg2);
660
- Check_Type(arg3,T_ARRAY);
661
- ary2cflt(arg3,params,4);
662
- glTexGenfv(coord,pname,params);
663
- CHECK_GLERROR
664
- return Qnil;
665
- }
666
-
667
-
668
- static VALUE
669
- gl_TexGeniv(obj,arg1,arg2,arg3)
670
- VALUE obj,arg1,arg2,arg3;
671
- {
672
- GLenum coord;
673
- GLenum pname;
674
- GLint params[4] = {0,0,0,0};
675
- coord = (GLenum)NUM2INT(arg1);
676
- pname = (GLenum)NUM2INT(arg2);
677
- Check_Type(arg3,T_ARRAY);
678
- ary2cint(arg3,params,4);
679
- glTexGeniv(coord,pname,params);
680
- CHECK_GLERROR
681
- return Qnil;
682
- }
683
- static VALUE g_current_feed_buffer;
684
- static VALUE
685
- gl_FeedbackBuffer(obj,arg1,arg2)
686
- VALUE obj,arg1,arg2;
687
- {
688
- GLsizei size;
689
- GLenum type;
690
- size = (GLsizei)NUM2UINT(arg1);
691
- type = (GLenum)NUM2INT(arg2);
692
- g_current_feed_buffer = allocate_buffer_with_string(sizeof(GLfloat)*size);
693
- rb_str_freeze(g_current_feed_buffer);
694
- glFeedbackBuffer(size, type, (GLfloat*)RSTRING_PTR(g_current_feed_buffer));
695
- CHECK_GLERROR
696
- return g_current_feed_buffer;
697
- }
698
-
699
- static VALUE g_current_sel_buffer;
700
- static VALUE
701
- gl_SelectBuffer(obj,arg1)
702
- VALUE obj,arg1;
703
- {
704
- GLsizei size;
705
- size = (GLsizei)NUM2UINT(arg1);
706
- g_current_sel_buffer = allocate_buffer_with_string(sizeof(GLuint)*size);
707
- rb_str_freeze(g_current_sel_buffer);
708
- glSelectBuffer(size, (GLuint*)RSTRING_PTR(g_current_sel_buffer));
709
- CHECK_GLERROR
710
- return g_current_sel_buffer;
711
- }
712
-
713
-
714
- static VALUE
715
- gl_Map1d(obj,arg1,arg2,arg3,arg4,arg5,arg6)
716
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
717
- {
718
- GLenum target;
719
- GLdouble u1;
720
- GLdouble u2;
721
- GLint stride;
722
- GLint order;
723
- GLdouble *points;
724
-
725
- VALUE work_ary;
726
-
727
- target = (GLenum)NUM2INT(arg1);
728
- u1 = (GLdouble)NUM2DBL(arg2);
729
- u2 = (GLdouble)NUM2DBL(arg3);
730
- stride = (GLint)NUM2INT(arg4);
731
- order = (GLint)NUM2INT(arg5);
732
- points = ALLOC_N(GLdouble, order*stride);
733
- work_ary = rb_funcall(arg6,rb_intern("flatten"),0);
734
- ary2cdbl(work_ary, points, order*stride);
735
- glMap1d(target, u1, u2, stride, order, points);
736
- xfree(points);
737
- CHECK_GLERROR
738
- return Qnil;
739
- }
740
-
741
- static VALUE
742
- gl_Map1f(obj,arg1,arg2,arg3,arg4,arg5,arg6)
743
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6;
744
- {
745
- GLenum target;
746
- GLfloat u1;
747
- GLfloat u2;
748
- GLint stride;
749
- GLint order;
750
- GLfloat *points;
751
-
752
- VALUE work_ary;
753
-
754
- target = (GLenum)NUM2INT(arg1);
755
- u1 = (GLfloat)NUM2DBL(arg2);
756
- u2 = (GLfloat)NUM2DBL(arg3);
757
- stride = (GLint)NUM2INT(arg4);
758
- order = (GLint)NUM2INT(arg5);
759
- points = ALLOC_N(GLfloat, order*stride);
760
- work_ary = rb_funcall(arg6,rb_intern("flatten"),0);
761
- ary2cflt(work_ary, points, order*stride);
762
- glMap1f(target, u1, u2, stride, order, points);
763
- xfree(points);
764
- CHECK_GLERROR
765
- return Qnil;
766
- }
767
-
768
- static VALUE
769
- gl_Map2d(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
770
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
771
- {
772
- GLenum target;
773
- GLdouble u1;
774
- GLdouble u2;
775
- GLint ustride;
776
- GLint uorder;
777
- GLdouble v1;
778
- GLdouble v2;
779
- GLint vstride;
780
- GLint vorder;
781
- GLdouble *points;
782
-
783
- VALUE work_ary;
784
-
785
- target = (GLenum)NUM2INT(arg1);
786
- u1 = (GLdouble)NUM2INT(arg2);
787
- u2 = (GLdouble)NUM2INT(arg3);
788
- ustride = (GLint)NUM2INT(arg4);
789
- uorder = (GLint)NUM2INT(arg5);
790
- v1 = (GLdouble)NUM2INT(arg6);
791
- v2 = (GLdouble)NUM2INT(arg7);
792
- vstride = (GLint)NUM2INT(arg8);
793
- vorder = (GLint)NUM2INT(arg9);
794
- points = ALLOC_N(GLdouble, MAX(ustride*uorder, vstride*vorder));
795
- work_ary = rb_funcall(arg10,rb_intern("flatten"),0);
796
- ary2cdbl(work_ary, points, MAX(ustride*uorder, vstride*vorder));
797
- glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
798
- xfree(points);
799
- CHECK_GLERROR
800
- return Qnil;
801
- }
802
-
803
- static VALUE
804
- gl_Map2f(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10)
805
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10;
806
- {
807
- GLenum target;
808
- GLfloat u1;
809
- GLfloat u2;
810
- GLint ustride;
811
- GLint uorder;
812
- GLfloat v1;
813
- GLfloat v2;
814
- GLint vstride;
815
- GLint vorder;
816
- GLfloat *points;
817
-
818
- VALUE work_ary;
819
-
820
- target = (GLenum)NUM2INT(arg1);
821
- u1 = (GLfloat)NUM2INT(arg2);
822
- u2 = (GLfloat)NUM2INT(arg3);
823
- ustride = (GLint)NUM2INT(arg4);
824
- uorder = (GLint)NUM2INT(arg5);
825
- v1 = (GLfloat)NUM2INT(arg6);
826
- v2 = (GLfloat)NUM2INT(arg7);
827
- vstride = (GLint)NUM2INT(arg8);
828
- vorder = (GLint)NUM2INT(arg9);
829
- points = ALLOC_N(GLfloat, MAX(ustride*uorder, vstride*vorder));
830
- work_ary = rb_funcall(arg10,rb_intern("flatten"),0);
831
- ary2cflt(work_ary, points, MAX(ustride*uorder, vstride*vorder));
832
- glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
833
- xfree(points);
834
- CHECK_GLERROR
835
- return Qnil;
836
- }
837
-
838
- static VALUE
839
- gl_EvalCoord1dv(obj,arg1)
840
- VALUE obj,arg1;
841
- {
842
- GLdouble params[1] = {0.0};
843
- Check_Type(arg1,T_ARRAY);
844
- ary2cdbl(arg1,params,1);
845
- glEvalCoord1dv(params);
846
- CHECK_GLERROR
847
- return Qnil;
848
- }
849
-
850
- static VALUE
851
- gl_EvalCoord1fv(obj,arg1)
852
- VALUE obj,arg1;
853
- {
854
- GLfloat params[1] = {0.0};
855
- Check_Type(arg1,T_ARRAY);
856
- ary2cflt(arg1,params,1);
857
- glEvalCoord1fv(params);
858
- CHECK_GLERROR
859
- return Qnil;
860
- }
861
-
862
- static VALUE
863
- gl_EvalCoord2dv(obj,arg1)
864
- VALUE obj,arg1;
865
- {
866
- GLdouble params[2] = {0.0,0.0};
867
- Check_Type(arg1,T_ARRAY);
868
- ary2cdbl(arg1,params,2);
869
- glEvalCoord2dv(params);
870
- CHECK_GLERROR
871
- return Qnil;
872
- }
873
-
874
- static VALUE
875
- gl_EvalCoord2fv(obj,arg1)
876
- VALUE obj,arg1;
877
- {
878
- GLfloat params[2] = {0.0,0.0};
879
- Check_Type(arg1,T_ARRAY);
880
- ary2cflt(arg1,params,2);
881
- glEvalCoord2fv(params);
882
- CHECK_GLERROR
883
- return Qnil;
884
- }
885
-
886
-
887
- #define GLPIXELMAP_FUNC(_type_,_vartype_,_convert_) \
888
- static VALUE \
889
- gl_PixelMap##_type_##v(argc,argv,obj) \
890
- int argc; \
891
- VALUE *argv; \
892
- VALUE obj; \
893
- { \
894
- GLenum map; \
895
- _vartype_ *values; \
896
- GLsizei size; \
897
- VALUE args[4]; \
898
- switch(rb_scan_args(argc, argv, "21", &args[0], &args[1], &args[2])) { \
899
- default: \
900
- case 2: \
901
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) \
902
- rb_raise(rb_eArgError, "Pixel unpack buffer bound, but offset argument missing"); \
903
- map = (GLenum)NUM2INT(args[0]); \
904
- Check_Type(args[1],T_ARRAY); \
905
- size = RARRAY_LEN(args[1]); \
906
- values = ALLOC_N(_vartype_,size); \
907
- _convert_(args[1],values,size); \
908
- glPixelMap##_type_##v(map,size,values); \
909
- xfree(values); \
910
- break; \
911
- case 3: \
912
- if (!CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) \
913
- rb_raise(rb_eArgError, "Pixel unpack buffer not bound"); \
914
- map = (GLenum)NUM2INT(args[0]); \
915
- size = (GLsizei)NUM2INT(args[1]); \
916
- glPixelMap##_type_##v(map,size,(GLvoid *)NUM2INT(args[2])); \
917
- break; \
918
- } \
919
- CHECK_GLERROR \
920
- return Qnil; \
921
- }
922
-
923
- GLPIXELMAP_FUNC(f,GLfloat,ary2cflt)
924
- GLPIXELMAP_FUNC(ui,GLuint,ary2cuint)
925
- GLPIXELMAP_FUNC(us,GLushort,ary2cushort)
926
- #undef GLPIXELMAP_FUNC
927
-
928
-
929
- static VALUE
930
- gl_ReadPixels(argc,argv,obj)
931
- int argc;
932
- VALUE *argv;
933
- VALUE obj;
934
- {
935
- GLint x;
936
- GLint y;
937
- GLsizei width;
938
- GLsizei height;
939
- int format;
940
- int type;
941
- VALUE pixels;
942
- VALUE args[7];
943
- int numargs;
944
- numargs = rb_scan_args(argc, argv, "61", &args[0], &args[1], &args[2], &args[3], &args[4], &args[5], &args[6]);
945
- x = (GLint)NUM2INT(args[0]);
946
- y = (GLint)NUM2INT(args[1]);
947
- width = (GLsizei)NUM2UINT(args[2]);
948
- height = (GLsizei)NUM2UINT(args[3]);
949
- format = NUM2INT(args[4]);
950
- type = NUM2INT(args[5]);
951
-
952
- switch(numargs) {
953
- default:
954
- case 6:
955
- if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
956
- rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
957
- pixels = allocate_buffer_with_string(GetDataSize(type,format,width*height));
958
- FORCE_PIXEL_STORE_MODE
959
- glReadPixels(x,y,width,height,format,type,(GLvoid*)RSTRING_PTR(pixels));
960
- RESTORE_PIXEL_STORE_MODE
961
- CHECK_GLERROR
962
- return pixels;
963
- break;
964
- case 7:
965
- if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
966
- rb_raise(rb_eArgError, "Pixel pack buffer not bound");
967
- FORCE_PIXEL_STORE_MODE
968
- glReadPixels(x,y,width,height,format,type,(GLvoid*)NUM2INT(args[6]));
969
- RESTORE_PIXEL_STORE_MODE
970
- CHECK_GLERROR
971
- return Qnil;
972
- break;
973
- }
974
- }
975
-
976
- static VALUE
977
- gl_DrawPixels(obj,arg1,arg2,arg3,arg4,arg5)
978
- VALUE obj,arg1,arg2,arg3,arg4,arg5;
979
- {
980
- GLsizei width;
981
- GLsizei height;
982
- GLenum format;
983
- GLenum type;
984
- const char *pixels;
985
- width = (GLsizei)NUM2UINT(arg1);
986
- height = (GLsizei)NUM2UINT(arg2);
987
- format = (GLenum)NUM2INT(arg3);
988
- type = (GLenum)NUM2INT(arg4);
989
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
990
- glDrawPixels(width,height,format,type,(GLvoid *)NUM2INT(arg5));
991
- } else {
992
- VALUE data;
993
- data = pack_array_or_pass_string(type,arg5);
994
- CheckDataSize(type,format,width*height,data);
995
- pixels = RSTRING_PTR(data);
996
- glDrawPixels(width,height,format,type,pixels);
997
- }
998
- CHECK_GLERROR
999
- return Qnil;
1000
- }
1001
-
1002
- static VALUE
1003
- gl_GetClipPlane(obj,arg1)
1004
- VALUE obj,arg1;
1005
- {
1006
- GLenum plane;
1007
- GLdouble equation[4] = {0.0,0.0,0.0,0.0};
1008
- VALUE retary;
1009
- int i;
1010
- plane = (GLenum)NUM2INT(arg1);
1011
- glGetClipPlane(plane,equation);
1012
- retary = rb_ary_new2(4);
1013
- for(i=0;i<4;i++)
1014
- rb_ary_push(retary, rb_float_new(equation[i]));
1015
- CHECK_GLERROR
1016
- return retary;
1017
- }
1018
-
1019
- #define GLGET_FUNC(_name_,_type_,_conv_) \
1020
- static VALUE \
1021
- gl_Get##_name_##v(obj,arg1) \
1022
- VALUE obj,arg1; \
1023
- { \
1024
- GLenum pname; \
1025
- int nitems; \
1026
- VALUE ary, ary2; \
1027
- int i,j; \
1028
- _type_ items[64]; \
1029
- pname = NUM2INT(arg1); \
1030
- switch(pname) { \
1031
- case GL_ACCUM_CLEAR_VALUE: \
1032
- case GL_BLEND_COLOR: \
1033
- case GL_COLOR_CLEAR_VALUE: \
1034
- case GL_COLOR_WRITEMASK: \
1035
- case GL_CURRENT_COLOR: \
1036
- case GL_CURRENT_RASTER_COLOR: \
1037
- case GL_CURRENT_RASTER_POSITION: \
1038
- case GL_CURRENT_RASTER_SECONDARY_COLOR: \
1039
- case GL_CURRENT_RASTER_TEXTURE_COORDS: \
1040
- case GL_CURRENT_TEXTURE_COORDS: \
1041
- case GL_FOG_COLOR: \
1042
- case GL_LIGHT_MODEL_AMBIENT: \
1043
- case GL_MAP2_GRID_DOMAIN: \
1044
- case GL_CURRENT_SECONDARY_COLOR: \
1045
- case GL_SCISSOR_BOX: \
1046
- case GL_TEXTURE_ENV_COLOR: \
1047
- case GL_VIEWPORT: \
1048
- case GL_REFERENCE_PLANE_EQUATION_SGIX: \
1049
- case GL_FOG_OFFSET_VALUE_SGIX: \
1050
- case GL_TEXTURE_ENV_BIAS_SGIX: \
1051
- case GL_CULL_VERTEX_OBJECT_POSITION_EXT: \
1052
- case GL_CULL_VERTEX_EYE_POSITION_EXT: \
1053
- case GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX: \
1054
- case GL_CONSTANT_COLOR0_NV: \
1055
- case GL_CONSTANT_COLOR1_NV: \
1056
- case GL_TEXTURE_COLOR_WRITEMASK_SGIS: \
1057
- case GL_FLOAT_CLEAR_COLOR_VALUE_NV: \
1058
- case GL_RGBA_SIGNED_COMPONENTS_EXT: \
1059
- nitems = 4; \
1060
- break; \
1061
- case GL_CURRENT_NORMAL: \
1062
- case GL_POINT_DISTANCE_ATTENUATION: \
1063
- case GL_SPRITE_AXIS_SGIX: \
1064
- case GL_SPRITE_TRANSLATION_SGIX: \
1065
- case GL_CURRENT_RASTER_NORMAL_SGIX: \
1066
- case GL_CURRENT_TANGENT_EXT: \
1067
- case GL_CURRENT_BINORMAL_EXT: \
1068
- nitems = 3; \
1069
- break; \
1070
- case GL_DEPTH_RANGE: \
1071
- case GL_LINE_WIDTH_RANGE: \
1072
- case GL_MAP1_GRID_DOMAIN: \
1073
- case GL_MAP2_GRID_SEGMENTS: \
1074
- case GL_MAX_VIEWPORT_DIMS: \
1075
- case GL_POINT_SIZE_RANGE: \
1076
- case GL_POLYGON_MODE: \
1077
- case GL_ALIASED_LINE_WIDTH_RANGE: \
1078
- case GL_ALIASED_POINT_SIZE_RANGE: \
1079
- case GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX: \
1080
- case GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX: \
1081
- case GL_FOG_FUNC_SGIS: \
1082
- case GL_DEPTH_BOUNDS_EXT: \
1083
- nitems = 2; \
1084
- break; \
1085
- case GL_MODELVIEW_MATRIX: \
1086
- case GL_PROJECTION_MATRIX: \
1087
- case GL_TEXTURE_MATRIX: \
1088
- case GL_COLOR_MATRIX: \
1089
- case GL_TRANSPOSE_MODELVIEW_MATRIX: \
1090
- case GL_TRANSPOSE_PROJECTION_MATRIX: \
1091
- case GL_TRANSPOSE_TEXTURE_MATRIX: \
1092
- case GL_TRANSPOSE_COLOR_MATRIX: \
1093
- case GL_TRANSPOSE_CURRENT_MATRIX_ARB: \
1094
- case GL_MODELVIEW0_ARB: \
1095
- case GL_MODELVIEW1_ARB: \
1096
- case GL_MODELVIEW2_ARB: \
1097
- case GL_MODELVIEW3_ARB: \
1098
- case GL_MODELVIEW4_ARB: \
1099
- case GL_MODELVIEW5_ARB: \
1100
- case GL_MODELVIEW6_ARB: \
1101
- case GL_MODELVIEW7_ARB: \
1102
- case GL_MODELVIEW8_ARB: \
1103
- case GL_MODELVIEW9_ARB: \
1104
- case GL_MODELVIEW10_ARB: \
1105
- case GL_MODELVIEW11_ARB: \
1106
- case GL_MODELVIEW12_ARB: \
1107
- case GL_MODELVIEW13_ARB: \
1108
- case GL_MODELVIEW14_ARB: \
1109
- case GL_MODELVIEW15_ARB: \
1110
- case GL_MODELVIEW16_ARB: \
1111
- case GL_MODELVIEW17_ARB: \
1112
- case GL_MODELVIEW18_ARB: \
1113
- case GL_MODELVIEW19_ARB: \
1114
- case GL_MODELVIEW20_ARB: \
1115
- case GL_MODELVIEW21_ARB: \
1116
- case GL_MODELVIEW22_ARB: \
1117
- case GL_MODELVIEW23_ARB: \
1118
- case GL_MODELVIEW24_ARB: \
1119
- case GL_MODELVIEW25_ARB: \
1120
- case GL_MODELVIEW26_ARB: \
1121
- case GL_MODELVIEW27_ARB: \
1122
- case GL_MODELVIEW28_ARB: \
1123
- case GL_MODELVIEW29_ARB: \
1124
- case GL_MODELVIEW30_ARB: \
1125
- case GL_MODELVIEW31_ARB: \
1126
- case GL_MATRIX_PALETTE_ARB: \
1127
- case GL_PIXEL_TRANSFORM_2D_MATRIX_EXT: \
1128
- case GL_MODELVIEW1_MATRIX_EXT: \
1129
- case GL_CURRENT_MATRIX_NV: \
1130
- glGet##_name_##v(pname, items); \
1131
- ary = rb_ary_new2(4); \
1132
- for (i = 0; i < 4; i++) { \
1133
- ary2 = rb_ary_new2(4); \
1134
- rb_ary_push(ary, ary2); \
1135
- for (j = 0; j < 4; j++) \
1136
- rb_ary_push(ary2, _conv_(items[i*4+j])); \
1137
- } \
1138
- CHECK_GLERROR \
1139
- return ary; \
1140
- case GL_POLYGON_STIPPLE: \
1141
- glGet##_name_##v(pname, items); \
1142
- CHECK_GLERROR \
1143
- return rb_str_new((const char*)items, 32); \
1144
- case GL_COMPRESSED_TEXTURE_FORMATS: \
1145
- glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &nitems); \
1146
- CHECK_GLERROR \
1147
- if (nitems<=0||nitems>64) \
1148
- return INT2NUM(0); \
1149
- break; \
1150
- default: /* size=1 */ \
1151
- glGet##_name_##v(pname, items); \
1152
- CHECK_GLERROR \
1153
- return _conv_(items[0]); \
1154
- } \
1155
- glGet##_name_##v(pname, items); \
1156
- ary = rb_ary_new2(nitems); \
1157
- for (i = 0; i < nitems; i++) \
1158
- rb_ary_push(ary, _conv_(items[i])); \
1159
- CHECK_GLERROR \
1160
- return ary; \
1161
- }
1162
-
1163
- GLGET_FUNC(Double,GLdouble,rb_float_new)
1164
- GLGET_FUNC(Float,GLfloat,rb_float_new)
1165
- GLGET_FUNC(Integer,GLint,INT2NUM)
1166
- GLGET_FUNC(Boolean,GLboolean,GLBOOL2RUBY)
1167
-
1168
- #undef GLGET_FUNC
1169
-
1170
-
1171
- static VALUE
1172
- gl_GetLightfv(obj,arg1,arg2)
1173
- VALUE obj,arg1,arg2;
1174
- {
1175
- GLenum light;
1176
- GLenum pname;
1177
- GLsizei size;
1178
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
1179
- light = (GLenum)NUM2INT(arg1);
1180
- pname = (GLenum)NUM2INT(arg2);
1181
- switch(pname) {
1182
- case GL_AMBIENT:
1183
- case GL_DIFFUSE:
1184
- case GL_SPECULAR:
1185
- case GL_POSITION:
1186
- size = 4;
1187
- break;
1188
- case GL_SPOT_DIRECTION:
1189
- size = 3;
1190
- break;
1191
- case GL_CONSTANT_ATTENUATION:
1192
- case GL_LINEAR_ATTENUATION:
1193
- case GL_QUADRATIC_ATTENUATION:
1194
- case GL_SPOT_EXPONENT:
1195
- case GL_SPOT_CUTOFF:
1196
- size = 1;
1197
- break;
1198
- default:
1199
- rb_raise(rb_eArgError, "unknown pname:%d",pname);
1200
- break; /* not reached */
1201
- }
1202
- glGetLightfv(light,pname,params);
1203
- RET_ARRAY_OR_SINGLE(size,rb_float_new,params)
1204
- }
1205
-
1206
- static VALUE
1207
- gl_GetLightiv(obj,arg1,arg2)
1208
- VALUE obj,arg1,arg2;
1209
- {
1210
- GLenum light;
1211
- GLenum pname;
1212
- GLsizei size;
1213
- GLint params[4] = {0,0,0,0};
1214
- light = (GLenum)NUM2INT(arg1);
1215
- pname = (GLenum)NUM2INT(arg2);
1216
- switch(pname) {
1217
- case GL_AMBIENT:
1218
- case GL_DIFFUSE:
1219
- case GL_SPECULAR:
1220
- case GL_POSITION:
1221
- size = 4;
1222
- break;
1223
- case GL_SPOT_DIRECTION:
1224
- size = 3;
1225
- break;
1226
- case GL_CONSTANT_ATTENUATION:
1227
- case GL_LINEAR_ATTENUATION:
1228
- case GL_QUADRATIC_ATTENUATION:
1229
- case GL_SPOT_EXPONENT:
1230
- case GL_SPOT_CUTOFF:
1231
- size = 1;
1232
- break;
1233
- default:
1234
- rb_raise(rb_eArgError, "unknown pname:%d",pname);
1235
- break; /* not reached */
1236
- }
1237
- glGetLightiv(light,pname,params);
1238
- RET_ARRAY_OR_SINGLE(size,INT2NUM,params)
1239
- }
1240
-
1241
- #define GETMAP_FUNC(_name_,_type_) \
1242
- static VALUE \
1243
- gl_##_name_(obj,arg1,arg2) \
1244
- VALUE obj,arg1,arg2; \
1245
- { \
1246
- GLenum target; \
1247
- GLenum query; \
1248
- int dims; \
1249
- int pointsize; \
1250
- int size=0; \
1251
- _type_ *points; \
1252
- GLint order[2] = {0,0}; /* for GL_COEFF, [order] or [uorder,vorder] (MAP1/MAP2) */ \
1253
- target = (GLenum)NUM2INT(arg1); \
1254
- query = (GLenum)NUM2INT(arg2); \
1255
- switch(target) { \
1256
- case GL_MAP1_INDEX: \
1257
- case GL_MAP1_TEXTURE_COORD_1: dims=1; pointsize=1; break; \
1258
- case GL_MAP1_TEXTURE_COORD_2: dims=1; pointsize=2; break; \
1259
- case GL_MAP1_VERTEX_3: \
1260
- case GL_MAP1_NORMAL: \
1261
- case GL_MAP1_TEXTURE_COORD_3: dims=1; pointsize=3; break; \
1262
- case GL_MAP1_COLOR_4: \
1263
- case GL_MAP1_TEXTURE_COORD_4: \
1264
- case GL_MAP1_VERTEX_4: dims=1; pointsize=4; break; \
1265
- case GL_MAP2_INDEX: \
1266
- case GL_MAP2_TEXTURE_COORD_1: dims=2; pointsize=1; break; \
1267
- case GL_MAP2_TEXTURE_COORD_2: dims=2; pointsize=2; break; \
1268
- case GL_MAP2_VERTEX_3: \
1269
- case GL_MAP2_NORMAL: \
1270
- case GL_MAP2_TEXTURE_COORD_3: dims=2; pointsize=3; break; \
1271
- case GL_MAP2_COLOR_4: \
1272
- case GL_MAP2_TEXTURE_COORD_4: \
1273
- case GL_MAP2_VERTEX_4: dims=2; pointsize=4; break; \
1274
- default: \
1275
- rb_raise(rb_eArgError, "unknown target:%d",target); \
1276
- break; /* not reached */ \
1277
- } \
1278
- switch(query) { \
1279
- case GL_ORDER: size = dims; break; \
1280
- case GL_DOMAIN: size = dims*2; break; \
1281
- case GL_COEFF: \
1282
- glGetMapiv(target,GL_ORDER,order); \
1283
- CHECK_GLERROR \
1284
- if (dims==1) \
1285
- size = order[0] * pointsize; \
1286
- else \
1287
- size = (order[0]*order[1]) * pointsize; \
1288
- break; \
1289
- default: \
1290
- rb_raise(rb_eArgError, "unknown target:%d",target); \
1291
- break; /* not reached */ \
1292
- } \
1293
- points = ALLOC_N(_type_,size); \
1294
- gl##_name_(target,query,points); \
1295
- \
1296
- RET_ARRAY_OR_SINGLE_FREE(size,RETCONV_##_type_,points) \
1297
- }
1298
-
1299
- GETMAP_FUNC(GetMapdv,GLdouble)
1300
- GETMAP_FUNC(GetMapfv,GLfloat)
1301
- GETMAP_FUNC(GetMapiv,GLint)
1302
- #undef GETMAP_FUNC
1303
-
1304
- static VALUE
1305
- gl_GetMaterialfv(obj,arg1,arg2)
1306
- VALUE obj,arg1,arg2;
1307
- {
1308
- GLenum face;
1309
- GLenum pname;
1310
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
1311
- int size;
1312
- face = (GLenum)NUM2INT(arg1);
1313
- pname = (GLenum)NUM2INT(arg2);
1314
- switch(pname) {
1315
- case GL_AMBIENT:
1316
- case GL_DIFFUSE:
1317
- case GL_SPECULAR:
1318
- case GL_EMISSION:
1319
- size = 4;
1320
- break;
1321
- case GL_COLOR_INDEXES:
1322
- size = 3;
1323
- break;
1324
- case GL_SHININESS:
1325
- size = 1;
1326
- break;
1327
- default:
1328
- rb_raise(rb_eArgError, "unknown pname:%d",pname);
1329
- break; /* not reached */
1330
- }
1331
- glGetMaterialfv(face,pname,params);
1332
- RET_ARRAY_OR_SINGLE(size,rb_float_new,params)
1333
- }
1334
-
1335
- static VALUE
1336
- gl_GetMaterialiv(obj,arg1,arg2)
1337
- VALUE obj,arg1,arg2;
1338
- {
1339
- GLenum face;
1340
- GLenum pname;
1341
- GLint params[4] = {0,0,0,0};
1342
- int size;
1343
- face = (GLenum)NUM2INT(arg1);
1344
- pname = (GLenum)NUM2INT(arg2);
1345
- switch(pname) {
1346
- case GL_AMBIENT:
1347
- case GL_DIFFUSE:
1348
- case GL_SPECULAR:
1349
- case GL_EMISSION:
1350
- size = 4;
1351
- break;
1352
- case GL_COLOR_INDEXES:
1353
- size = 3;
1354
- break;
1355
- case GL_SHININESS:
1356
- size = 1;
1357
- break;
1358
- default:
1359
- rb_raise(rb_eArgError, "unknown pname:%d",pname);
1360
- break; /* not reached */
1361
- }
1362
- glGetMaterialiv(face,pname,params);
1363
- RET_ARRAY_OR_SINGLE(size,INT2NUM,params)
1364
- }
1365
-
1366
- #define GLGETPIXELMAP_FUNC(_type_,_vartype_,_convert_) \
1367
- static VALUE \
1368
- gl_GetPixelMap##_type_##v(argc,argv,obj) \
1369
- int argc; \
1370
- VALUE *argv; \
1371
- VALUE obj; \
1372
- { \
1373
- GLenum map; \
1374
- GLenum map_size; \
1375
- GLint size = 0; \
1376
- _vartype_ *values; \
1377
- VALUE args[2]; \
1378
- switch (rb_scan_args(argc, argv, "11", &args[0], &args[1])) { \
1379
- default: \
1380
- case 1: \
1381
- if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING)) \
1382
- rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing"); \
1383
- \
1384
- map = (GLenum)NUM2INT(args[0]); \
1385
- switch(map) { \
1386
- case GL_PIXEL_MAP_I_TO_I: map_size=GL_PIXEL_MAP_I_TO_I_SIZE; break; \
1387
- case GL_PIXEL_MAP_S_TO_S: map_size=GL_PIXEL_MAP_S_TO_S_SIZE; break; \
1388
- case GL_PIXEL_MAP_I_TO_R: map_size=GL_PIXEL_MAP_I_TO_R_SIZE; break; \
1389
- case GL_PIXEL_MAP_I_TO_G: map_size=GL_PIXEL_MAP_I_TO_G_SIZE; break; \
1390
- case GL_PIXEL_MAP_I_TO_B: map_size=GL_PIXEL_MAP_I_TO_B_SIZE; break; \
1391
- case GL_PIXEL_MAP_I_TO_A: map_size=GL_PIXEL_MAP_I_TO_A_SIZE; break; \
1392
- case GL_PIXEL_MAP_R_TO_R: map_size=GL_PIXEL_MAP_R_TO_R_SIZE; break; \
1393
- case GL_PIXEL_MAP_G_TO_G: map_size=GL_PIXEL_MAP_G_TO_G_SIZE; break; \
1394
- case GL_PIXEL_MAP_B_TO_B: map_size=GL_PIXEL_MAP_B_TO_B_SIZE; break; \
1395
- case GL_PIXEL_MAP_A_TO_A: map_size=GL_PIXEL_MAP_A_TO_A_SIZE; break; \
1396
- default: \
1397
- rb_raise(rb_eArgError, "unknown map:%d",map); \
1398
- break; \
1399
- } \
1400
- glGetIntegerv(map_size,&size); \
1401
- CHECK_GLERROR \
1402
- values = ALLOC_N(_vartype_,size); \
1403
- glGetPixelMap##_type_##v(map,values); \
1404
- RET_ARRAY_OR_SINGLE_FREE(size,_convert_,values) \
1405
- break; \
1406
- case 2: \
1407
- if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING)) \
1408
- rb_raise(rb_eArgError, "Pixel pack buffer not bound"); \
1409
- \
1410
- map = (GLenum)NUM2INT(args[0]); \
1411
- glGetPixelMap##_type_##v(map,(GLvoid*)NUM2INT(args[1])); \
1412
- CHECK_GLERROR \
1413
- return Qnil; \
1414
- } \
1415
- }
1416
-
1417
- GLGETPIXELMAP_FUNC(f,GLfloat,rb_float_new)
1418
- GLGETPIXELMAP_FUNC(ui,GLuint,INT2NUM)
1419
- GLGETPIXELMAP_FUNC(us,GLushort,INT2NUM)
1420
- #undef GLGETPIXELMAP_FUNC
1421
-
1422
- static VALUE
1423
- gl_GetPolygonStipple(argc,argv,obj)
1424
- int argc;
1425
- VALUE *argv;
1426
- VALUE obj;
1427
- {
1428
- VALUE args[1];
1429
- GLubyte mask[128];
1430
- switch(rb_scan_args(argc, argv, "01", &args[0])) {
1431
- default:
1432
- case 0:
1433
- if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
1434
- rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
1435
- memset(mask, 0x0, sizeof(GLubyte)*128);
1436
- FORCE_PIXEL_STORE_MODE
1437
- glGetPolygonStipple(mask);
1438
- RESTORE_PIXEL_STORE_MODE
1439
- CHECK_GLERROR
1440
- return rb_str_new((const char*)mask, 128);
1441
- case 1:
1442
- if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
1443
- rb_raise(rb_eArgError, "Pixel pack buffer not bound");
1444
- glGetPolygonStipple((GLvoid *)NUM2INT(args[0]));
1445
- CHECK_GLERROR
1446
- return Qnil;
1447
- }
1448
- }
1449
-
1450
- static VALUE
1451
- gl_GetString(obj,arg1)
1452
- VALUE obj,arg1;
1453
- {
1454
- GLenum name;
1455
- const GLubyte *ret;
1456
- name = (GLenum)NUM2INT(arg1);
1457
- ret = glGetString(name);
1458
- CHECK_GLERROR
1459
- return rb_str_new2((const char*)ret);
1460
- }
1461
-
1462
- #define GETTEXENVFUNC(_name_,_type_) \
1463
- static VALUE \
1464
- gl_##_name_(obj,arg1,arg2) \
1465
- VALUE obj,arg1,arg2; \
1466
- { \
1467
- GLenum target; \
1468
- GLenum pname; \
1469
- _type_ params[4] = {0.0,0.0,0.0,0.0}; \
1470
- int size; \
1471
- target = (GLenum)NUM2INT(arg1); \
1472
- pname = (GLenum)NUM2INT(arg2); \
1473
- switch(pname) { \
1474
- case GL_TEXTURE_ENV_COLOR: \
1475
- case GL_TEXTURE_ENV_BIAS_SGIX: \
1476
- case GL_CULL_MODES_NV: \
1477
- case GL_OFFSET_TEXTURE_MATRIX_NV: \
1478
- size = 4; \
1479
- break; \
1480
- case GL_CONST_EYE_NV: \
1481
- size = 3; \
1482
- break; \
1483
- default: \
1484
- size = 1; \
1485
- break; \
1486
- } \
1487
- gl##_name_(target,pname,params); \
1488
- RET_ARRAY_OR_SINGLE(size,RETCONV_##_type_,params) \
1489
- }
1490
-
1491
- GETTEXENVFUNC(GetTexEnvfv,GLfloat)
1492
- GETTEXENVFUNC(GetTexEnviv,GLint)
1493
- #undef GETTEXENVFUNC
1494
-
1495
- #define GETTEXGENFUNC(_name_,_type_) \
1496
- static VALUE \
1497
- gl_##_name_(obj,arg1,arg2) \
1498
- VALUE obj,arg1,arg2; \
1499
- { \
1500
- GLenum coord; \
1501
- GLenum pname; \
1502
- _type_ params[4] = {0.0,0.0,0.0,0.0}; \
1503
- int size; \
1504
- coord = (GLenum)NUM2INT(arg1); \
1505
- pname = (GLenum)NUM2INT(arg2); \
1506
- switch(pname) { \
1507
- case GL_OBJECT_PLANE: \
1508
- case GL_EYE_PLANE: \
1509
- size = 4; \
1510
- break; \
1511
- default: \
1512
- size = 1; \
1513
- break; \
1514
- } \
1515
- gl##_name_(coord,pname,params); \
1516
- RET_ARRAY_OR_SINGLE(size,RETCONV_##_type_,params) \
1517
- }
1518
-
1519
- GETTEXGENFUNC(GetTexGendv,GLdouble)
1520
- GETTEXGENFUNC(GetTexGenfv,GLfloat)
1521
- GETTEXGENFUNC(GetTexGeniv,GLint)
1522
- #undef GETTEXGENFUNC
1523
-
1524
- static VALUE
1525
- gl_GetTexImage(argc,argv,obj)
1526
- int argc;
1527
- VALUE *argv;
1528
- VALUE obj;
1529
- {
1530
- GLenum tex;
1531
- GLint lod;
1532
- GLenum format;
1533
- GLenum type;
1534
- GLint width = 0;
1535
- GLint height = 0;
1536
- GLint depth = 0;
1537
- GLint size4d = 0;
1538
- GLint size;
1539
- VALUE pixels;
1540
- VALUE args[5];
1541
- int numargs;
1542
- numargs = rb_scan_args(argc, argv, "41", &args[0], &args[1], &args[2], &args[3], &args[4]);
1543
- tex = (GLenum)NUM2INT(args[0]);
1544
- lod = (GLint)NUM2INT(args[1]);
1545
- format = (GLenum)NUM2INT(args[2]);
1546
- type = (GLenum)NUM2INT(args[3]);
1547
- switch(numargs) {
1548
- default:
1549
- case 4:
1550
- if (CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
1551
- rb_raise(rb_eArgError, "Pixel pack buffer bound, but offset argument missing");
1552
-
1553
- size = 1;
1554
- switch(tex) {
1555
- case GL_TEXTURE_4D_SGIS:
1556
- glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_4DSIZE_SGIS,&size4d);
1557
- size *= size4d;
1558
- /* fall through */
1559
- case GL_TEXTURE_3D:
1560
- case GL_TEXTURE_1D_STACK_MESAX:
1561
- case GL_TEXTURE_2D_STACK_MESAX:
1562
- glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_DEPTH,&depth);
1563
- size *= depth;
1564
- /* fall through */
1565
- case GL_TEXTURE_2D:
1566
- case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
1567
- case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
1568
- case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
1569
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
1570
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
1571
- case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
1572
- case GL_TEXTURE_RECTANGLE_ARB:
1573
- case GL_DETAIL_TEXTURE_2D_SGIS:
1574
- glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_HEIGHT,&height);
1575
- size *= height;
1576
- /* fall through */
1577
- case GL_TEXTURE_1D:
1578
- glGetTexLevelParameteriv(tex,lod,GL_TEXTURE_WIDTH,&width);
1579
- size *= width;
1580
- break;
1581
- default:
1582
- rb_raise(rb_eArgError, "Target type not supported");
1583
- }
1584
- CHECK_GLERROR
1585
- pixels = allocate_buffer_with_string(GetDataSize(type,format,size));
1586
-
1587
- FORCE_PIXEL_STORE_MODE
1588
- glGetTexImage(tex,lod,format,type,(GLvoid*)RSTRING_PTR(pixels));
1589
- RESTORE_PIXEL_STORE_MODE
1590
- CHECK_GLERROR
1591
- return pixels;
1592
- break;
1593
- case 5:
1594
- if (!CheckBufferBinding(GL_PIXEL_PACK_BUFFER_BINDING))
1595
- rb_raise(rb_eArgError, "Pixel pack buffer not bound");
1596
-
1597
- FORCE_PIXEL_STORE_MODE
1598
- glGetTexImage(tex,lod,format,type,(GLvoid*)NUM2INT(args[4]));
1599
- RESTORE_PIXEL_STORE_MODE
1600
- CHECK_GLERROR
1601
- return Qnil;
1602
- }
1603
- }
1604
-
1605
- static VALUE
1606
- gl_GetTexParameterfv(obj,arg1,arg2)
1607
- VALUE obj,arg1,arg2;
1608
- {
1609
- GLenum target;
1610
- GLenum pname;
1611
- GLfloat params[4] = {0.0,0.0,0.0,0.0};
1612
- int size;
1613
- target = (GLenum)NUM2INT(arg1);
1614
- pname = (GLenum)NUM2INT(arg2);
1615
- switch(pname) {
1616
- case GL_TEXTURE_BORDER_COLOR:
1617
- case GL_TEXTURE_BORDER_VALUES_NV:
1618
- case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
1619
- case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
1620
- size = 4;
1621
- break;
1622
- default:
1623
- size = 1;
1624
- break;
1625
- }
1626
- glGetTexParameterfv(target,pname,params);
1627
- RET_ARRAY_OR_SINGLE(size,RETCONV_GLfloat,params)
1628
- }
1629
-
1630
- static VALUE
1631
- gl_GetTexParameteriv(obj,arg1,arg2)
1632
- VALUE obj,arg1,arg2;
1633
- {
1634
- GLenum target;
1635
- GLenum pname;
1636
- GLint params[4] = {0,0,0,0};
1637
- int size;
1638
- target = (GLenum)NUM2INT(arg1);
1639
- pname = (GLenum)NUM2INT(arg2);
1640
- switch(pname) {
1641
- case GL_TEXTURE_BORDER_COLOR:
1642
- case GL_TEXTURE_BORDER_VALUES_NV:
1643
- case GL_POST_TEXTURE_FILTER_BIAS_SGIX:
1644
- case GL_POST_TEXTURE_FILTER_SCALE_SGIX:
1645
- size = 4;
1646
- break;
1647
- default:
1648
- size = 1;
1649
- break;
1650
- }
1651
- glGetTexParameteriv(target,pname,params);
1652
- RET_ARRAY_OR_SINGLE_BOOL(size,cond_GLBOOL2RUBY,pname,params)
1653
- }
1654
-
1655
- static VALUE
1656
- gl_GetTexLevelParameterfv(obj,arg1,arg2,arg3)
1657
- VALUE obj,arg1,arg2,arg3;
1658
- {
1659
- GLenum target;
1660
- GLint level;
1661
- GLenum pname;
1662
- GLfloat params = 0.0;
1663
- target = (GLenum)NUM2INT(arg1);
1664
- level = (GLint)NUM2INT(arg2);
1665
- pname = (GLenum)NUM2INT(arg3);
1666
- glGetTexLevelParameterfv(target,level,pname,&params);
1667
- CHECK_GLERROR
1668
- return RETCONV_GLfloat(params);
1669
- }
1670
-
1671
- static VALUE
1672
- gl_GetTexLevelParameteriv(obj,arg1,arg2,arg3)
1673
- VALUE obj,arg1,arg2,arg3;
1674
- {
1675
- GLenum target;
1676
- GLint level;
1677
- GLenum pname;
1678
- GLint params = 0;
1679
- target = (GLenum)NUM2INT(arg1);
1680
- level = (GLint)NUM2INT(arg2);
1681
- pname = (GLenum)NUM2INT(arg3);
1682
- glGetTexLevelParameteriv(target,level,pname,&params);
1683
- CHECK_GLERROR
1684
- return cond_GLBOOL2RUBY(pname,params);
1685
- }
1686
-
1687
-
1688
- static VALUE
1689
- gl_LoadMatrixf(obj,arg1)
1690
- VALUE obj,arg1;
1691
- {
1692
- GLfloat m[4*4];
1693
- ary2cmatfloat(arg1, m, 4, 4);
1694
- glLoadMatrixf(m);
1695
- CHECK_GLERROR
1696
- return Qnil;
1697
- }
1698
-
1699
- static VALUE
1700
- gl_LoadMatrixd(obj,arg1)
1701
- VALUE obj,arg1;
1702
- {
1703
- GLdouble m[4*4];
1704
- ary2cmatdouble(arg1, m, 4, 4);
1705
- glLoadMatrixd(m);
1706
- CHECK_GLERROR
1707
- return Qnil;
1708
- }
1709
-
1710
- static VALUE
1711
- gl_MultMatrixf(obj,arg1)
1712
- VALUE obj,arg1;
1713
- {
1714
- GLfloat m[4*4];
1715
- ary2cmatfloat(arg1, m, 4, 4);
1716
- glMultMatrixf(m);
1717
- CHECK_GLERROR
1718
- return Qnil;
1719
- }
1720
-
1721
- static VALUE
1722
- gl_MultMatrixd(obj,arg1)
1723
- VALUE obj,arg1;
1724
- {
1725
- GLdouble m[4*4];
1726
- ary2cmatdouble(arg1, m, 4, 4);
1727
- glMultMatrixd(m);
1728
- CHECK_GLERROR
1729
- return Qnil;
1730
- }
1731
-
1732
-
1733
- static VALUE g_Vertex_ptr;
1734
- static VALUE g_Normal_ptr;
1735
- static VALUE g_Color_ptr;
1736
- static VALUE g_Index_ptr;
1737
- static VALUE g_TexCoord_ptr;
1738
- static VALUE g_EdgeFlag_ptr;
1739
- VALUE g_FogCoord_ptr; /* OpenGL 1.4 */
1740
- VALUE g_SecondaryColor_ptr; /* OpenGL 1.4 */
1741
- #define POINTER_FUNC(_func_) \
1742
- static VALUE \
1743
- gl_##_func_##Pointer(obj, arg1, arg2, arg3, arg4) \
1744
- VALUE obj, arg1, arg2, arg3, arg4; \
1745
- { \
1746
- GLint size; \
1747
- GLenum type; \
1748
- GLsizei stride; \
1749
- size = (GLint)NUM2INT(arg1); \
1750
- type = (GLenum)NUM2INT(arg2); \
1751
- stride = (GLsizei)NUM2UINT(arg3); \
1752
- if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) { \
1753
- g_##_func_##_ptr = arg4; \
1754
- gl##_func_##Pointer(size, type, stride, (const GLvoid*)NUM2INT(arg4)); \
1755
- } else { \
1756
- VALUE data; \
1757
- data = pack_array_or_pass_string(type,arg4); \
1758
- rb_str_freeze(data); \
1759
- g_##_func_##_ptr = data; \
1760
- gl##_func_##Pointer(size, type, stride, (const GLvoid*)RSTRING_PTR(data)); \
1761
- } \
1762
- CHECK_GLERROR \
1763
- return Qnil; \
1764
- }
1765
-
1766
- POINTER_FUNC(Vertex)
1767
- POINTER_FUNC(Color)
1768
- POINTER_FUNC(TexCoord)
1769
-
1770
- #undef POINTER_FUNC
1771
-
1772
- static VALUE
1773
- gl_DrawElements(obj,arg1,arg2,arg3,arg4)
1774
- VALUE obj,arg1,arg2,arg3,arg4;
1775
- {
1776
- GLenum mode;
1777
- GLsizei count;
1778
- GLenum type;
1779
- mode = (GLenum)NUM2INT(arg1);
1780
- count = (GLsizei)NUM2UINT(arg2);
1781
- type = (GLenum)NUM2INT(arg3);
1782
- if (CheckBufferBinding(GL_ELEMENT_ARRAY_BUFFER_BINDING)) {
1783
- glDrawElements(mode, count, type, (const GLvoid*)NUM2INT(arg4));
1784
- } else {
1785
- VALUE data;
1786
- data = pack_array_or_pass_string(type,arg4);
1787
- glDrawElements(mode, count, type, (const GLvoid*)RSTRING_PTR(data));
1788
- }
1789
- CHECK_GLERROR
1790
- return Qnil;
1791
- }
1792
-
1793
- static VALUE
1794
- gl_EdgeFlagPointer(obj,arg1,arg2)
1795
- VALUE obj,arg1,arg2;
1796
- {
1797
- GLsizei stride;
1798
- stride = (GLsizei)NUM2UINT(arg1);
1799
- if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
1800
- g_EdgeFlag_ptr = arg2;
1801
- glEdgeFlagPointer(stride, (const GLboolean*) NUM2INT(arg2));
1802
- } else {
1803
- VALUE data;
1804
- data = pack_array_or_pass_string(GL_UNSIGNED_BYTE,arg2);
1805
- rb_str_freeze(data);
1806
- g_EdgeFlag_ptr = data;
1807
- glEdgeFlagPointer(stride, (const GLboolean*)RSTRING_PTR(data));
1808
- }
1809
- CHECK_GLERROR
1810
- return Qnil;
1811
- }
1812
-
1813
- static VALUE
1814
- gl_GetPointerv(obj,arg1)
1815
- VALUE obj,arg1;
1816
- {
1817
- GLenum pname;
1818
- pname = (GLenum)NUM2INT(arg1);
1819
- switch (pname) {
1820
- case GL_VERTEX_ARRAY_POINTER:
1821
- return g_Vertex_ptr;
1822
- case GL_NORMAL_ARRAY_POINTER:
1823
- return g_Normal_ptr;
1824
- case GL_COLOR_ARRAY_POINTER:
1825
- return g_Color_ptr;
1826
- case GL_INDEX_ARRAY_POINTER:
1827
- return g_Index_ptr;
1828
- case GL_TEXTURE_COORD_ARRAY_POINTER:
1829
- return g_TexCoord_ptr;
1830
- case GL_EDGE_FLAG_ARRAY_POINTER:
1831
- return g_EdgeFlag_ptr;
1832
- case GL_FOG_COORD_ARRAY_POINTER:
1833
- return g_FogCoord_ptr;
1834
- case GL_SECONDARY_COLOR_ARRAY_POINTER:
1835
- return g_SecondaryColor_ptr;
1836
- case GL_FEEDBACK_BUFFER_POINTER:
1837
- return g_current_feed_buffer;
1838
- case GL_SELECTION_BUFFER_POINTER:
1839
- return g_current_sel_buffer;
1840
- default:
1841
- rb_raise(rb_eArgError, "Invalid pname %d",pname);
1842
- break; /* not reached */
1843
- }
1844
- return Qnil;
1845
- }
1846
-
1847
- static VALUE
1848
- gl_IndexPointer(obj,arg1,arg2,arg3)
1849
- VALUE obj,arg1,arg2,arg3;
1850
- {
1851
- GLenum type;
1852
- GLsizei stride;
1853
- type = (GLenum)NUM2INT(arg1);
1854
- stride = (GLsizei)NUM2UINT(arg2);
1855
- if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
1856
- g_Index_ptr = arg3;
1857
- glIndexPointer(type, stride, (const GLvoid*)NUM2INT(arg3));
1858
- } else {
1859
- VALUE data;
1860
- data = pack_array_or_pass_string(type,arg3);
1861
- g_Index_ptr = data;
1862
- glIndexPointer(type, stride, (const GLvoid*)RSTRING_PTR(data));
1863
- }
1864
- CHECK_GLERROR
1865
- return Qnil;
1866
- }
1867
-
1868
- static VALUE
1869
- gl_InterleavedArrays(obj,arg1,arg2,arg3)
1870
- VALUE obj,arg1,arg2,arg3;
1871
- {
1872
- GLenum format;
1873
- GLsizei stride;
1874
- VALUE data;
1875
- format = (GLenum)NUM2INT(arg1);
1876
- stride = (GLsizei)NUM2UINT(arg2);
1877
- /* FIXME: add support for GL_C4UB_V2F,GL_C4UB_V3F, GL_T2F_C4UB_V3 */
1878
- data = pack_array_or_pass_string(GL_FLOAT,arg3);
1879
- rb_str_freeze(data);
1880
- glInterleavedArrays(format, stride, (const GLvoid*)RSTRING_PTR(data));
1881
- CHECK_GLERROR
1882
- return Qnil;
1883
- }
1884
-
1885
- static VALUE
1886
- gl_NormalPointer(obj,arg1,arg2,arg3)
1887
- VALUE obj,arg1,arg2,arg3;
1888
- {
1889
- GLenum type;
1890
- GLsizei stride;
1891
- type = (GLenum)NUM2INT(arg1);
1892
- stride = (GLsizei)NUM2UINT(arg2);
1893
- if (CheckBufferBinding(GL_ARRAY_BUFFER_BINDING)) {
1894
- g_Normal_ptr = arg3;
1895
- glNormalPointer(type, stride, (const GLvoid*)NUM2INT(arg3));
1896
- } else {
1897
- VALUE data;
1898
- data = pack_array_or_pass_string(type,arg3);
1899
- rb_str_freeze(data);
1900
- g_Normal_ptr = data;
1901
- glNormalPointer(type, stride, (const GLvoid*)RSTRING_PTR(data));
1902
- }
1903
- CHECK_GLERROR
1904
- return Qnil;
1905
- }
1906
-
1907
-
1908
- static VALUE
1909
- gl_TexSubImage1D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7)
1910
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7;
1911
- {
1912
- GLenum target;
1913
- GLint level;
1914
- GLint xoffset;
1915
- GLsizei width;
1916
- GLenum format;
1917
- GLenum type;
1918
- VALUE data;
1919
- target = (GLenum)NUM2INT(arg1);
1920
- level = (GLint)NUM2INT(arg2);
1921
- xoffset = (GLint)NUM2INT(arg3);
1922
- width = (GLsizei)NUM2UINT(arg4);
1923
- format = (GLenum)NUM2INT(arg5);
1924
- type = (GLenum)NUM2INT(arg6);
1925
-
1926
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
1927
- glTexSubImage1D(target,level,xoffset,width,format,type,(GLvoid *)NUM2INT(arg7));
1928
- CHECK_GLERROR
1929
- return Qnil;
1930
- }
1931
-
1932
- data = pack_array_or_pass_string(type,arg7);
1933
- CheckDataSize(type,format,width,data);
1934
-
1935
- glTexSubImage1D(target,level,xoffset,width,format,type,RSTRING_PTR(data));
1936
- CHECK_GLERROR
1937
- return Qnil;
1938
- }
1939
-
1940
- static VALUE
1941
- gl_TexSubImage2D(obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)
1942
- VALUE obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9;
1943
- {
1944
- GLenum target;
1945
- GLint level;
1946
- GLint xoffset;
1947
- GLint yoffset;
1948
- GLsizei width;
1949
- GLsizei height;
1950
- GLenum format;
1951
- GLenum type;
1952
- VALUE data;
1953
- target = (GLenum)NUM2INT(arg1);
1954
- level = (GLint)NUM2INT(arg2);
1955
- xoffset = (GLint)NUM2INT(arg3);
1956
- yoffset = (GLint)NUM2INT(arg4);
1957
- width = (GLsizei)NUM2UINT(arg5);
1958
- height = (GLsizei)NUM2UINT(arg6);
1959
- format = (GLenum)NUM2INT(arg7);
1960
- type = (GLenum)NUM2INT(arg8);
1961
-
1962
- if (CheckBufferBinding(GL_PIXEL_UNPACK_BUFFER_BINDING)) {
1963
- glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,(GLvoid *)NUM2INT(arg9));
1964
- CHECK_GLERROR
1965
- return Qnil;
1966
- }
1967
-
1968
- data = pack_array_or_pass_string(type,arg9);
1969
- CheckDataSize(type,format,width*height,data);
1970
-
1971
- glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,RSTRING_PTR(data));
1972
- CHECK_GLERROR
1973
- return Qnil;
1974
- }
1975
-
1976
- static VALUE
1977
- gl_AreTexturesResident(obj,arg1)
1978
- VALUE obj,arg1;
1979
- {
1980
- GLuint *textures;
1981
- GLboolean *residences;
1982
- GLsizei size;
1983
- GLboolean r;
1984
- VALUE retary;
1985
- VALUE ary;
1986
- int i;
1987
- ary = rb_Array(arg1);
1988
- size = RARRAY_LEN(ary);
1989
- textures = ALLOC_N(GLuint,size);
1990
- residences = ALLOC_N(GLboolean,size);
1991
- ary2cuint(ary,textures,size);
1992
- r = glAreTexturesResident(size,textures,residences);
1993
- retary = rb_ary_new2(size);
1994
- if (r==GL_TRUE) { /* all are resident */
1995
- for(i=0;i<size;i++)
1996
- rb_ary_push(retary, GLBOOL2RUBY(GL_TRUE));
1997
- } else {
1998
- for(i=0;i<size;i++)
1999
- rb_ary_push(retary, GLBOOL2RUBY(residences[i]));
2000
- }
2001
- xfree(textures);
2002
- xfree(residences);
2003
- CHECK_GLERROR
2004
- return retary;
2005
- }
2006
-
2007
- GL_FUNC_GENOBJECTS(GenTextures)
2008
- GL_FUNC_DELETEOBJECTS(DeleteTextures)
2009
-
2010
- static VALUE
2011
- gl_PrioritizeTextures(obj,arg1,arg2)
2012
- VALUE obj,arg1,arg2;
2013
- {
2014
- GLuint *textures;
2015
- GLclampf *priorities;
2016
- GLsizei size;
2017
- Check_Type(arg1,T_ARRAY);
2018
- Check_Type(arg2,T_ARRAY);
2019
- if ((size = RARRAY_LEN(arg1)) != RARRAY_LEN(arg2))
2020
- rb_raise(rb_eArgError, "passed arrays must have the same length");
2021
- textures = ALLOC_N(GLuint,size);
2022
- priorities = ALLOC_N(GLclampf,size);
2023
- ary2cuint(arg1,textures,size);
2024
- ary2cflt(arg2,priorities,size);
2025
- glPrioritizeTextures(size,textures,priorities);
2026
- xfree(textures);
2027
- xfree(priorities);
2028
- CHECK_GLERROR
2029
- return Qnil;
2030
- }
2031
-
2032
- static VALUE
2033
- gl_Indexubv(obj,arg1)
2034
- VALUE obj,arg1;
2035
- {
2036
- GLubyte c[1] = {0};
2037
- Check_Type(arg1,T_ARRAY);
2038
- ary2cubyte(arg1,c,1);
2039
- glIndexubv(c);
2040
- CHECK_GLERROR
2041
- return Qnil;
2042
- }
2043
-
2044
-
2045
- /* additional functions */
2046
-
2047
- #define GLCOLOR_VFUNC(_type_) \
2048
- static VALUE \
2049
- gl_Color##_type_##v(argc,argv,obj) \
2050
- int argc; \
2051
- VALUE *argv; \
2052
- VALUE obj; \
2053
- { \
2054
- int num; \
2055
- VALUE args[4]; \
2056
- RArray *ary; \
2057
- switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
2058
- case 1: \
2059
- if (TYPE(args[0]) == T_ARRAY) { \
2060
- ary = RARRAY(args[0]); \
2061
- switch (RARRAY_LEN(ary)) { \
2062
- case 3: \
2063
- gl_Color3##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2]); \
2064
- break; \
2065
- case 4: \
2066
- gl_Color4##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2],RARRAY_PTR(ary)[3]); \
2067
- break; \
2068
- default: \
2069
- rb_raise(rb_eArgError, "array length:%li", RARRAY_LEN(ary)); \
2070
- } \
2071
- } \
2072
- else \
2073
- Check_Type(args[0],T_ARRAY); /* force exception */ \
2074
- break; \
2075
- case 3: \
2076
- gl_Color3##_type_(obj,args[0], args[1], args[2]); \
2077
- break; \
2078
- case 4: \
2079
- gl_Color4##_type_(obj,args[0], args[1], args[2], args[3]); \
2080
- break; \
2081
- default: \
2082
- rb_raise(rb_eArgError, "arg length:%d", num); \
2083
- } \
2084
- return Qnil; \
2085
- }
2086
-
2087
- GLCOLOR_VFUNC(b)
2088
- GLCOLOR_VFUNC(d)
2089
- GLCOLOR_VFUNC(f)
2090
- GLCOLOR_VFUNC(i)
2091
- GLCOLOR_VFUNC(s)
2092
- GLCOLOR_VFUNC(ub)
2093
- GLCOLOR_VFUNC(ui)
2094
- GLCOLOR_VFUNC(us)
2095
- #undef GLCOLOR_VFUNC
2096
-
2097
- #define GLNORMAL_VFUNC(_type_) \
2098
- static VALUE \
2099
- gl_Normal##_type_##v(argc,argv,obj) \
2100
- int argc; \
2101
- VALUE *argv; \
2102
- VALUE obj; \
2103
- { \
2104
- int num; \
2105
- VALUE args[3]; \
2106
- RArray* ary; \
2107
- switch (num = rb_scan_args(argc, argv, "12", &args[0], &args[1], &args[2])) { \
2108
- case 1: \
2109
- if (TYPE(args[0]) == T_ARRAY) { \
2110
- ary = RARRAY(args[0]); \
2111
- switch (RARRAY_LEN(ary)) { \
2112
- case 3: \
2113
- gl_Normal3##_type_(obj,RARRAY_PTR(ary)[0], RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2]); \
2114
- break; \
2115
- default: \
2116
- rb_raise(rb_eArgError, "array length:%li", RARRAY_LEN(ary)); \
2117
- } \
2118
- } \
2119
- else \
2120
- Check_Type(args[0],T_ARRAY); /* force exception */ \
2121
- break; \
2122
- case 3: \
2123
- gl_Normal3##_type_(obj,args[0], args[1], args[2]); \
2124
- break; \
2125
- default: \
2126
- rb_raise(rb_eArgError, "arg length:%d",num); \
2127
- } \
2128
- return Qnil; \
2129
- }
2130
-
2131
- GLNORMAL_VFUNC(b)
2132
- GLNORMAL_VFUNC(d)
2133
- GLNORMAL_VFUNC(f)
2134
- GLNORMAL_VFUNC(i)
2135
- GLNORMAL_VFUNC(s)
2136
- #undef GLNORMAL_VFUNC
2137
-
2138
- #define GLRASTERPOS_VFUNC(_type_) \
2139
- static VALUE \
2140
- gl_RasterPos##_type_##v(argc,argv,obj) \
2141
- int argc; \
2142
- VALUE *argv; \
2143
- VALUE obj; \
2144
- { \
2145
- int num; \
2146
- VALUE args[4]; \
2147
- RArray *ary; \
2148
- switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
2149
- case 1: \
2150
- if (TYPE(args[0]) == T_ARRAY) { \
2151
- ary = RARRAY(args[0]); \
2152
- switch (RARRAY_LEN(ary)) { \
2153
- case 2: \
2154
- gl_RasterPos2##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1]); \
2155
- break; \
2156
- case 3: \
2157
- gl_RasterPos3##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2]); \
2158
- break; \
2159
- case 4: \
2160
- gl_RasterPos4##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2],RARRAY_PTR(ary)[3]); \
2161
- break; \
2162
- default: \
2163
- rb_raise(rb_eArgError, "array length:%d", num); \
2164
- } \
2165
- } \
2166
- else \
2167
- Check_Type(args[0],T_ARRAY); /* force exception */ \
2168
- break; \
2169
- case 2: \
2170
- gl_RasterPos2##_type_(obj,args[0], args[1]); \
2171
- break; \
2172
- case 3: \
2173
- gl_RasterPos3##_type_(obj,args[0], args[1], args[2]); \
2174
- break; \
2175
- case 4: \
2176
- gl_RasterPos4##_type_(obj,args[0], args[1], args[2], args[3]); \
2177
- break; \
2178
- default: \
2179
- rb_raise(rb_eArgError, "too many arguments"); \
2180
- } \
2181
- return Qnil; \
2182
- }
2183
-
2184
- GLRASTERPOS_VFUNC(d)
2185
- GLRASTERPOS_VFUNC(f)
2186
- GLRASTERPOS_VFUNC(i)
2187
- GLRASTERPOS_VFUNC(s)
2188
- #undef GLRASTERPOS_VFUNC
2189
-
2190
- #define GLRECT_VFUNC(_type_) \
2191
- static VALUE \
2192
- gl_Rect##_type_##v(argc,argv,obj) \
2193
- int argc; \
2194
- VALUE *argv; \
2195
- VALUE obj; \
2196
- { \
2197
- int num; \
2198
- VALUE args[4]; \
2199
- RArray *ary,*ary2; \
2200
- switch (num = rb_scan_args(argc, argv, "22", &args[0], &args[1], &args[2], &args[3])) { \
2201
- case 2: \
2202
- if (TYPE(args[0]) == T_ARRAY && TYPE(args[1]) == T_ARRAY) { \
2203
- ary = RARRAY(args[0]); \
2204
- ary2 = RARRAY(args[1]); \
2205
- switch (RARRAY_LEN(ary)) { \
2206
- case 2: \
2207
- gl_Rect##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary2)[0],RARRAY_PTR(ary2)[1]); \
2208
- break; \
2209
- default: \
2210
- rb_raise(rb_eArgError, "array length:%li", RARRAY_LEN(ary)); \
2211
- } \
2212
- } \
2213
- else \
2214
- Check_Type(args[0],T_ARRAY); /* force exception */ \
2215
- break; \
2216
- case 4: \
2217
- gl_Rect##_type_(obj,args[0], args[1], args[2], args[3]); \
2218
- break; \
2219
- default: \
2220
- rb_raise(rb_eArgError, "arg length:%d", num); \
2221
- } \
2222
- return Qnil; \
2223
- }
2224
-
2225
- GLRECT_VFUNC(d)
2226
- GLRECT_VFUNC(f)
2227
- GLRECT_VFUNC(i)
2228
- GLRECT_VFUNC(s)
2229
- #undef GLRECT_VFUNC
2230
-
2231
- #define GLTEXCOORD_VFUNC(_type_) \
2232
- static VALUE \
2233
- gl_TexCoord##_type_##v(argc,argv,obj) \
2234
- int argc; \
2235
- VALUE *argv; \
2236
- VALUE obj; \
2237
- { \
2238
- int num; \
2239
- VALUE args[4]; \
2240
- RArray *ary; \
2241
- switch (num = rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
2242
- case 1: \
2243
- if (TYPE(args[0]) == T_ARRAY) { \
2244
- ary = RARRAY(args[0]); \
2245
- switch (RARRAY_LEN(ary)) { \
2246
- case 1: \
2247
- gl_TexCoord1##_type_(obj,RARRAY_PTR(ary)[0]); \
2248
- break; \
2249
- case 2: \
2250
- gl_TexCoord2##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1]); \
2251
- break; \
2252
- case 3: \
2253
- gl_TexCoord3##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2]); \
2254
- break; \
2255
- case 4: \
2256
- gl_TexCoord4##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2],RARRAY_PTR(ary)[3]); \
2257
- break; \
2258
- default: \
2259
- rb_raise(rb_eArgError, "array length:%d", num); \
2260
- } \
2261
- } \
2262
- else \
2263
- gl_TexCoord1##_type_(obj,args[0]); \
2264
- break; \
2265
- case 2: \
2266
- gl_TexCoord2##_type_(obj,args[0], args[1]); \
2267
- break; \
2268
- case 3: \
2269
- gl_TexCoord3##_type_(obj,args[0], args[1], args[2]); \
2270
- break; \
2271
- case 4: \
2272
- gl_TexCoord4##_type_(obj,args[0], args[1], args[2], args[3]); \
2273
- break; \
2274
- default: \
2275
- rb_raise(rb_eArgError, "too many arguments"); \
2276
- break; \
2277
- } \
2278
- return Qnil; \
2279
- }
2280
-
2281
- GLTEXCOORD_VFUNC(d)
2282
- GLTEXCOORD_VFUNC(f)
2283
- GLTEXCOORD_VFUNC(i)
2284
- GLTEXCOORD_VFUNC(s)
2285
- #undef GLTEXCOORD_VFUNC
2286
-
2287
- #define GLVERTEX_VFUNC(_type_) \
2288
- static VALUE \
2289
- gl_Vertex##_type_##v(argc,argv,obj) \
2290
- int argc; \
2291
- VALUE *argv; \
2292
- VALUE obj; \
2293
- { \
2294
- VALUE args[4]; \
2295
- RArray *ary; \
2296
- switch (rb_scan_args(argc, argv, "13", &args[0], &args[1], &args[2], &args[3])) { \
2297
- case 1: \
2298
- if (TYPE(args[0]) == T_ARRAY) { \
2299
- ary = RARRAY(args[0]); \
2300
- switch (RARRAY_LEN(ary)) { \
2301
- case 2: \
2302
- gl_Vertex2##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1]); \
2303
- break; \
2304
- case 3: \
2305
- gl_Vertex3##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2]); \
2306
- break; \
2307
- case 4: \
2308
- gl_Vertex4##_type_(obj,RARRAY_PTR(ary)[0],RARRAY_PTR(ary)[1],RARRAY_PTR(ary)[2],RARRAY_PTR(ary)[3]); \
2309
- break; \
2310
- default: \
2311
- rb_raise(rb_eRuntimeError, "glVertex vertex num error!:%li", RARRAY_LEN(ary)); \
2312
- } \
2313
- } \
2314
- else \
2315
- Check_Type(args[0],T_ARRAY); /* force exception */ \
2316
- break; \
2317
- case 2: \
2318
- gl_Vertex2##_type_(obj,args[0], args[1]); \
2319
- break; \
2320
- case 3: \
2321
- gl_Vertex3##_type_(obj,args[0], args[1], args[2]); \
2322
- break; \
2323
- case 4: \
2324
- gl_Vertex4##_type_(obj,args[0], args[1], args[2], args[3]); \
2325
- break; \
2326
- default: \
2327
- rb_raise(rb_eArgError, "too many arguments"); \
2328
- break; \
2329
- } \
2330
- return Qnil; \
2331
- }
2332
-
2333
- GLVERTEX_VFUNC(d)
2334
- GLVERTEX_VFUNC(f)
2335
- GLVERTEX_VFUNC(i)
2336
- GLVERTEX_VFUNC(s)
2337
- #undef GLVERTEX_VFUNC
2338
-
2339
- /* */
2340
-
2341
- static VALUE
2342
- gl_LightModel(obj,arg1,arg2)
2343
- VALUE obj,arg1,arg2;
2344
- {
2345
- if (TYPE(arg2) == T_ARRAY)
2346
- gl_LightModelfv(obj,arg1,arg2);
2347
- else
2348
- gl_LightModelf(obj,arg1,arg2);
2349
-
2350
- return Qnil;
2351
- }
2352
-
2353
- static VALUE
2354
- gl_Material(obj,arg1,arg2,arg3)
2355
- VALUE obj,arg1,arg2,arg3;
2356
- {
2357
- if (TYPE(arg3) == T_ARRAY)
2358
- gl_Materialfv(obj,arg1,arg2,arg3);
2359
- else
2360
- gl_Materialf(obj,arg1,arg2,arg3);
2361
-
2362
- return Qnil;
2363
- }
2364
-
2365
- static VALUE
2366
- gl_Fog(obj,arg1,arg2)
2367
- VALUE obj,arg1,arg2;
2368
- {
2369
- if (TYPE(arg2) == T_ARRAY)
2370
- gl_Fogfv(obj,arg1,arg2);
2371
- else
2372
- gl_Fogf(obj,arg1,arg2);
2373
-
2374
- return Qnil;
2375
- }
2376
-
2377
- static VALUE
2378
- gl_Light(obj,arg1,arg2,arg3)
2379
- VALUE obj,arg1,arg2,arg3;
2380
- {
2381
- if (TYPE(arg3) == T_ARRAY)
2382
- gl_Lightfv(obj,arg1,arg2,arg3);
2383
- else
2384
- gl_Lightf(obj,arg1,arg2,arg3);
2385
-
2386
- return Qnil;
2387
- }
2388
-
2389
- static VALUE
2390
- gl_TexParameter(obj,arg1,arg2,arg3)
2391
- VALUE obj,arg1,arg2,arg3;
2392
- {
2393
- if (TYPE(arg3) == T_ARRAY)
2394
- gl_TexParameterfv(obj,arg1,arg2,arg3);
2395
- else
2396
- gl_TexParameterf(obj,arg1,arg2,arg3);
2397
-
2398
- return Qnil;
2399
- }
2400
-
2401
- static VALUE
2402
- gl_TexEnv(obj,arg1,arg2,arg3)
2403
- VALUE obj,arg1,arg2,arg3;
2404
- {
2405
- if (TYPE(arg3) == T_ARRAY)
2406
- gl_TexEnvfv(obj,arg1,arg2,arg3);
2407
- else
2408
- gl_TexEnvf(obj,arg1,arg2,arg3);
2409
-
2410
- return Qnil;
2411
- }
2412
-
2413
- static VALUE
2414
- gl_TexGen(obj,arg1,arg2,arg3)
2415
- VALUE obj,arg1,arg2,arg3;
2416
- {
2417
- if (TYPE(arg3) == T_ARRAY)
2418
- gl_TexGenfv(obj,arg1,arg2,arg3);
2419
- else
2420
- gl_TexGenf(obj,arg1,arg2,arg3);
2421
-
2422
- return Qnil;
2423
- }
2424
-
2425
- /* init */
2426
- void gl_init_functions_1_0__1_1(VALUE module)
2427
- {
2428
- g_FogCoord_ptr = 0; /* for use in gl-1.4.c */
2429
- g_SecondaryColor_ptr = 0; /* for use in gl-1.4.c */
2430
-
2431
- /* OpenGL 1.0 functions */
2432
- rb_define_module_function(module, "glNewList", gl_NewList, 2);
2433
- rb_define_module_function(module, "glEndList", gl_EndList, 0);
2434
- rb_define_module_function(module, "glCallList", gl_CallList, 1);
2435
- rb_define_module_function(module, "glCallLists", gl_CallLists, 2);
2436
- rb_define_module_function(module, "glDeleteLists", gl_DeleteLists, 2);
2437
- rb_define_module_function(module, "glGenLists", gl_GenLists, 1);
2438
- rb_define_module_function(module, "glListBase", gl_ListBase, 1);
2439
- rb_define_module_function(module, "glBegin", gl_Begin, 1);
2440
- rb_define_module_function(module, "glBitmap", gl_Bitmap, 7);
2441
- rb_define_module_function(module, "glColor3b", gl_Color3b, 3);
2442
- rb_define_module_function(module, "glColor3d", gl_Color3d, 3);
2443
- rb_define_module_function(module, "glColor3f", gl_Color3f, 3);
2444
- rb_define_module_function(module, "glColor3i", gl_Color3i, 3);
2445
- rb_define_module_function(module, "glColor3s", gl_Color3s, 3);
2446
- rb_define_module_function(module, "glColor3ub", gl_Color3ub, 3);
2447
- rb_define_module_function(module, "glColor3ui", gl_Color3ui, 3);
2448
- rb_define_module_function(module, "glColor3us", gl_Color3us, 3);
2449
- rb_define_module_function(module, "glColor4b", gl_Color4b, 4);
2450
- rb_define_module_function(module, "glColor4d", gl_Color4d, 4);
2451
- rb_define_module_function(module, "glColor4f", gl_Color4f, 4);
2452
- rb_define_module_function(module, "glColor4i", gl_Color4i, 4);
2453
- rb_define_module_function(module, "glColor4s", gl_Color4s, 4);
2454
- rb_define_module_function(module, "glColor4ub", gl_Color4ub, 4);
2455
- rb_define_module_function(module, "glColor4ui", gl_Color4ui, 4);
2456
- rb_define_module_function(module, "glColor4us", gl_Color4us, 4);
2457
- rb_define_module_function(module, "glEdgeFlag", gl_EdgeFlag, 1);
2458
- rb_define_module_function(module, "glEdgeFlagv", gl_EdgeFlagv, 1);
2459
- rb_define_module_function(module, "glEnd", gl_End, 0);
2460
- rb_define_module_function(module, "glIndexd", gl_Indexd, 1);
2461
- rb_define_module_function(module, "glIndexdv", gl_Indexdv, 1);
2462
- rb_define_module_function(module, "glIndexf", gl_Indexf, 1);
2463
- rb_define_module_function(module, "glIndexfv", gl_Indexfv, 1);
2464
- rb_define_module_function(module, "glIndexi", gl_Indexi, 1);
2465
- rb_define_module_function(module, "glIndexiv", gl_Indexiv, 1);
2466
- rb_define_module_function(module, "glIndexs", gl_Indexs, 1);
2467
- rb_define_module_function(module, "glIndexsv", gl_Indexsv, 1);
2468
- rb_define_module_function(module, "glNormal3b", gl_Normal3b, 3);
2469
- rb_define_module_function(module, "glNormal3d", gl_Normal3d, 3);
2470
- rb_define_module_function(module, "glNormal3f", gl_Normal3f, 3);
2471
- rb_define_module_function(module, "glNormal3i", gl_Normal3i, 3);
2472
- rb_define_module_function(module, "glNormal3s", gl_Normal3s, 3);
2473
- rb_define_module_function(module, "glRasterPos2d", gl_RasterPos2d, 2);
2474
- rb_define_module_function(module, "glRasterPos2f", gl_RasterPos2f, 2);
2475
- rb_define_module_function(module, "glRasterPos2i", gl_RasterPos2i, 2);
2476
- rb_define_module_function(module, "glRasterPos2s", gl_RasterPos2s, 2);
2477
- rb_define_module_function(module, "glRasterPos3d", gl_RasterPos3d, 3);
2478
- rb_define_module_function(module, "glRasterPos3f", gl_RasterPos3f, 3);
2479
- rb_define_module_function(module, "glRasterPos3i", gl_RasterPos3i, 3);
2480
- rb_define_module_function(module, "glRasterPos3s", gl_RasterPos3s, 3);
2481
- rb_define_module_function(module, "glRasterPos4d", gl_RasterPos4d, 4);
2482
- rb_define_module_function(module, "glRasterPos4f", gl_RasterPos4f, 4);
2483
- rb_define_module_function(module, "glRasterPos4i", gl_RasterPos4i, 4);
2484
- rb_define_module_function(module, "glRasterPos4s", gl_RasterPos4s, 4);
2485
- rb_define_module_function(module, "glRectd", gl_Rectd, 4);
2486
- rb_define_module_function(module, "glRectf", gl_Rectf, 4);
2487
- rb_define_module_function(module, "glRecti", gl_Recti, 4);
2488
- rb_define_module_function(module, "glRects", gl_Rects, 4);
2489
- rb_define_module_function(module, "glTexCoord1d", gl_TexCoord1d, 1);
2490
- rb_define_module_function(module, "glTexCoord1f", gl_TexCoord1f, 1);
2491
- rb_define_module_function(module, "glTexCoord1i", gl_TexCoord1i, 1);
2492
- rb_define_module_function(module, "glTexCoord1s", gl_TexCoord1s, 1);
2493
- rb_define_module_function(module, "glTexCoord2d", gl_TexCoord2d, 2);
2494
- rb_define_module_function(module, "glTexCoord2f", gl_TexCoord2f, 2);
2495
- rb_define_module_function(module, "glTexCoord2i", gl_TexCoord2i, 2);
2496
- rb_define_module_function(module, "glTexCoord2s", gl_TexCoord2s, 2);
2497
- rb_define_module_function(module, "glTexCoord3d", gl_TexCoord3d, 3);
2498
- rb_define_module_function(module, "glTexCoord3f", gl_TexCoord3f, 3);
2499
- rb_define_module_function(module, "glTexCoord3i", gl_TexCoord3i, 3);
2500
- rb_define_module_function(module, "glTexCoord3s", gl_TexCoord3s, 3);
2501
- rb_define_module_function(module, "glTexCoord4d", gl_TexCoord4d, 4);
2502
- rb_define_module_function(module, "glTexCoord4f", gl_TexCoord4f, 4);
2503
- rb_define_module_function(module, "glTexCoord4i", gl_TexCoord4i, 4);
2504
- rb_define_module_function(module, "glTexCoord4s", gl_TexCoord4s, 4);
2505
- rb_define_module_function(module, "glVertex2d", gl_Vertex2d, 2);
2506
- rb_define_module_function(module, "glVertex2f", gl_Vertex2f, 2);
2507
- rb_define_module_function(module, "glVertex2i", gl_Vertex2i, 2);
2508
- rb_define_module_function(module, "glVertex2s", gl_Vertex2s, 2);
2509
- rb_define_module_function(module, "glVertex3d", gl_Vertex3d, 3);
2510
- rb_define_module_function(module, "glVertex3f", gl_Vertex3f, 3);
2511
- rb_define_module_function(module, "glVertex3i", gl_Vertex3i, 3);
2512
- rb_define_module_function(module, "glVertex3s", gl_Vertex3s, 3);
2513
- rb_define_module_function(module, "glVertex4d", gl_Vertex4d, 4);
2514
- rb_define_module_function(module, "glVertex4f", gl_Vertex4f, 4);
2515
- rb_define_module_function(module, "glVertex4i", gl_Vertex4i, 4);
2516
- rb_define_module_function(module, "glVertex4s", gl_Vertex4s, 4);
2517
- rb_define_module_function(module, "glClipPlane", gl_ClipPlane, 2);
2518
- rb_define_module_function(module, "glColorMaterial", gl_ColorMaterial, 2);
2519
- rb_define_module_function(module, "glCullFace", gl_CullFace, 1);
2520
- rb_define_module_function(module, "glFogf", gl_Fogf, 2);
2521
- rb_define_module_function(module, "glFogfv", gl_Fogfv, 2);
2522
- rb_define_module_function(module, "glFogi", gl_Fogi, 2);
2523
- rb_define_module_function(module, "glFogiv", gl_Fogiv, 2);
2524
- rb_define_module_function(module, "glFrontFace", gl_FrontFace, 1);
2525
- rb_define_module_function(module, "glHint", gl_Hint, 2);
2526
- rb_define_module_function(module, "glLightf", gl_Lightf, 3);
2527
- rb_define_module_function(module, "glLightfv", gl_Lightfv, 3);
2528
- rb_define_module_function(module, "glLighti", gl_Lighti, 3);
2529
- rb_define_module_function(module, "glLightiv", gl_Lightiv, 3);
2530
- rb_define_module_function(module, "glLightModelf", gl_LightModelf, 2);
2531
- rb_define_module_function(module, "glLightModelfv", gl_LightModelfv, 2);
2532
- rb_define_module_function(module, "glLightModeli", gl_LightModeli, 2);
2533
- rb_define_module_function(module, "glLightModeliv", gl_LightModeliv, 2);
2534
- rb_define_module_function(module, "glLineStipple", gl_LineStipple, 2);
2535
- rb_define_module_function(module, "glLineWidth", gl_LineWidth, 1);
2536
- rb_define_module_function(module, "glMaterialf", gl_Materialf, 3);
2537
- rb_define_module_function(module, "glMaterialfv", gl_Materialfv, 3);
2538
- rb_define_module_function(module, "glMateriali", gl_Materiali, 3);
2539
- rb_define_module_function(module, "glMaterialiv", gl_Materialiv, 3);
2540
- rb_define_module_function(module, "glPointSize", gl_PointSize, 1);
2541
- rb_define_module_function(module, "glPolygonMode", gl_PolygonMode, 2);
2542
- rb_define_module_function(module, "glPolygonStipple", gl_PolygonStipple, 1);
2543
- rb_define_module_function(module, "glScissor", gl_Scissor, 4);
2544
- rb_define_module_function(module, "glShadeModel", gl_ShadeModel, 1);
2545
- rb_define_module_function(module, "glTexParameterf", gl_TexParameterf, 3);
2546
- rb_define_module_function(module, "glTexParameterfv", gl_TexParameterfv, 3);
2547
- rb_define_module_function(module, "glTexParameteri", gl_TexParameteri, 3);
2548
- rb_define_module_function(module, "glTexParameteriv", gl_TexParameteriv, 3);
2549
- rb_define_module_function(module, "glTexImage1D", gl_TexImage1D, 8);
2550
- rb_define_module_function(module, "glTexImage2D", gl_TexImage2D, 9);
2551
- rb_define_module_function(module, "glTexEnvf", gl_TexEnvf, 3);
2552
- rb_define_module_function(module, "glTexEnvfv", gl_TexEnvfv, 3);
2553
- rb_define_module_function(module, "glTexEnvi", gl_TexEnvi, 3);
2554
- rb_define_module_function(module, "glTexEnviv", gl_TexEnviv, 3);
2555
- rb_define_module_function(module, "glTexGend", gl_TexGend, 3);
2556
- rb_define_module_function(module, "glTexGendv", gl_TexGendv, 3);
2557
- rb_define_module_function(module, "glTexGenf", gl_TexGenf, 3);
2558
- rb_define_module_function(module, "glTexGenfv", gl_TexGenfv, 3);
2559
- rb_define_module_function(module, "glTexGeni", gl_TexGeni, 3);
2560
- rb_define_module_function(module, "glTexGeniv", gl_TexGeniv, 3);
2561
- rb_define_module_function(module, "glFeedbackBuffer", gl_FeedbackBuffer, 2);
2562
- rb_define_module_function(module, "glSelectBuffer", gl_SelectBuffer, 1);
2563
- rb_define_module_function(module, "glRenderMode", gl_RenderMode, 1);
2564
- rb_define_module_function(module, "glInitNames", gl_InitNames, 0);
2565
- rb_define_module_function(module, "glLoadName", gl_LoadName, 1);
2566
- rb_define_module_function(module, "glPassThrough", gl_PassThrough, 1);
2567
- rb_define_module_function(module, "glPopName", gl_PopName, 0);
2568
- rb_define_module_function(module, "glPushName", gl_PushName, 1);
2569
- rb_define_module_function(module, "glDrawBuffer", gl_DrawBuffer, 1);
2570
- rb_define_module_function(module, "glClear", gl_Clear, 1);
2571
- rb_define_module_function(module, "glClearAccum", gl_ClearAccum, 4);
2572
- rb_define_module_function(module, "glClearIndex", gl_ClearIndex, 1);
2573
- rb_define_module_function(module, "glClearColor", gl_ClearColor, 4);
2574
- rb_define_module_function(module, "glClearStencil", gl_ClearStencil, 1);
2575
- rb_define_module_function(module, "glClearDepth", gl_ClearDepth, 1);
2576
- rb_define_module_function(module, "glStencilMask", gl_StencilMask, 1);
2577
- rb_define_module_function(module, "glColorMask", gl_ColorMask, 4);
2578
- rb_define_module_function(module, "glDepthMask", gl_DepthMask, 1);
2579
- rb_define_module_function(module, "glIndexMask", gl_IndexMask, 1);
2580
- rb_define_module_function(module, "glAccum", gl_Accum, 2);
2581
- rb_define_module_function(module, "glDisable", gl_Disable, 1);
2582
- rb_define_module_function(module, "glEnable", gl_Enable, 1);
2583
- rb_define_module_function(module, "glFinish", gl_Finish, 0);
2584
- rb_define_module_function(module, "glFlush", gl_Flush, 0);
2585
- rb_define_module_function(module, "glPopAttrib", gl_PopAttrib, 0);
2586
- rb_define_module_function(module, "glPushAttrib", gl_PushAttrib, 1);
2587
- rb_define_module_function(module, "glMap1d", gl_Map1d, 6);
2588
- rb_define_module_function(module, "glMap1f", gl_Map1f, 6);
2589
- rb_define_module_function(module, "glMap2d", gl_Map2d, 10);
2590
- rb_define_module_function(module, "glMap2f", gl_Map2f, 10);
2591
- rb_define_module_function(module, "glMapGrid1d", gl_MapGrid1d, 3);
2592
- rb_define_module_function(module, "glMapGrid1f", gl_MapGrid1f, 3);
2593
- rb_define_module_function(module, "glMapGrid2d", gl_MapGrid2d, 6);
2594
- rb_define_module_function(module, "glMapGrid2f", gl_MapGrid2f, 6);
2595
- rb_define_module_function(module, "glEvalCoord1d", gl_EvalCoord1d, 1);
2596
- rb_define_module_function(module, "glEvalCoord1dv", gl_EvalCoord1dv, 1);
2597
- rb_define_module_function(module, "glEvalCoord1f", gl_EvalCoord1f, 1);
2598
- rb_define_module_function(module, "glEvalCoord1fv", gl_EvalCoord1fv, 1);
2599
- rb_define_module_function(module, "glEvalCoord2d", gl_EvalCoord2d, 2);
2600
- rb_define_module_function(module, "glEvalCoord2dv", gl_EvalCoord2dv, 1);
2601
- rb_define_module_function(module, "glEvalCoord2f", gl_EvalCoord2f, 2);
2602
- rb_define_module_function(module, "glEvalCoord2fv", gl_EvalCoord2fv, 1);
2603
- rb_define_module_function(module, "glEvalMesh1", gl_EvalMesh1, 3);
2604
- rb_define_module_function(module, "glEvalPoint1", gl_EvalPoint1, 1);
2605
- rb_define_module_function(module, "glEvalMesh2", gl_EvalMesh2, 5);
2606
- rb_define_module_function(module, "glEvalPoint2", gl_EvalPoint2, 2);
2607
- rb_define_module_function(module, "glAlphaFunc", gl_AlphaFunc, 2);
2608
- rb_define_module_function(module, "glBlendFunc", gl_BlendFunc, 2);
2609
- rb_define_module_function(module, "glLogicOp", gl_LogicOp, 1);
2610
- rb_define_module_function(module, "glStencilFunc", gl_StencilFunc, 3);
2611
- rb_define_module_function(module, "glStencilOp", gl_StencilOp, 3);
2612
- rb_define_module_function(module, "glDepthFunc", gl_DepthFunc, 1);
2613
- rb_define_module_function(module, "glPixelZoom", gl_PixelZoom, 2);
2614
- rb_define_module_function(module, "glPixelTransferf", gl_PixelTransferf, 2);
2615
- rb_define_module_function(module, "glPixelTransferi", gl_PixelTransferi, 2);
2616
- rb_define_module_function(module, "glPixelStoref", gl_PixelStoref, 2);
2617
- rb_define_module_function(module, "glPixelStorei", gl_PixelStorei, 2);
2618
- rb_define_module_function(module, "glPixelMapfv", gl_PixelMapfv, -1);
2619
- rb_define_module_function(module, "glPixelMapuiv", gl_PixelMapuiv, -1);
2620
- rb_define_module_function(module, "glPixelMapusv", gl_PixelMapusv, -1);
2621
- rb_define_module_function(module, "glReadBuffer", gl_ReadBuffer, 1);
2622
- rb_define_module_function(module, "glCopyPixels", gl_CopyPixels, 5);
2623
- rb_define_module_function(module, "glReadPixels", gl_ReadPixels, -1);
2624
- rb_define_module_function(module, "glDrawPixels", gl_DrawPixels, 5);
2625
- rb_define_module_function(module, "glGetBooleanv", gl_GetBooleanv, 1);
2626
- rb_define_module_function(module, "glGetClipPlane", gl_GetClipPlane, 1);
2627
- rb_define_module_function(module, "glGetDoublev", gl_GetDoublev, 1);
2628
- rb_define_module_function(module, "glGetError", gl_GetError, 0);
2629
- rb_define_module_function(module, "glGetFloatv", gl_GetFloatv, 1);
2630
- rb_define_module_function(module, "glGetIntegerv", gl_GetIntegerv, 1);
2631
- rb_define_module_function(module, "glGetLightfv", gl_GetLightfv, 2);
2632
- rb_define_module_function(module, "glGetLightiv", gl_GetLightiv, 2);
2633
- rb_define_module_function(module, "glGetMapdv", gl_GetMapdv, 2);
2634
- rb_define_module_function(module, "glGetMapfv", gl_GetMapfv, 2);
2635
- rb_define_module_function(module, "glGetMapiv", gl_GetMapiv, 2);
2636
- rb_define_module_function(module, "glGetMaterialfv", gl_GetMaterialfv, 2);
2637
- rb_define_module_function(module, "glGetMaterialiv", gl_GetMaterialiv, 2);
2638
- rb_define_module_function(module, "glGetPixelMapfv", gl_GetPixelMapfv, -1);
2639
- rb_define_module_function(module, "glGetPixelMapuiv", gl_GetPixelMapuiv, -1);
2640
- rb_define_module_function(module, "glGetPixelMapusv", gl_GetPixelMapusv, -1);
2641
- rb_define_module_function(module, "glGetPolygonStipple", gl_GetPolygonStipple, -1);
2642
- rb_define_module_function(module, "glGetString", gl_GetString, 1);
2643
- rb_define_module_function(module, "glGetTexEnvfv", gl_GetTexEnvfv, 2);
2644
- rb_define_module_function(module, "glGetTexEnviv", gl_GetTexEnviv, 2);
2645
- rb_define_module_function(module, "glGetTexGendv", gl_GetTexGendv, 2);
2646
- rb_define_module_function(module, "glGetTexGenfv", gl_GetTexGenfv, 2);
2647
- rb_define_module_function(module, "glGetTexGeniv", gl_GetTexGeniv, 2);
2648
- rb_define_module_function(module, "glGetTexImage", gl_GetTexImage, -1);
2649
- rb_define_module_function(module, "glGetTexParameterfv", gl_GetTexParameterfv, 2);
2650
- rb_define_module_function(module, "glGetTexParameteriv", gl_GetTexParameteriv, 2);
2651
- rb_define_module_function(module, "glGetTexLevelParameterfv", gl_GetTexLevelParameterfv, 3);
2652
- rb_define_module_function(module, "glGetTexLevelParameteriv", gl_GetTexLevelParameteriv, 3);
2653
- rb_define_module_function(module, "glIsEnabled", gl_IsEnabled, 1);
2654
- rb_define_module_function(module, "glIsList", gl_IsList, 1);
2655
- rb_define_module_function(module, "glDepthRange", gl_DepthRange, 2);
2656
- rb_define_module_function(module, "glFrustum", gl_Frustum, 6);
2657
- rb_define_module_function(module, "glLoadIdentity", gl_LoadIdentity, 0);
2658
- rb_define_module_function(module, "glLoadMatrixf", gl_LoadMatrixf, 1);
2659
- rb_define_module_function(module, "glLoadMatrixd", gl_LoadMatrixd, 1);
2660
- rb_define_module_function(module, "glMatrixMode", gl_MatrixMode, 1);
2661
- rb_define_module_function(module, "glMultMatrixf", gl_MultMatrixf, 1);
2662
- rb_define_module_function(module, "glMultMatrixd", gl_MultMatrixd, 1);
2663
- rb_define_module_function(module, "glOrtho", gl_Ortho, 6);
2664
- rb_define_module_function(module, "glPopMatrix", gl_PopMatrix, 0);
2665
- rb_define_module_function(module, "glPushMatrix", gl_PushMatrix, 0);
2666
- rb_define_module_function(module, "glRotated", gl_Rotated, 4);
2667
- rb_define_module_function(module, "glRotatef", gl_Rotatef, 4);
2668
- rb_define_module_function(module, "glScaled", gl_Scaled, 3);
2669
- rb_define_module_function(module, "glScalef", gl_Scalef, 3);
2670
- rb_define_module_function(module, "glTranslated", gl_Translated, 3);
2671
- rb_define_module_function(module, "glTranslatef", gl_Translatef, 3);
2672
- rb_define_module_function(module, "glViewport", gl_Viewport, 4);
2673
-
2674
- /* OpenGL 1.1 functions */
2675
- rb_define_module_function(module, "glArrayElement", gl_ArrayElement, 1);
2676
- rb_define_module_function(module, "glColorPointer", gl_ColorPointer, 4);
2677
- rb_define_module_function(module, "glDisableClientState", gl_DisableClientState, 1);
2678
- rb_define_module_function(module, "glDrawArrays", gl_DrawArrays, 3);
2679
- rb_define_module_function(module, "glDrawElements", gl_DrawElements, 4);
2680
- rb_define_module_function(module, "glEdgeFlagPointer", gl_EdgeFlagPointer, 2);
2681
- rb_define_module_function(module, "glEnableClientState", gl_EnableClientState, 1);
2682
- rb_define_module_function(module, "glGetPointerv", gl_GetPointerv, 1);
2683
- rb_define_module_function(module, "glIndexPointer", gl_IndexPointer, 3);
2684
- rb_define_module_function(module, "glInterleavedArrays", gl_InterleavedArrays, 3);
2685
- rb_define_module_function(module, "glNormalPointer", gl_NormalPointer, 3);
2686
- rb_define_module_function(module, "glTexCoordPointer", gl_TexCoordPointer, 4);
2687
- rb_define_module_function(module, "glVertexPointer", gl_VertexPointer, 4);
2688
- rb_define_module_function(module, "glPolygonOffset", gl_PolygonOffset, 2);
2689
- rb_define_module_function(module, "glCopyTexImage1D", gl_CopyTexImage1D, 7);
2690
- rb_define_module_function(module, "glCopyTexImage2D", gl_CopyTexImage2D, 8);
2691
- rb_define_module_function(module, "glCopyTexSubImage1D", gl_CopyTexSubImage1D, 6);
2692
- rb_define_module_function(module, "glCopyTexSubImage2D", gl_CopyTexSubImage2D, 8);
2693
- rb_define_module_function(module, "glTexSubImage1D", gl_TexSubImage1D, 7);
2694
- rb_define_module_function(module, "glTexSubImage2D", gl_TexSubImage2D, 9);
2695
- rb_define_module_function(module, "glAreTexturesResident", gl_AreTexturesResident, 1);
2696
- rb_define_module_function(module, "glBindTexture", gl_BindTexture, 2);
2697
- rb_define_module_function(module, "glDeleteTextures", gl_DeleteTextures, 1);
2698
- rb_define_module_function(module, "glGenTextures", gl_GenTextures, 1);
2699
- rb_define_module_function(module, "glIsTexture", gl_IsTexture, 1);
2700
- rb_define_module_function(module, "glPrioritizeTextures", gl_PrioritizeTextures, 2);
2701
- rb_define_module_function(module, "glIndexub", gl_Indexub, 1);
2702
- rb_define_module_function(module, "glIndexubv", gl_Indexubv, 1);
2703
- rb_define_module_function(module, "glPopClientAttrib", gl_PopClientAttrib, 0);
2704
- rb_define_module_function(module, "glPushClientAttrib", gl_PushClientAttrib, 1);
2705
-
2706
- /* additional functions */
2707
- rb_define_module_function(module, "glColor", gl_Colordv, -1);
2708
- rb_define_module_function(module, "glColor3bv", gl_Colorbv, -1);
2709
- rb_define_module_function(module, "glColor3dv", gl_Colordv, -1);
2710
- rb_define_module_function(module, "glColor3fv", gl_Colorfv, -1);
2711
- rb_define_module_function(module, "glColor3iv", gl_Coloriv, -1);
2712
- rb_define_module_function(module, "glColor3sv", gl_Colorsv, -1);
2713
- rb_define_module_function(module, "glColor3ubv", gl_Colorubv, -1);
2714
- rb_define_module_function(module, "glColor3uiv", gl_Coloruiv, -1);
2715
- rb_define_module_function(module, "glColor3usv", gl_Colorusv, -1);
2716
- rb_define_module_function(module, "glColor4bv", gl_Colorbv, -1);
2717
- rb_define_module_function(module, "glColor4dv", gl_Colordv, -1);
2718
- rb_define_module_function(module, "glColor4fv", gl_Colorfv, -1);
2719
- rb_define_module_function(module, "glColor4iv", gl_Coloriv, -1);
2720
- rb_define_module_function(module, "glColor4sv", gl_Colorsv, -1);
2721
- rb_define_module_function(module, "glColor4ubv", gl_Colorubv, -1);
2722
- rb_define_module_function(module, "glColor4uiv", gl_Coloruiv, -1);
2723
- rb_define_module_function(module, "glColor4usv", gl_Colorusv, -1);
2724
-
2725
- rb_define_module_function(module, "glNormal", gl_Normaldv, -1);
2726
- rb_define_module_function(module, "glNormal3bv", gl_Normalbv, -1);
2727
- rb_define_module_function(module, "glNormal3dv", gl_Normaldv, -1);
2728
- rb_define_module_function(module, "glNormal3fv", gl_Normalfv, -1);
2729
- rb_define_module_function(module, "glNormal3iv", gl_Normaliv, -1);
2730
- rb_define_module_function(module, "glNormal3sv", gl_Normalsv, -1);
2731
-
2732
- rb_define_module_function(module, "glRasterPos", gl_RasterPosdv, -1);
2733
- rb_define_module_function(module, "glRasterPos2dv", gl_RasterPosdv, -1);
2734
- rb_define_module_function(module, "glRasterPos2fv", gl_RasterPosfv, -1);
2735
- rb_define_module_function(module, "glRasterPos2iv", gl_RasterPosiv, -1);
2736
- rb_define_module_function(module, "glRasterPos2sv", gl_RasterPossv, -1);
2737
- rb_define_module_function(module, "glRasterPos3dv", gl_RasterPosdv, -1);
2738
- rb_define_module_function(module, "glRasterPos3fv", gl_RasterPosfv, -1);
2739
- rb_define_module_function(module, "glRasterPos3iv", gl_RasterPosiv, -1);
2740
- rb_define_module_function(module, "glRasterPos3sv", gl_RasterPossv, -1);
2741
- rb_define_module_function(module, "glRasterPos4dv", gl_RasterPosdv, -1);
2742
- rb_define_module_function(module, "glRasterPos4fv", gl_RasterPosfv, -1);
2743
- rb_define_module_function(module, "glRasterPos4iv", gl_RasterPosiv, -1);
2744
- rb_define_module_function(module, "glRasterPos4sv", gl_RasterPossv, -1);
2745
-
2746
- rb_define_module_function(module, "glRect", gl_Rectdv, -1);
2747
- rb_define_module_function(module, "glRectdv", gl_Rectdv, -1);
2748
- rb_define_module_function(module, "glRectfv", gl_Rectfv, -1);
2749
- rb_define_module_function(module, "glRectiv", gl_Rectiv, -1);
2750
- rb_define_module_function(module, "glRectsv", gl_Rectsv, -1);
2751
-
2752
- rb_define_module_function(module, "glTexCoord", gl_TexCoorddv, -1);
2753
- rb_define_module_function(module, "glTexCoord1dv", gl_TexCoorddv, -1);
2754
- rb_define_module_function(module, "glTexCoord1fv", gl_TexCoordfv, -1);
2755
- rb_define_module_function(module, "glTexCoord1iv", gl_TexCoordiv, -1);
2756
- rb_define_module_function(module, "glTexCoord1sv", gl_TexCoordsv, -1);
2757
- rb_define_module_function(module, "glTexCoord2dv", gl_TexCoorddv, -1);
2758
- rb_define_module_function(module, "glTexCoord2fv", gl_TexCoordfv, -1);
2759
- rb_define_module_function(module, "glTexCoord2iv", gl_TexCoordiv, -1);
2760
- rb_define_module_function(module, "glTexCoord2sv", gl_TexCoordsv, -1);
2761
- rb_define_module_function(module, "glTexCoord3dv", gl_TexCoorddv, -1);
2762
- rb_define_module_function(module, "glTexCoord3fv", gl_TexCoordfv, -1);
2763
- rb_define_module_function(module, "glTexCoord3iv", gl_TexCoordiv, -1);
2764
- rb_define_module_function(module, "glTexCoord3sv", gl_TexCoordsv, -1);
2765
- rb_define_module_function(module, "glTexCoord4dv", gl_TexCoorddv, -1);
2766
- rb_define_module_function(module, "glTexCoord4fv", gl_TexCoordfv, -1);
2767
- rb_define_module_function(module, "glTexCoord4iv", gl_TexCoordiv, -1);
2768
- rb_define_module_function(module, "glTexCoord4sv", gl_TexCoordsv, -1);
2769
-
2770
- rb_define_module_function(module, "glVertex", gl_Vertexdv, -1);
2771
- rb_define_module_function(module, "glVertex2dv", gl_Vertexdv, -1);
2772
- rb_define_module_function(module, "glVertex2fv", gl_Vertexfv, -1);
2773
- rb_define_module_function(module, "glVertex2iv", gl_Vertexiv, -1);
2774
- rb_define_module_function(module, "glVertex2sv", gl_Vertexsv, -1);
2775
- rb_define_module_function(module, "glVertex3dv", gl_Vertexdv, -1);
2776
- rb_define_module_function(module, "glVertex3fv", gl_Vertexfv, -1);
2777
- rb_define_module_function(module, "glVertex3iv", gl_Vertexiv, -1);
2778
- rb_define_module_function(module, "glVertex3sv", gl_Vertexsv, -1);
2779
- rb_define_module_function(module, "glVertex4dv", gl_Vertexdv, -1);
2780
- rb_define_module_function(module, "glVertex4fv", gl_Vertexfv, -1);
2781
- rb_define_module_function(module, "glVertex4iv", gl_Vertexiv, -1);
2782
- rb_define_module_function(module, "glVertex4sv", gl_Vertexsv, -1);
2783
-
2784
- /* these simply calls normal or vector (*v) function depending on
2785
- if array or single value is passed to them */
2786
- rb_define_module_function(module, "glLightModel", gl_LightModel, 2);
2787
- rb_define_module_function(module, "glMaterial", gl_Material, 3);
2788
- rb_define_module_function(module, "glFog", gl_Fog, 2);
2789
- rb_define_module_function(module, "glLight", gl_Light, 3);
2790
- rb_define_module_function(module, "glTexParameter", gl_TexParameter, 3);
2791
- rb_define_module_function(module, "glTexEnv", gl_TexEnv, 3);
2792
- rb_define_module_function(module, "glTexGen", gl_TexGen, 3);
2793
-
2794
- /* aliases */
2795
- rb_define_module_function(module, "glMultMatrix", gl_MultMatrixd, 1);
2796
- rb_define_module_function(module, "glLoadMatrix", gl_LoadMatrixd, 1);
2797
- rb_define_module_function(module, "glRotate", gl_Rotated, 4);
2798
- rb_define_module_function(module, "glScale", gl_Scaled, 3);
2799
- rb_define_module_function(module, "glTranslate", gl_Translated, 3);
2800
-
2801
- rb_define_module_function(module, "glPixelStore", gl_PixelStoref, 2);
2802
- rb_define_module_function(module, "glPixelTransfer", gl_PixelTransferf, 2);
2803
- rb_define_module_function(module, "glIndex", gl_Indexi, 1);
2804
- rb_define_module_function(module, "glGetMaterial", gl_GetMaterialfv, 2);
2805
- rb_define_module_function(module, "glGetDouble", gl_GetDoublev, 1);
2806
-
2807
- rb_global_variable(&g_current_sel_buffer);
2808
- rb_global_variable(&g_current_feed_buffer);
2809
- rb_global_variable(&g_Vertex_ptr);
2810
- rb_global_variable(&g_Normal_ptr);
2811
- rb_global_variable(&g_Color_ptr);
2812
- rb_global_variable(&g_Index_ptr);
2813
- rb_global_variable(&g_TexCoord_ptr);
2814
- rb_global_variable(&g_EdgeFlag_ptr);
2815
- rb_global_variable(&g_FogCoord_ptr);
2816
- rb_global_variable(&g_SecondaryColor_ptr);
2817
- }