8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "glAccum" => ["void", ["long", "long"]],
16 "glActiveTextureARB" => ["void", ["long"]],
17 "glAlphaFunc" => ["void", ["long", "long"]],
18 "glAreTexturesResident" => ["long", ["long", "ptr", "ptr"]],
19 "glArrayElement" => ["void", ["long"]],
20 "glBegin" => ["void", ["long"]],
21 "glBindTexture" => ["void", ["long", "long"]],
22 "glBitmap" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
23 "glBlendColor" => ["void", ["long", "long", "long", "long"]],
24 "glBlendEquation" => ["void", ["long"]],
25 "glBlendFunc" => ["void", ["long", "long"]],
26 "glCallList" => ["void", ["long"]],
27 "glCallLists" => ["void", ["long", "long", "ptr"]],
28 "glClear" => ["void", ["long"]],
29 "glClearAccum" => ["void", ["long", "long", "long", "long"]],
30 "glClearColor" => ["void", ["long", "long", "long", "long"]],
31 "glClearDepth" => ["void", ["double"]],
32 "glClearIndex" => ["void", ["long"]],
33 "glClearStencil" => ["void", ["long"]],
34 "glClientActiveTextureARB" => ["void", ["long"]],
35 "glClipPlane" => ["void", ["long", "ptr"]],
36 "glColor3b" => ["void", ["long", "long", "long"]],
37 "glColor3bv" => ["void", ["ptr"]],
38 "glColor3d" => ["void", ["double", "double", "double"]],
39 "glColor3dv" => ["void", ["ptr"]],
40 "glColor3f" => ["void", ["long", "long", "long"]],
41 "glColor3fv" => ["void", ["ptr"]],
42 "glColor3i" => ["void", ["long", "long", "long"]],
43 "glColor3iv" => ["void", ["ptr"]],
44 "glColor3s" => ["void", ["long", "long", "long"]],
45 "glColor3sv" => ["void", ["ptr"]],
46 "glColor3ub" => ["void", ["long", "long", "long"]],
47 "glColor3ubv" => ["void", ["ptr"]],
48 "glColor3ui" => ["void", ["long", "long", "long"]],
49 "glColor3uiv" => ["void", ["ptr"]],
50 "glColor3us" => ["void", ["long", "long", "long"]],
51 "glColor3usv" => ["void", ["ptr"]],
52 "glColor4b" => ["void", ["long", "long", "long", "long"]],
53 "glColor4bv" => ["void", ["ptr"]],
54 "glColor4d" => ["void", ["double", "double", "double", "double"]],
55 "glColor4dv" => ["void", ["ptr"]],
56 "glColor4f" => ["void", ["long", "long", "long", "long"]],
57 "glColor4fv" => ["void", ["ptr"]],
58 "glColor4i" => ["void", ["long", "long", "long", "long"]],
59 "glColor4iv" => ["void", ["ptr"]],
60 "glColor4s" => ["void", ["long", "long", "long", "long"]],
61 "glColor4sv" => ["void", ["ptr"]],
62 "glColor4ub" => ["void", ["long", "long", "long", "long"]],
63 "glColor4ubv" => ["void", ["ptr"]],
64 "glColor4ui" => ["void", ["long", "long", "long", "long"]],
65 "glColor4uiv" => ["void", ["ptr"]],
66 "glColor4us" => ["void", ["long", "long", "long", "long"]],
67 "glColor4usv" => ["void", ["ptr"]],
68 "glColorMask" => ["void", ["long", "long", "long", "long"]],
69 "glColorMaterial" => ["void", ["long", "long"]],
70 "glColorPointer" => ["void", ["long", "long", "long", "ptr"]],
71 "glColorSubTable" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
72 "glColorTable" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
73 "glColorTableParameterfv" => ["void", ["long", "long", "ptr"]],
74 "glColorTableParameteriv" => ["void", ["long", "long", "ptr"]],
75 "glConvolutionFilter1D" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
76 "glConvolutionFilter2D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
77 "glConvolutionParameterf" => ["void", ["long", "long", "long"]],
78 "glConvolutionParameterfv" => ["void", ["long", "long", "ptr"]],
79 "glConvolutionParameteri" => ["void", ["long", "long", "long"]],
80 "glConvolutionParameteriv" => ["void", ["long", "long", "ptr"]],
81 "glCopyColorSubTable" => ["void", ["long", "long", "long", "long", "long"]],
82 "glCopyColorTable" => ["void", ["long", "long", "long", "long", "long"]],
83 "glCopyConvolutionFilter1D" => ["void", ["long", "long", "long", "long", "long"]],
84 "glCopyConvolutionFilter2D" => ["void", ["long", "long", "long", "long", "long", "long"]],
85 "glCopyPixels" => ["void", ["long", "long", "long", "long", "long"]],
86 "glCopyTexImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "long"]],
87 "glCopyTexImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long"]],
88 "glCopyTexSubImage1D" => ["void", ["long", "long", "long", "long", "long", "long"]],
89 "glCopyTexSubImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long"]],
90 "glCopyTexSubImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
91 "glCullFace" => ["void", ["long"]],
92 "glDeleteLists" => ["void", ["long", "long"]],
93 "glDeleteTextures" => ["void", ["long", "ptr"]],
94 "glDepthFunc" => ["void", ["long"]],
95 "glDepthMask" => ["void", ["long"]],
96 "glDepthRange" => ["void", ["double", "double"]],
97 "glDisable" => ["void", ["long"]],
98 "glDisableClientState" => ["void", ["long"]],
99 "glDrawArrays" => ["void", ["long", "long", "long"]],
100 "glDrawBuffer" => ["void", ["long"]],
101 "glDrawElements" => ["void", ["long", "long", "long", "ptr"]],
102 "glDrawPixels" => ["void", ["long", "long", "long", "long", "ptr"]],
103 "glDrawRangeElements" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
104 "glEdgeFlag" => ["void", ["long"]],
105 "glEdgeFlagPointer" => ["void", ["long", "ptr"]],
106 "glEdgeFlagv" => ["void", ["ptr"]],
107 "glEnable" => ["void", ["long"]],
108 "glEnableClientState" => ["void", ["long"]],
109 "glEnd" => ["void", ["undef"]],
110 "glEndList" => ["void", ["undef"]],
111 "glEvalCoord1d" => ["void", ["double"]],
112 "glEvalCoord1dv" => ["void", ["ptr"]],
113 "glEvalCoord1f" => ["void", ["long"]],
114 "glEvalCoord1fv" => ["void", ["ptr"]],
115 "glEvalCoord2d" => ["void", ["double", "double"]],
116 "glEvalCoord2dv" => ["void", ["ptr"]],
117 "glEvalCoord2f" => ["void", ["long", "long"]],
118 "glEvalCoord2fv" => ["void", ["ptr"]],
119 "glEvalMesh1" => ["void", ["long", "long", "long"]],
120 "glEvalMesh2" => ["void", ["long", "long", "long", "long", "long"]],
121 "glEvalPoint1" => ["void", ["long"]],
122 "glEvalPoint2" => ["void", ["long", "long"]],
123 "glFeedbackBuffer" => ["void", ["long", "long", "ptr"]],
124 "glFinish" => ["void", ["undef"]],
125 "glFlush" => ["void", ["undef"]],
126 "glFogf" => ["void", ["long", "long"]],
127 "glFogfv" => ["void", ["long", "ptr"]],
128 "glFogi" => ["void", ["long", "long"]],
129 "glFogiv" => ["void", ["long", "ptr"]],
130 "glFrontFace" => ["void", ["long"]],
131 "glFrustum" => ["void", ["double", "double", "double", "double", "double", "double"]],
132 "glGenLists" => ["long", ["long"]],
133 "glGenTextures" => ["void", ["long", "ptr"]],
134 "glGetBooleanv" => ["void", ["long", "ptr"]],
135 "glGetClipPlane" => ["void", ["long", "ptr"]],
136 "glGetColorTable" => ["void", ["long", "long", "long", "ptr"]],
137 "glGetColorTableParameterfv" => ["void", ["long", "long", "ptr"]],
138 "glGetColorTableParameteriv" => ["void", ["long", "long", "ptr"]],
139 "glGetConvolutionFilter" => ["void", ["long", "long", "long", "ptr"]],
140 "glGetConvolutionParameterfv" => ["void", ["long", "long", "ptr"]],
141 "glGetConvolutionParameteriv" => ["void", ["long", "long", "ptr"]],
142 "glGetDoublev" => ["void", ["long", "ptr"]],
143 "glGetError" => ["long", ["undef"]],
144 "glGetFloatv" => ["void", ["long", "ptr"]],
145 "glGetHistogram" => ["void", ["long", "long", "long", "long", "ptr"]],
146 "glGetHistogramParameterfv" => ["void", ["long", "long", "ptr"]],
147 "glGetHistogramParameteriv" => ["void", ["long", "long", "ptr"]],
148 "glGetIntegerv" => ["void", ["long", "ptr"]],
149 "glGetLightfv" => ["void", ["long", "long", "ptr"]],
150 "glGetLightiv" => ["void", ["long", "long", "ptr"]],
151 "glGetMapdv" => ["void", ["long", "long", "ptr"]],
152 "glGetMapfv" => ["void", ["long", "long", "ptr"]],
153 "glGetMapiv" => ["void", ["long", "long", "ptr"]],
154 "glGetMaterialfv" => ["void", ["long", "long", "ptr"]],
155 "glGetMaterialiv" => ["void", ["long", "long", "ptr"]],
156 "glGetMinmax" => ["void", ["long", "long", "long", "long", "ptr"]],
157 "glGetMinmaxParameterfv" => ["void", ["long", "long", "ptr"]],
158 "glGetMinmaxParameteriv" => ["void", ["long", "long", "ptr"]],
159 "glGetPixelMapfv" => ["void", ["long", "ptr"]],
160 "glGetPixelMapuiv" => ["void", ["long", "ptr"]],
161 "glGetPixelMapusv" => ["void", ["long", "ptr"]],
162 "glGetPointerv" => ["void", ["long", "ptr"]],
163 "glGetPolygonStipple" => ["void", ["ptr"]],
164 "glGetSeparableFilter" => ["void", ["long", "long", "long", "ptr", "ptr", "ptr"]],
165 "glGetString" => ["ptr", ["long"]],
166 "glGetTexEnvfv" => ["void", ["long", "long", "ptr"]],
167 "glGetTexEnviv" => ["void", ["long", "long", "ptr"]],
168 "glGetTexGendv" => ["void", ["long", "long", "ptr"]],
169 "glGetTexGenfv" => ["void", ["long", "long", "ptr"]],
170 "glGetTexGeniv" => ["void", ["long", "long", "ptr"]],
171 "glGetTexImage" => ["void", ["long", "long", "long", "long", "ptr"]],
172 "glGetTexLevelParameterfv" => ["void", ["long", "long", "long", "ptr"]],
173 "glGetTexLevelParameteriv" => ["void", ["long", "long", "long", "ptr"]],
174 "glGetTexParameterfv" => ["void", ["long", "long", "ptr"]],
175 "glGetTexParameteriv" => ["void", ["long", "long", "ptr"]],
176 "glHint" => ["void", ["long", "long"]],
177 "glHistogram" => ["void", ["long", "long", "long", "long"]],
178 "glIndexMask" => ["void", ["long"]],
179 "glIndexPointer" => ["void", ["long", "long", "ptr"]],
180 "glIndexd" => ["void", ["double"]],
181 "glIndexdv" => ["void", ["ptr"]],
182 "glIndexf" => ["void", ["long"]],
183 "glIndexfv" => ["void", ["ptr"]],
184 "glIndexi" => ["void", ["long"]],
185 "glIndexiv" => ["void", ["ptr"]],
186 "glIndexs" => ["void", ["long"]],
187 "glIndexsv" => ["void", ["ptr"]],
188 "glIndexub" => ["void", ["long"]],
189 "glIndexubv" => ["void", ["ptr"]],
190 "glInitNames" => ["void", ["undef"]],
191 "glInterleavedArrays" => ["void", ["long", "long", "ptr"]],
192 "glIsEnabled" => ["long", ["long"]],
193 "glIsList" => ["long", ["long"]],
194 "glIsTexture" => ["long", ["long"]],
195 "glLightModelf" => ["void", ["long", "long"]],
196 "glLightModelfv" => ["void", ["long", "ptr"]],
197 "glLightModeli" => ["void", ["long", "long"]],
198 "glLightModeliv" => ["void", ["long", "ptr"]],
199 "glLightf" => ["void", ["long", "long", "long"]],
200 "glLightfv" => ["void", ["long", "long", "ptr"]],
201 "glLighti" => ["void", ["long", "long", "long"]],
202 "glLightiv" => ["void", ["long", "long", "ptr"]],
203 "glLineStipple" => ["void", ["long", "long"]],
204 "glLineWidth" => ["void", ["long"]],
205 "glListBase" => ["void", ["long"]],
206 "glLoadIdentity" => ["void", ["undef"]],
207 "glLoadMatrixd" => ["void", ["ptr"]],
208 "glLoadMatrixf" => ["void", ["ptr"]],
209 "glLoadName" => ["void", ["long"]],
210 "glLogicOp" => ["void", ["long"]],
211 "glMap1d" => ["void", ["long", "double", "double", "long", "long", "ptr"]],
212 "glMap1f" => ["void", ["long", "long", "long", "long", "long", "ptr"]],
213 "glMap2d" => ["void", ["long", "double", "double", "long", "long", "double", "double", "long", "long", "ptr"]],
214 "glMap2f" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
215 "glMapGrid1d" => ["void", ["long", "double", "double"]],
216 "glMapGrid1f" => ["void", ["long", "long", "long"]],
217 "glMapGrid2d" => ["void", ["long", "double", "double", "long", "double", "double"]],
218 "glMapGrid2f" => ["void", ["long", "long", "long", "long", "long", "long"]],
219 "glMaterialf" => ["void", ["long", "long", "long"]],
220 "glMaterialfv" => ["void", ["long", "long", "ptr"]],
221 "glMateriali" => ["void", ["long", "long", "long"]],
222 "glMaterialiv" => ["void", ["long", "long", "ptr"]],
223 "glMatrixMode" => ["void", ["long"]],
224 "glMinmax" => ["void", ["long", "long", "long"]],
225 "glMultMatrixd" => ["void", ["ptr"]],
226 "glMultMatrixf" => ["void", ["ptr"]],
227 "glMultiTexCoord1dARB" => ["void", ["long", "double"]],
228 "glMultiTexCoord1dvARB" => ["void", ["long", "ptr"]],
229 "glMultiTexCoord1fARB" => ["void", ["long", "long"]],
230 "glMultiTexCoord1fvARB" => ["void", ["long", "ptr"]],
231 "glMultiTexCoord1iARB" => ["void", ["long", "long"]],
232 "glMultiTexCoord1ivARB" => ["void", ["long", "ptr"]],
233 "glMultiTexCoord1sARB" => ["void", ["long", "long"]],
234 "glMultiTexCoord1svARB" => ["void", ["long", "ptr"]],
235 "glMultiTexCoord2dARB" => ["void", ["long", "double", "double"]],
236 "glMultiTexCoord2dvARB" => ["void", ["long", "ptr"]],
237 "glMultiTexCoord2fARB" => ["void", ["long", "long", "long"]],
238 "glMultiTexCoord2fvARB" => ["void", ["long", "ptr"]],
239 "glMultiTexCoord2iARB" => ["void", ["long", "long", "long"]],
240 "glMultiTexCoord2ivARB" => ["void", ["long", "ptr"]],
241 "glMultiTexCoord2sARB" => ["void", ["long", "long", "long"]],
242 "glMultiTexCoord2svARB" => ["void", ["long", "ptr"]],
243 "glMultiTexCoord3dARB" => ["void", ["long", "double", "double", "double"]],
244 "glMultiTexCoord3dvARB" => ["void", ["long", "ptr"]],
245 "glMultiTexCoord3fARB" => ["void", ["long", "long", "long", "long"]],
246 "glMultiTexCoord3fvARB" => ["void", ["long", "ptr"]],
247 "glMultiTexCoord3iARB" => ["void", ["long", "long", "long", "long"]],
248 "glMultiTexCoord3ivARB" => ["void", ["long", "ptr"]],
249 "glMultiTexCoord3sARB" => ["void", ["long", "long", "long", "long"]],
250 "glMultiTexCoord3svARB" => ["void", ["long", "ptr"]],
251 "glMultiTexCoord4dARB" => ["void", ["long", "double", "double", "double", "double"]],
252 "glMultiTexCoord4dvARB" => ["void", ["long", "ptr"]],
253 "glMultiTexCoord4fARB" => ["void", ["long", "long", "long", "long", "long"]],
254 "glMultiTexCoord4fvARB" => ["void", ["long", "ptr"]],
255 "glMultiTexCoord4iARB" => ["void", ["long", "long", "long", "long", "long"]],
256 "glMultiTexCoord4ivARB" => ["void", ["long", "ptr"]],
257 "glMultiTexCoord4sARB" => ["void", ["long", "long", "long", "long", "long"]],
258 "glMultiTexCoord4svARB" => ["void", ["long", "ptr"]],
259 "glNewList" => ["void", ["long", "long"]],
260 "glNormal3b" => ["void", ["long", "long", "long"]],
261 "glNormal3bv" => ["void", ["ptr"]],
262 "glNormal3d" => ["void", ["double", "double", "double"]],
263 "glNormal3dv" => ["void", ["ptr"]],
264 "glNormal3f" => ["void", ["long", "long", "long"]],
265 "glNormal3fv" => ["void", ["ptr"]],
266 "glNormal3i" => ["void", ["long", "long", "long"]],
267 "glNormal3iv" => ["void", ["ptr"]],
268 "glNormal3s" => ["void", ["long", "long", "long"]],
269 "glNormal3sv" => ["void", ["ptr"]],
270 "glNormalPointer" => ["void", ["long", "long", "ptr"]],
271 "glOrtho" => ["void", ["double", "double", "double", "double", "double", "double"]],
272 "glPassThrough" => ["void", ["long"]],
273 "glPixelMapfv" => ["void", ["long", "long", "ptr"]],
274 "glPixelMapuiv" => ["void", ["long", "long", "ptr"]],
275 "glPixelMapusv" => ["void", ["long", "long", "ptr"]],
276 "glPixelStoref" => ["void", ["long", "long"]],
277 "glPixelStorei" => ["void", ["long", "long"]],
278 "glPixelTransferf" => ["void", ["long", "long"]],
279 "glPixelTransferi" => ["void", ["long", "long"]],
280 "glPixelZoom" => ["void", ["long", "long"]],
281 "glPointSize" => ["void", ["long"]],
282 "glPolygonMode" => ["void", ["long", "long"]],
283 "glPolygonOffset" => ["void", ["long", "long"]],
284 "glPolygonStipple" => ["void", ["ptr"]],
285 "glPopAttrib" => ["void", ["undef"]],
286 "glPopClientAttrib" => ["void", ["undef"]],
287 "glPopMatrix" => ["void", ["undef"]],
288 "glPopName" => ["void", ["undef"]],
289 "glPrioritizeTextures" => ["void", ["long", "ptr", "ptr"]],
290 "glPushAttrib" => ["void", ["long"]],
291 "glPushClientAttrib" => ["void", ["long"]],
292 "glPushMatrix" => ["void", ["undef"]],
293 "glPushName" => ["void", ["long"]],
294 "glRasterPos2d" => ["void", ["double", "double"]],
295 "glRasterPos2dv" => ["void", ["ptr"]],
296 "glRasterPos2f" => ["void", ["long", "long"]],
297 "glRasterPos2fv" => ["void", ["ptr"]],
298 "glRasterPos2i" => ["void", ["long", "long"]],
299 "glRasterPos2iv" => ["void", ["ptr"]],
300 "glRasterPos2s" => ["void", ["long", "long"]],
301 "glRasterPos2sv" => ["void", ["ptr"]],
302 "glRasterPos3d" => ["void", ["double", "double", "double"]],
303 "glRasterPos3dv" => ["void", ["ptr"]],
304 "glRasterPos3f" => ["void", ["long", "long", "long"]],
305 "glRasterPos3fv" => ["void", ["ptr"]],
306 "glRasterPos3i" => ["void", ["long", "long", "long"]],
307 "glRasterPos3iv" => ["void", ["ptr"]],
308 "glRasterPos3s" => ["void", ["long", "long", "long"]],
309 "glRasterPos3sv" => ["void", ["ptr"]],
310 "glRasterPos4d" => ["void", ["double", "double", "double", "double"]],
311 "glRasterPos4dv" => ["void", ["ptr"]],
312 "glRasterPos4f" => ["void", ["long", "long", "long", "long"]],
313 "glRasterPos4fv" => ["void", ["ptr"]],
314 "glRasterPos4i" => ["void", ["long", "long", "long", "long"]],
315 "glRasterPos4iv" => ["void", ["ptr"]],
316 "glRasterPos4s" => ["void", ["long", "long", "long", "long"]],
317 "glRasterPos4sv" => ["void", ["ptr"]],
318 "glReadBuffer" => ["void", ["long"]],
319 "glReadPixels" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
320 "glRectd" => ["void", ["double", "double", "double", "double"]],
321 "glRectdv" => ["void", ["ptr", "ptr"]],
322 "glRectf" => ["void", ["long", "long", "long", "long"]],
323 "glRectfv" => ["void", ["ptr", "ptr"]],
324 "glRecti" => ["void", ["long", "long", "long", "long"]],
325 "glRectiv" => ["void", ["ptr", "ptr"]],
326 "glRects" => ["void", ["long", "long", "long", "long"]],
327 "glRectsv" => ["void", ["ptr", "ptr"]],
328 "glRenderMode" => ["long", ["long"]],
329 "glResetHistogram" => ["void", ["long"]],
330 "glResetMinmax" => ["void", ["long"]],
331 "glRotated" => ["void", ["double", "double", "double", "double"]],
332 "glRotatef" => ["void", ["long", "long", "long", "long"]],
333 "glScaled" => ["void", ["double", "double", "double"]],
334 "glScalef" => ["void", ["long", "long", "long"]],
335 "glScissor" => ["void", ["long", "long", "long", "long"]],
336 "glSelectBuffer" => ["void", ["long", "ptr"]],
337 "glSeparableFilter2D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr", "ptr"]],
338 "glShadeModel" => ["void", ["long"]],
339 "glStencilFunc" => ["void", ["long", "long", "long"]],
340 "glStencilMask" => ["void", ["long"]],
341 "glStencilOp" => ["void", ["long", "long", "long"]],
342 "glTexCoord1d" => ["void", ["double"]],
343 "glTexCoord1dv" => ["void", ["ptr"]],
344 "glTexCoord1f" => ["void", ["long"]],
345 "glTexCoord1fv" => ["void", ["ptr"]],
346 "glTexCoord1i" => ["void", ["long"]],
347 "glTexCoord1iv" => ["void", ["ptr"]],
348 "glTexCoord1s" => ["void", ["long"]],
349 "glTexCoord1sv" => ["void", ["ptr"]],
350 "glTexCoord2d" => ["void", ["double", "double"]],
351 "glTexCoord2dv" => ["void", ["ptr"]],
352 "glTexCoord2f" => ["void", ["long", "long"]],
353 "glTexCoord2fv" => ["void", ["ptr"]],
354 "glTexCoord2i" => ["void", ["long", "long"]],
355 "glTexCoord2iv" => ["void", ["ptr"]],
356 "glTexCoord2s" => ["void", ["long", "long"]],
357 "glTexCoord2sv" => ["void", ["ptr"]],
358 "glTexCoord3d" => ["void", ["double", "double", "double"]],
359 "glTexCoord3dv" => ["void", ["ptr"]],
360 "glTexCoord3f" => ["void", ["long", "long", "long"]],
361 "glTexCoord3fv" => ["void", ["ptr"]],
362 "glTexCoord3i" => ["void", ["long", "long", "long"]],
363 "glTexCoord3iv" => ["void", ["ptr"]],
364 "glTexCoord3s" => ["void", ["long", "long", "long"]],
365 "glTexCoord3sv" => ["void", ["ptr"]],
366 "glTexCoord4d" => ["void", ["double", "double", "double", "double"]],
367 "glTexCoord4dv" => ["void", ["ptr"]],
368 "glTexCoord4f" => ["void", ["long", "long", "long", "long"]],
369 "glTexCoord4fv" => ["void", ["ptr"]],
370 "glTexCoord4i" => ["void", ["long", "long", "long", "long"]],
371 "glTexCoord4iv" => ["void", ["ptr"]],
372 "glTexCoord4s" => ["void", ["long", "long", "long", "long"]],
373 "glTexCoord4sv" => ["void", ["ptr"]],
374 "glTexCoordPointer" => ["void", ["long", "long", "long", "ptr"]],
375 "glTexEnvf" => ["void", ["long", "long", "long"]],
376 "glTexEnvfv" => ["void", ["long", "long", "ptr"]],
377 "glTexEnvi" => ["void", ["long", "long", "long"]],
378 "glTexEnviv" => ["void", ["long", "long", "ptr"]],
379 "glTexGend" => ["void", ["long", "long", "double"]],
380 "glTexGendv" => ["void", ["long", "long", "ptr"]],
381 "glTexGenf" => ["void", ["long", "long", "long"]],
382 "glTexGenfv" => ["void", ["long", "long", "ptr"]],
383 "glTexGeni" => ["void", ["long", "long", "long"]],
384 "glTexGeniv" => ["void", ["long", "long", "ptr"]],
385 "glTexImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "ptr"]],
386 "glTexImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
387 "glTexImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
388 "glTexParameterf" => ["void", ["long", "long", "long"]],
389 "glTexParameterfv" => ["void", ["long", "long", "ptr"]],
390 "glTexParameteri" => ["void", ["long", "long", "long"]],
391 "glTexParameteriv" => ["void", ["long", "long", "ptr"]],
392 "glTexSubImage1D" => ["void", ["long", "long", "long", "long", "long", "long", "ptr"]],
393 "glTexSubImage2D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
394 "glTexSubImage3D" => ["void", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr"]],
395 "glTranslated" => ["void", ["double", "double", "double"]],
396 "glTranslatef" => ["void", ["long", "long", "long"]],
397 "glVertex2d" => ["void", ["double", "double"]],
398 "glVertex2dv" => ["void", ["ptr"]],
399 "glVertex2f" => ["void", ["long", "long"]],
400 "glVertex2fv" => ["void", ["ptr"]],
401 "glVertex2i" => ["void", ["long", "long"]],
402 "glVertex2iv" => ["void", ["ptr"]],
403 "glVertex2s" => ["void", ["long", "long"]],
404 "glVertex2sv" => ["void", ["ptr"]],
405 "glVertex3d" => ["void", ["double", "double", "double"]],
406 "glVertex3dv" => ["void", ["ptr"]],
407 "glVertex3f" => ["void", ["long", "long", "long"]],
408 "glVertex3fv" => ["void", ["ptr"]],
409 "glVertex3i" => ["void", ["long", "long", "long"]],
410 "glVertex3iv" => ["void", ["ptr"]],
411 "glVertex3s" => ["void", ["long", "long", "long"]],
412 "glVertex3sv" => ["void", ["ptr"]],
413 "glVertex4d" => ["void", ["double", "double", "double", "double"]],
414 "glVertex4dv" => ["void", ["ptr"]],
415 "glVertex4f" => ["void", ["long", "long", "long", "long"]],
416 "glVertex4fv" => ["void", ["ptr"]],
417 "glVertex4i" => ["void", ["long", "long", "long", "long"]],
418 "glVertex4iv" => ["void", ["ptr"]],
419 "glVertex4s" => ["void", ["long", "long", "long", "long"]],
420 "glVertex4sv" => ["void", ["ptr"]],
421 "glVertexPointer" => ["void", ["long", "long", "long", "ptr"]],
422 "glViewport" => ["void", ["long", "long", "long", "long"]],
423 "wglCopyContext" => ["long", ["long", "long", "long"]],
424 "wglCreateContext" => ["long", ["long"]],
425 "wglCreateLayerContext" => ["long", ["long", "long"]],
426 "wglDeleteContext" => ["long", ["long"]],
427 "wglDescribeLayerPlane" => ["long", ["long", "long", "long", "long", "ptr"]],
428 "wglGetCurrentContext" => ["long", []],
429 "wglGetCurrentDC" => ["long", []],
430 "wglGetLayerPaletteEntries" => ["long", ["long", "long", "long", "long", "ptr"]],
431 "wglGetProcAddress" => ["ptr", ["str"]],
432 "wglMakeCurrent" => ["long", ["long", "long"]],
433 "wglRealizeLayerPalette" => ["long", ["long", "long", "long"]],
434 "wglSetLayerPaletteEntries" => ["long", ["long", "long", "long", "long", "ptr"]],
435 "wglShareLists" => ["long", ["long", "long"]],
436 "wglSwapLayerBuffers" => ["long", ["long", "long"]],
437 "wglUseFontBitmapsA" => ["long", ["long", "long", "long", "long"]],
438 "wglUseFontOutlinesA" => ["long", ["long", "long", "long", "long", "long", "long", "long", "ptr"]]
441 &wine::declare("opengl32",%$module_declarations);
442 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));