alternative to assert
[gtkD.git] / srcgl / lib / glu.d
blobbdfcafc6c1e2855e02ba72f83dfc944572ed2219
1 /*
2 * This file is part of duit.
4 * duit is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; either version 2.1 of the License, or
7 * (at your option) any later version.
9 * duit is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with duit; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 // generated automatically - do not change
20 // find conversion definition on APILookup.txt
21 // implement new conversion functionalities on the wrap.utils pakage
24 module lib.glu;
27 private import std.stdio;
28 private import glgdk.glgdktypes;
29 private import lib.Loader;
30 private import lib.paths;
33 ** License Applicability. Except to the extent portions of this file are
34 ** made subject to an alternative license as permitted in the SGI Free
35 ** Software License B, Version 1.1 (the "License"), the contents of this
36 ** file are subject only to the provisions of the License. You may not use
37 ** this file except in compliance with the License. You may obtain a copy
38 ** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
39 ** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
40 **
41 ** http://oss.sgi.com/projects/FreeB
42 **
43 ** Note that, as provided in the License, the Software is distributed on an
44 ** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
45 ** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
46 ** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
47 ** PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
48 **
49 ** Original Code. The Original Code is: OpenGL Sample Implementation,
50 ** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
51 ** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
52 ** Copyright in any portions created by third parties is as indicated
53 ** elsewhere herein. All Rights Reserved.
54 **
55 ** Additional Notice Provisions: This software was created using the
56 ** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has
57 ** not been independently verified as being compliant with the OpenGL(R)
58 ** version 1.2.1 Specification.
61 //#ifndef __glu_h__
62 //#define __glu_h__
64 //#if defined(USE_MGL_NAMESPACE)
65 //#include "glu_mangle.h"
66 //#endif
68 import lib.gl;
73 /*************************************************************/
75 /* Extensions */
76 const GLU_EXT_object_space_tess = 1;
78 const GLU_EXT_nurbs_tessellator = 1;
79 /* Boolean */
80 const GLU_FALSE = 0;
82 const GLU_TRUE = 1;
83 /* Version */
84 const GLU_VERSION_1_1 = 1;
85 const GLU_VERSION_1_2 = 1;
87 const GLU_VERSION_1_3 = 1;
88 /* StringName */
89 const GLU_VERSION = 100800;
91 const GLU_EXTENSIONS = 100801;
92 /* ErrorCode */
93 const GLU_INVALID_ENUM = 100900;
94 const GLU_INVALID_VALUE = 100901;
95 const GLU_OUT_OF_MEMORY = 100902;
96 const GLU_INCOMPATIBLE_GL_VERSION = 100903;
98 const GLU_INVALID_OPERATION = 100904;
99 /* NurbsDisplay */
100 /* GLU_FILL */
101 const GLU_OUTLINE_POLYGON = 100240;
103 const GLU_OUTLINE_PATCH = 100241;
104 /* NurbsCallback */
105 const GLU_NURBS_ERROR = 100103;
106 const GLU_ERROR = 100103;
107 const GLU_NURBS_BEGIN = 100164;
108 const GLU_NURBS_BEGIN_EXT = 100164;
109 const GLU_NURBS_VERTEX = 100165;
110 const GLU_NURBS_VERTEX_EXT = 100165;
111 const GLU_NURBS_NORMAL = 100166;
112 const GLU_NURBS_NORMAL_EXT = 100166;
113 const GLU_NURBS_COLOR = 100167;
114 const GLU_NURBS_COLOR_EXT = 100167;
115 const GLU_NURBS_TEXTURE_COORD = 100168;
116 const GLU_NURBS_TEX_COORD_EXT = 100168;
117 const GLU_NURBS_END = 100169;
118 const GLU_NURBS_END_EXT = 100169;
119 const GLU_NURBS_BEGIN_DATA = 100170;
120 const GLU_NURBS_BEGIN_DATA_EXT = 100170;
121 const GLU_NURBS_VERTEX_DATA = 100171;
122 const GLU_NURBS_VERTEX_DATA_EXT = 100171;
123 const GLU_NURBS_NORMAL_DATA = 100172;
124 const GLU_NURBS_NORMAL_DATA_EXT = 100172;
125 const GLU_NURBS_COLOR_DATA = 100173;
126 const GLU_NURBS_COLOR_DATA_EXT = 100173;
127 const GLU_NURBS_TEXTURE_COORD_DATA = 100174;
128 const GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
129 const GLU_NURBS_END_DATA = 100175;
131 const GLU_NURBS_END_DATA_EXT = 100175;
132 /* NurbsError */
133 const GLU_NURBS_ERROR1 = 100251;
134 const GLU_NURBS_ERROR2 = 100252;
135 const GLU_NURBS_ERROR3 = 100253;
136 const GLU_NURBS_ERROR4 = 100254;
137 const GLU_NURBS_ERROR5 = 100255;
138 const GLU_NURBS_ERROR6 = 100256;
139 const GLU_NURBS_ERROR7 = 100257;
140 const GLU_NURBS_ERROR8 = 100258;
141 const GLU_NURBS_ERROR9 = 100259;
142 const GLU_NURBS_ERROR10 = 100260;
143 const GLU_NURBS_ERROR11 = 100261;
144 const GLU_NURBS_ERROR12 = 100262;
145 const GLU_NURBS_ERROR13 = 100263;
146 const GLU_NURBS_ERROR14 = 100264;
147 const GLU_NURBS_ERROR15 = 100265;
148 const GLU_NURBS_ERROR16 = 100266;
149 const GLU_NURBS_ERROR17 = 100267;
150 const GLU_NURBS_ERROR18 = 100268;
151 const GLU_NURBS_ERROR19 = 100269;
152 const GLU_NURBS_ERROR20 = 100270;
153 const GLU_NURBS_ERROR21 = 100271;
154 const GLU_NURBS_ERROR22 = 100272;
155 const GLU_NURBS_ERROR23 = 100273;
156 const GLU_NURBS_ERROR24 = 100274;
157 const GLU_NURBS_ERROR25 = 100275;
158 const GLU_NURBS_ERROR26 = 100276;
159 const GLU_NURBS_ERROR27 = 100277;
160 const GLU_NURBS_ERROR28 = 100278;
161 const GLU_NURBS_ERROR29 = 100279;
162 const GLU_NURBS_ERROR30 = 100280;
163 const GLU_NURBS_ERROR31 = 100281;
164 const GLU_NURBS_ERROR32 = 100282;
165 const GLU_NURBS_ERROR33 = 100283;
166 const GLU_NURBS_ERROR34 = 100284;
167 const GLU_NURBS_ERROR35 = 100285;
168 const GLU_NURBS_ERROR36 = 100286;
170 const GLU_NURBS_ERROR37 = 100287;
171 /* NurbsProperty */
172 const GLU_AUTO_LOAD_MATRIX = 100200;
173 const GLU_CULLING = 100201;
174 const GLU_SAMPLING_TOLERANCE = 100203;
175 const GLU_DISPLAY_MODE = 100204;
176 const GLU_PARAMETRIC_TOLERANCE = 100202;
177 const GLU_SAMPLING_METHOD = 100205;
178 const GLU_U_STEP = 100206;
179 const GLU_V_STEP = 100207;
180 const GLU_NURBS_MODE = 100160;
181 const GLU_NURBS_MODE_EXT = 100160;
182 const GLU_NURBS_TESSELLATOR = 100161;
183 const GLU_NURBS_TESSELLATOR_EXT = 100161;
184 const GLU_NURBS_RENDERER = 100162;
186 const GLU_NURBS_RENDERER_EXT = 100162;
187 /* NurbsSampling */
188 const GLU_OBJECT_PARAMETRIC_ERROR = 100208;
189 const GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
190 const GLU_OBJECT_PATH_LENGTH = 100209;
191 const GLU_OBJECT_PATH_LENGTH_EXT = 100209;
192 const GLU_PATH_LENGTH = 100215;
193 const GLU_PARAMETRIC_ERROR = 100216;
195 const GLU_DOMAIN_DISTANCE = 100217;
196 /* NurbsTrim */
197 const GLU_MAP1_TRIM_2 = 100210;
199 const GLU_MAP1_TRIM_3 = 100211;
200 /* QuadricDrawStyle */
201 const GLU_POINT = 100010;
202 const GLU_LINE = 100011;
203 const GLU_FILL = 100012;
205 const GLU_SILHOUETTE = 100013;
206 /* QuadricCallback */
207 /* GLU_ERROR */
209 /* QuadricNormal */
210 const GLU_SMOOTH = 100000;
211 const GLU_FLAT = 100001;
213 const GLU_NONE = 100002;
214 /* QuadricOrientation */
215 const GLU_OUTSIDE = 100020;
217 const GLU_INSIDE = 100021;
218 /* TessCallback */
219 const GLU_TESS_BEGIN = 100100;
220 const GLU_BEGIN = 100100;
221 const GLU_TESS_VERTEX = 100101;
222 const GLU_VERTEX = 100101;
223 const GLU_TESS_END = 100102;
224 const GLU_END = 100102;
225 const GLU_TESS_ERROR = 100103;
226 const GLU_TESS_EDGE_FLAG = 100104;
227 const GLU_EDGE_FLAG = 100104;
228 const GLU_TESS_COMBINE = 100105;
229 const GLU_TESS_BEGIN_DATA = 100106;
230 const GLU_TESS_VERTEX_DATA = 100107;
231 const GLU_TESS_END_DATA = 100108;
232 const GLU_TESS_ERROR_DATA = 100109;
233 const GLU_TESS_EDGE_FLAG_DATA = 100110;
235 const GLU_TESS_COMBINE_DATA = 100111;
236 /* TessContour */
237 const GLU_CW = 100120;
238 const GLU_CCW = 100121;
239 const GLU_INTERIOR = 100122;
240 const GLU_EXTERIOR = 100123;
242 const GLU_UNKNOWN = 100124;
243 /* TessProperty */
244 const GLU_TESS_WINDING_RULE = 100140;
245 const GLU_TESS_BOUNDARY_ONLY = 100141;
247 const GLU_TESS_TOLERANCE = 100142;
248 /* TessError */
249 const GLU_TESS_ERROR1 = 100151;
250 const GLU_TESS_ERROR2 = 100152;
251 const GLU_TESS_ERROR3 = 100153;
252 const GLU_TESS_ERROR4 = 100154;
253 const GLU_TESS_ERROR5 = 100155;
254 const GLU_TESS_ERROR6 = 100156;
255 const GLU_TESS_ERROR7 = 100157;
256 const GLU_TESS_ERROR8 = 100158;
257 const GLU_TESS_MISSING_BEGIN_POLYGON = 100151;
258 const GLU_TESS_MISSING_BEGIN_CONTOUR = 100152;
259 const GLU_TESS_MISSING_END_POLYGON = 100153;
260 const GLU_TESS_MISSING_END_CONTOUR = 100154;
261 const GLU_TESS_COORD_TOO_LARGE = 100155;
263 const GLU_TESS_NEED_COMBINE_CALLBACK = 100156;
264 /* TessWinding */
265 const GLU_TESS_WINDING_ODD = 100130;
266 const GLU_TESS_WINDING_NONZERO = 100131;
267 const GLU_TESS_WINDING_POSITIVE = 100132;
268 const GLU_TESS_WINDING_NEGATIVE = 100133;
270 const GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
271 /*************************************************************/
274 //#ifdef __cplusplus
275 //class GLUnurbs;
276 //class GLUquadric;
277 //class GLUtesselator;
278 //#else
279 //#endif
281 extern (C):
282 alias int GLUnurbs;
283 alias int GLUquadric;
284 alias int GLUtesselator;
285 alias GLUtesselator GLUtriangulatorObj;
288 const GLU_TESS_MAX_COORD = 1.0e150;
289 /* Internal convenience typedefs */
290 alias void function()_GLUfuncptr;
293 extern(C)
296 void gluBeginCurve(GLUnurbs *nurb);
297 void gluBeginPolygon(GLUtesselator *tess);
298 void gluBeginSurface(GLUnurbs *nurb);
299 void gluBeginTrim(GLUnurbs *nurb);
300 GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data);
301 GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, void *data);
302 GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data);
303 GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, void *data);
304 GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, void *data);
305 GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void *data);
306 GLboolean gluCheckExtension(GLubyte *extName, GLubyte *extString);
307 void gluCylinder(GLUquadric *quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks);
308 void gluDeleteNurbsRenderer(GLUnurbs *nurb);
309 void gluDeleteQuadric(GLUquadric *quad);
310 void gluDeleteTess(GLUtesselator *tess);
311 void gluDisk(GLUquadric *quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops);
312 void gluEndCurve(GLUnurbs *nurb);
313 void gluEndPolygon(GLUtesselator *tess);
314 void gluEndSurface(GLUnurbs *nurb);
315 void gluEndTrim(GLUnurbs *nurb);
316 GLubyte * gluErrorString(GLenum error);
317 void gluGetNurbsProperty(GLUnurbs *nurb, GLenum property, GLfloat *data);
318 GLubyte * gluGetString(GLenum name);
319 void gluGetTessProperty(GLUtesselator *tess, GLenum which, GLdouble *data);
320 void gluLoadSamplingMatrices(GLUnurbs *nurb, GLfloat *model, GLfloat *perspective, GLint *view);
321 void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
322 GLUnurbs * gluNewNurbsRenderer();
323 GLUquadric * gluNewQuadric();
324 GLUtesselator * gluNewTess();
325 void gluNextContour(GLUtesselator *tess, GLenum type);
326 void gluNurbsCallback(GLUnurbs *nurb, GLenum which, _GLUfuncptr CallBackFunc);
327 void gluNurbsCallbackData(GLUnurbs *nurb, GLvoid *userData);
328 void gluNurbsCallbackDataEXT(GLUnurbs *nurb, GLvoid *userData);
329 void gluNurbsCurve(GLUnurbs *nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type);
330 void gluNurbsProperty(GLUnurbs *nurb, GLenum property, GLfloat value);
331 void gluNurbsSurface(GLUnurbs *nurb, GLint sKnotCount, GLfloat *sKnots, GLint tKnotCount, GLfloat *tKnots, GLint sStride, GLint tStride, GLfloat *control, GLint sOrder, GLint tOrder, GLenum type);
332 void gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top);
333 void gluPartialDisk(GLUquadric *quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep);
334 void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
335 void gluPickMatrix(GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport);
336 GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ, GLdouble *model, GLdouble *proj, GLint *view, GLdouble *winX, GLdouble *winY, GLdouble *winZ);
337 void gluPwlCurve(GLUnurbs *nurb, GLint count, GLfloat *data, GLint stride, GLenum type);
338 void gluQuadricCallback(GLUquadric *quad, GLenum which, _GLUfuncptr CallBackFunc);
339 void gluQuadricDrawStyle(GLUquadric *quad, GLenum draw);
340 void gluQuadricNormals(GLUquadric *quad, GLenum normal);
341 void gluQuadricOrientation(GLUquadric *quad, GLenum orientation);
342 void gluQuadricTexture(GLUquadric *quad, GLboolean texture);
343 GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid *dataOut);
344 void gluSphere(GLUquadric *quad, GLdouble radius, GLint slices, GLint stacks);
345 void gluTessBeginContour(GLUtesselator *tess);
346 void gluTessBeginPolygon(GLUtesselator *tess, GLvoid *data);
347 void gluTessCallback(GLUtesselator *tess, GLenum which, _GLUfuncptr CallBackFunc);
348 void gluTessEndContour(GLUtesselator *tess);
349 void gluTessEndPolygon(GLUtesselator *tess);
350 void gluTessNormal(GLUtesselator *tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
351 void gluTessProperty(GLUtesselator *tess, GLenum which, GLdouble data);
352 void gluTessVertex(GLUtesselator *tess, GLdouble *location, GLvoid *data);
353 GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble *model, GLdouble *proj, GLint *view, GLdouble *objX, GLdouble *objY, GLdouble *objZ);
354 GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, GLdouble *model, GLdouble *proj, GLint *view, GLdouble nearVal, GLdouble farVal, GLdouble *objX, GLdouble *objY, GLdouble *objZ, GLdouble *objW);
355 } // extern(C)
358 Symbol[] GLULinks =
361 { "gluBeginCurve", cast(void**)& gluBeginCurve},
362 { "gluBeginPolygon", cast(void**)& gluBeginPolygon},
363 { "gluBeginSurface", cast(void**)& gluBeginSurface},
364 { "gluBeginTrim", cast(void**)& gluBeginTrim},
365 { "gluBuild1DMipmapLevels", cast(void**)& gluBuild1DMipmapLevels},
366 { "gluBuild1DMipmaps", cast(void**)& gluBuild1DMipmaps},
367 { "gluBuild2DMipmapLevels", cast(void**)& gluBuild2DMipmapLevels},
368 { "gluBuild2DMipmaps", cast(void**)& gluBuild2DMipmaps},
369 { "gluBuild3DMipmapLevels", cast(void**)& gluBuild3DMipmapLevels},
370 { "gluBuild3DMipmaps", cast(void**)& gluBuild3DMipmaps},
371 { "gluCheckExtension", cast(void**)& gluCheckExtension},
372 { "gluCylinder", cast(void**)& gluCylinder},
373 { "gluDeleteNurbsRenderer", cast(void**)& gluDeleteNurbsRenderer},
374 { "gluDeleteQuadric", cast(void**)& gluDeleteQuadric},
375 { "gluDeleteTess", cast(void**)& gluDeleteTess},
376 { "gluDisk", cast(void**)& gluDisk},
377 { "gluEndCurve", cast(void**)& gluEndCurve},
378 { "gluEndPolygon", cast(void**)& gluEndPolygon},
379 { "gluEndSurface", cast(void**)& gluEndSurface},
380 { "gluEndTrim", cast(void**)& gluEndTrim},
381 { "gluErrorString", cast(void**)& gluErrorString},
382 { "gluGetNurbsProperty", cast(void**)& gluGetNurbsProperty},
383 { "gluGetString", cast(void**)& gluGetString},
384 { "gluGetTessProperty", cast(void**)& gluGetTessProperty},
385 { "gluLoadSamplingMatrices", cast(void**)& gluLoadSamplingMatrices},
386 { "gluLookAt", cast(void**)& gluLookAt},
387 { "gluNewNurbsRenderer", cast(void**)& gluNewNurbsRenderer},
388 { "gluNewQuadric", cast(void**)& gluNewQuadric},
389 { "gluNewTess", cast(void**)& gluNewTess},
390 { "gluNextContour", cast(void**)& gluNextContour},
391 { "gluNurbsCallback", cast(void**)& gluNurbsCallback},
392 { "gluNurbsCallbackData", cast(void**)& gluNurbsCallbackData},
393 { "gluNurbsCallbackDataEXT", cast(void**)& gluNurbsCallbackDataEXT},
394 { "gluNurbsCurve", cast(void**)& gluNurbsCurve},
395 { "gluNurbsProperty", cast(void**)& gluNurbsProperty},
396 { "gluNurbsSurface", cast(void**)& gluNurbsSurface},
397 { "gluOrtho2D", cast(void**)& gluOrtho2D},
398 { "gluPartialDisk", cast(void**)& gluPartialDisk},
399 { "gluPerspective", cast(void**)& gluPerspective},
400 { "gluPickMatrix", cast(void**)& gluPickMatrix},
401 { "gluProject", cast(void**)& gluProject},
402 { "gluPwlCurve", cast(void**)& gluPwlCurve},
403 { "gluQuadricCallback", cast(void**)& gluQuadricCallback},
404 { "gluQuadricDrawStyle", cast(void**)& gluQuadricDrawStyle},
405 { "gluQuadricNormals", cast(void**)& gluQuadricNormals},
406 { "gluQuadricOrientation", cast(void**)& gluQuadricOrientation},
407 { "gluQuadricTexture", cast(void**)& gluQuadricTexture},
408 { "gluScaleImage", cast(void**)& gluScaleImage},
409 { "gluSphere", cast(void**)& gluSphere},
410 { "gluTessBeginContour", cast(void**)& gluTessBeginContour},
411 { "gluTessBeginPolygon", cast(void**)& gluTessBeginPolygon},
412 { "gluTessCallback", cast(void**)& gluTessCallback},
413 { "gluTessEndContour", cast(void**)& gluTessEndContour},
414 { "gluTessEndPolygon", cast(void**)& gluTessEndPolygon},
415 { "gluTessNormal", cast(void**)& gluTessNormal},
416 { "gluTessProperty", cast(void**)& gluTessProperty},
417 { "gluTessVertex", cast(void**)& gluTessVertex},
418 { "gluUnProject", cast(void**)& gluUnProject},
419 { "gluUnProject4", cast(void**)& gluUnProject4},