root/trunk/openglu.d

Revision 8, 15.4 kB (checked in by jjr, 4 years ago)

Added opengl, openglu, and win32 *.def bindings

Line 
1 import opengl;
2
3 version (Win32) {
4     extern(Windows):
5 }
6 version (linux) {
7     extern(C):
8 }
9
10 GLubyte* gluErrorString (
11     GLenum   errCode);
12
13 wchar* gluErrorUnicodeStringEXT (
14     GLenum   errCode);
15
16 GLubyte* gluGetString (
17     GLenum   name);
18
19 void gluOrtho2D (
20     GLdouble left,
21     GLdouble right,
22     GLdouble bottom,
23     GLdouble top);
24
25 void gluPerspective (
26     GLdouble fovy,
27     GLdouble aspect,
28     GLdouble zNear,
29     GLdouble zFar);
30
31 void gluPickMatrix (
32     GLdouble x,
33     GLdouble y,
34     GLdouble width,
35     GLdouble height,
36     GLint[4]    viewport);
37
38 void gluLookAt (
39     GLdouble eyex,
40     GLdouble eyey,
41     GLdouble eyez,
42     GLdouble centerx,
43     GLdouble centery,
44     GLdouble centerz,
45     GLdouble upx,
46     GLdouble upy,
47     GLdouble upz);
48
49 int gluProject (
50     GLdouble        objx,
51     GLdouble        objy,
52     GLdouble        objz, 
53     GLdouble[16]    modelMatrix,
54     GLdouble[16]    projMatrix,
55     GLint[4]        viewport,
56     GLdouble        *winx,
57     GLdouble        *winy,
58     GLdouble        *winz);
59
60 int gluUnProject (
61     GLdouble       winx,
62     GLdouble       winy,
63     GLdouble       winz,
64     GLdouble[16]   modelMatrix,
65     GLdouble[16]   projMatrix,
66     GLint[4]       viewport,
67     GLdouble       *objx,
68     GLdouble       *objy,
69     GLdouble       *objz);
70
71
72 int gluScaleImage (
73     GLenum      format,
74     GLint       widthin,
75     GLint       heightin,
76     GLenum      typein,
77     void  *datain,
78     GLint       widthout,
79     GLint       heightout,
80     GLenum      typeout,
81     void        *dataout);
82
83
84 int gluBuild1DMipmaps (
85     GLenum      target,
86     GLint       components,
87     GLint       width,
88     GLenum      format,
89     GLenum      type,
90     void  *data);
91
92 int gluBuild2DMipmaps (
93     GLenum      target,
94     GLint       components,
95     GLint       width,
96     GLint       height,
97     GLenum      format,
98     GLenum      type,
99     void  *data);
100
101 struct GLUnurbs { }
102 struct GLUquadric { }
103 struct GLUtesselator { }
104
105 /* backwards compatibility: */
106 alias GLUnurbs GLUnurbsObj;
107 alias GLUquadric GLUquadricObj;
108 alias GLUtesselator GLUtesselatorObj;
109 alias GLUtesselator GLUtriangulatorObj;
110
111 GLUquadric* gluNewQuadric ();
112
113 void gluDeleteQuadric (
114     GLUquadric          *state);
115
116 void gluQuadricNormals (
117     GLUquadric          *quadObject,
118     GLenum              normals);
119
120 void gluQuadricTexture (
121     GLUquadric          *quadObject,
122     GLboolean           textureCoords);
123
124 void gluQuadricOrientation (
125     GLUquadric          *quadObject,
126     GLenum              orientation);
127
128 void gluQuadricDrawStyle (
129     GLUquadric          *quadObject,
130     GLenum              drawStyle);
131
132 void gluCylinder (
133     GLUquadric          *qobj,
134     GLdouble            baseRadius,
135     GLdouble            topRadius,
136     GLdouble            height,
137     GLint               slices,
138     GLint               stacks);
139
140 void gluDisk (
141     GLUquadric          *qobj,
142     GLdouble            innerRadius,
143     GLdouble            outerRadius,
144     GLint               slices,
145     GLint               loops);
146
147 void gluPartialDisk (
148     GLUquadric          *qobj,
149     GLdouble            innerRadius,
150     GLdouble            outerRadius,
151     GLint               slices,
152     GLint               loops,
153     GLdouble            startAngle,
154     GLdouble            sweepAngle);
155
156 void gluSphere (
157     GLUquadric          *qobj,
158     GLdouble            radius,
159     GLint               slices,
160     GLint               stacks);
161
162 void gluQuadricCallback (
163     GLUquadric          *qobj,
164     GLenum              which,
165     void                (* fn)());
166
167 GLUtesselator*  gluNewTess(         
168     );
169
170 void  gluDeleteTess(       
171     GLUtesselator       *tess );
172
173 void  gluTessBeginPolygon(
174     GLUtesselator       *tess,
175     void                *polygon_data );
176
177 void  gluTessBeginContour(
178     GLUtesselator       *tess );
179
180 void  gluTessVertex(       
181     GLUtesselator       *tess,
182     GLdouble[3]         coords,
183     void                *data );
184
185 void  gluTessEndContour(   
186     GLUtesselator       *tess );
187
188 void  gluTessEndPolygon(   
189     GLUtesselator       *tess );
190
191 void  gluTessProperty(     
192     GLUtesselator       *tess,
193     GLenum              which,
194     GLdouble            value );
195  
196 void  gluTessNormal(       
197     GLUtesselator       *tess,
198     GLdouble            x,
199     GLdouble            y,
200     GLdouble            z );
201
202 void  gluTessCallback(     
203     GLUtesselator       *tess,
204     GLenum              which,
205     void                ( *fn)());
206
207 void  gluGetTessProperty( 
208     GLUtesselator       *tess,
209     GLenum              which,
210     GLdouble            *value );
211  
212 GLUnurbs* gluNewNurbsRenderer ();
213
214 void gluDeleteNurbsRenderer (
215     GLUnurbs            *nobj);
216
217 void gluBeginSurface (
218     GLUnurbs            *nobj);
219
220 void gluBeginCurve (
221     GLUnurbs            *nobj);
222
223 void gluEndCurve (
224     GLUnurbs            *nobj);
225
226 void gluEndSurface (
227     GLUnurbs            *nobj);
228
229 void gluBeginTrim (
230     GLUnurbs            *nobj);
231
232 void gluEndTrim (
233     GLUnurbs            *nobj);
234
235 void gluPwlCurve (
236     GLUnurbs            *nobj,
237     GLint               count,
238     GLfloat             *array,
239     GLint               stride,
240     GLenum              type);
241
242 void gluNurbsCurve (
243     GLUnurbs            *nobj,
244     GLint               nknots,
245     GLfloat             *knot,
246     GLint               stride,
247     GLfloat             *ctlarray,
248     GLint               order,
249     GLenum              type);
250
251 void 
252 gluNurbsSurface(    
253     GLUnurbs            *nobj,
254     GLint               sknot_count,
255     float               *sknot,
256     GLint               tknot_count,
257     GLfloat             *tknot,
258     GLint               s_stride,
259     GLint               t_stride,
260     GLfloat             *ctlarray,
261     GLint               sorder,
262     GLint               torder,
263     GLenum              type);
264
265 void 
266 gluLoadSamplingMatrices (
267     GLUnurbs            *nobj,
268     GLfloat[16]     modelMatrix,
269     GLfloat[16]     projMatrix,
270     GLint[4]        viewport );
271
272 void 
273 gluNurbsProperty (
274     GLUnurbs            *nobj,
275     GLenum              property,
276     GLfloat             value );
277
278 void 
279 gluGetNurbsProperty (
280     GLUnurbs            *nobj,
281     GLenum              property,
282     GLfloat             *value );
283
284 void 
285 gluNurbsCallback (
286     GLUnurbs            *nobj,
287     GLenum              which,
288     void                (* fn)() );
289
290
291 /****            function prototypes    ****/
292
293 /* gluQuadricCallback */
294 typedef void (* GLUquadricErrorProc) (GLenum);
295
296 /* gluTessCallback */
297 typedef void (* GLUtessBeginProc)        (GLenum);
298 typedef void (* GLUtessEdgeFlagProc)     (GLboolean);
299 typedef void (* GLUtessVertexProc)       (void *);
300 typedef void (* GLUtessEndProc)          ();
301 typedef void (* GLUtessErrorProc)        (GLenum);
302 typedef void (* GLUtessCombineProc)      (GLdouble[3],
303                                                   void*[4],
304                                                   GLfloat[4],
305                                                   void** );
306 typedef void (* GLUtessBeginDataProc)    (GLenum, void *);
307 typedef void (* GLUtessEdgeFlagDataProc) (GLboolean, void *);
308 typedef void (* GLUtessVertexDataProc)   (void *, void *);
309 typedef void (* GLUtessEndDataProc)      (void *);
310 typedef void (* GLUtessErrorDataProc)    (GLenum, void *);
311 typedef void (* GLUtessCombineDataProc)  (GLdouble[3],
312                                                   void*[4],
313                                                   GLfloat[4],
314                                                   void**,
315                                                   void* );
316
317 /* gluNurbsCallback */
318 typedef void (* GLUnurbsErrorProc)   (GLenum);
319
320
321 /****           Generic constants               ****/
322
323 /* Version */
324 const int GLU_VERSION_1_1               = 1;
325 const int GLU_VERSION_1_2               = 1;
326
327 /* Errors: (return value 0 = no error) */
328 const int GLU_INVALID_ENUM      = 100900;
329 const int GLU_INVALID_VALUE     = 100901;
330 const int GLU_OUT_OF_MEMORY     = 100902;
331 const int GLU_INCOMPATIBLE_GL_VERSION   = 100903;
332
333 /* StringName */
334 const int GLU_VERSION           = 100800;
335 const int GLU_EXTENSIONS        = 100801;
336
337 /* Boolean */
338 const int GLU_TRUE              = GL_TRUE;
339 const int GLU_FALSE             = GL_FALSE;
340
341
342 /****           Quadric constants               ****/
343
344 /* QuadricNormal */
345 const int GLU_SMOOTH            = 100000;
346 const int GLU_FLAT              = 100001;
347 const int GLU_NONE              = 100002;
348
349 /* QuadricDrawStyle */
350 const int GLU_POINT             = 100010;
351 const int GLU_LINE              = 100011;
352 const int GLU_FILL              = 100012;
353 const int GLU_SILHOUETTE        = 100013;
354
355 /* QuadricOrientation */
356 const int GLU_OUTSIDE           = 100020;
357 const int GLU_INSIDE            = 100021;
358
359 /*  types: */
360 /*      GLU_ERROR               100103 */
361
362
363 /****           Tesselation constants           ****/
364
365 const real GLU_TESS_MAX_COORD            = 1.0e150;
366
367 /* TessProperty */
368 const int GLU_TESS_WINDING_RULE         = 100140;
369 const int GLU_TESS_BOUNDARY_ONLY        = 100141;
370 const int GLU_TESS_TOLERANCE            = 100142;
371
372 /* TessWinding */
373 const int GLU_TESS_WINDING_ODD          = 100130;
374 const int GLU_TESS_WINDING_NONZERO      = 100131;
375 const int GLU_TESS_WINDING_POSITIVE     = 100132;
376 const int GLU_TESS_WINDING_NEGATIVE     = 100133;
377 const int GLU_TESS_WINDING_ABS_GEQ_TWO  = 100134;
378
379 /* TessCallback */
380 const int GLU_TESS_BEGIN        = 100100;  /* void (*)(GLenum    type)  */
381 const int GLU_TESS_VERTEX       = 100101;  /* void (*)(void      *data) */
382 const int GLU_TESS_END          = 100102;  /* void (*)(void)            */
383 const int GLU_TESS_ERROR        = 100103;  /* void (*)(GLenum    errno) */
384 const int GLU_TESS_EDGE_FLAG    = 100104;  /* void (*)(GLboolean boundaryEdge)  */
385 const int GLU_TESS_COMBINE      = 100105;  /* void (*)(GLdouble  coords[3],
386                                                             void      *data[4],
387                                                             GLfloat   weight[4],
388                                                             void      **dataOut)     */
389 const int GLU_TESS_BEGIN_DATA   = 100106;  /* void (*)(GLenum    type, 
390                                                             void      *polygon_data) */
391 const int GLU_TESS_VERTEX_DATA  = 100107;  /* void (*)(void      *data,
392                                                             void      *polygon_data) */
393 const int GLU_TESS_END_DATA     = 100108;  /* void (*)(void      *polygon_data) */
394 const int GLU_TESS_ERROR_DATA   = 100109;  /* void (*)(GLenum    errno,
395                                                             void      *polygon_data) */
396 const int GLU_TESS_EDGE_FLAG_DATA = 100110;  /* void (*)(GLboolean boundaryEdge,
397                                                             void      *polygon_data) */
398 const int GLU_TESS_COMBINE_DATA = 100111; /* void (*)(GLdouble  coords[3],
399                                                             void      *data[4],
400                                                             GLfloat   weight[4],
401                                                             void      **dataOut,
402                                                             void      *polygon_data) */
403
404 /* TessError */
405 const int GLU_TESS_ERROR1   = 100151;
406 const int GLU_TESS_ERROR2   = 100152;
407 const int GLU_TESS_ERROR3   = 100153;
408 const int GLU_TESS_ERROR4   = 100154;
409 const int GLU_TESS_ERROR5   = 100155;
410 const int GLU_TESS_ERROR6   = 100156;
411 const int GLU_TESS_ERROR7   = 100157;
412 const int GLU_TESS_ERROR8   = 100158;
413
414 const int GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1;
415 const int GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2;
416 const int GLU_TESS_MISSING_END_POLYGON   = GLU_TESS_ERROR3;
417 const int GLU_TESS_MISSING_END_CONTOUR   = GLU_TESS_ERROR4;
418 const int GLU_TESS_COORD_TOO_LARGE       = GLU_TESS_ERROR5;
419 const int GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6;
420
421 /****           NURBS constants                 ****/
422
423 /* NurbsProperty */
424 const int GLU_AUTO_LOAD_MATRIX   = 100200;
425 const int GLU_CULLING            = 100201;
426 const int GLU_SAMPLING_TOLERANCE = 100203;
427 const int GLU_DISPLAY_MODE       = 100204;
428 const int GLU_PARAMETRIC_TOLERANCE      = 100202;
429 const int GLU_SAMPLING_METHOD           = 100205;
430 const int GLU_U_STEP                    = 100206;
431 const int GLU_V_STEP                    = 100207;
432
433 /* NurbsSampling */
434 const int GLU_PATH_LENGTH               = 100215;
435 const int GLU_PARAMETRIC_ERROR          = 100216;
436 const int GLU_DOMAIN_DISTANCE           = 100217;
437
438
439 /* NurbsTrim */
440 const int GLU_MAP1_TRIM_2       = 100210;
441 const int GLU_MAP1_TRIM_3       = 100211;
442
443 /* NurbsDisplay */
444 /*      GLU_FILL                100012 */
445 const int GLU_OUTLINE_POLYGON   = 100240;
446 const int GLU_OUTLINE_PATCH     = 100241;
447
448 /* NurbsCallback */
449 /*      GLU_ERROR               100103 */
450
451 /* NurbsErrors */
452 const int GLU_NURBS_ERROR1      = 100251;
453 const int GLU_NURBS_ERROR2      = 100252;
454 const int GLU_NURBS_ERROR3      = 100253;
455 const int GLU_NURBS_ERROR4      = 100254;
456 const int GLU_NURBS_ERROR5      = 100255;
457 const int GLU_NURBS_ERROR6      = 100256;
458 const int GLU_NURBS_ERROR7      = 100257;
459 const int GLU_NURBS_ERROR8      = 100258;
460 const int GLU_NURBS_ERROR9      = 100259;
461 const int GLU_NURBS_ERROR10     = 100260;
462 const int GLU_NURBS_ERROR11     = 100261;
463 const int GLU_NURBS_ERROR12     = 100262;
464 const int GLU_NURBS_ERROR13     = 100263;
465 const int GLU_NURBS_ERROR14     = 100264;
466 const int GLU_NURBS_ERROR15     = 100265;
467 const int GLU_NURBS_ERROR16     = 100266;
468 const int GLU_NURBS_ERROR17     = 100267;
469 const int GLU_NURBS_ERROR18     = 100268;
470 const int GLU_NURBS_ERROR19     = 100269;
471 const int GLU_NURBS_ERROR20     = 100270;
472 const int GLU_NURBS_ERROR21     = 100271;
473 const int GLU_NURBS_ERROR22     = 100272;
474 const int GLU_NURBS_ERROR23     = 100273;
475 const int GLU_NURBS_ERROR24     = 100274;
476 const int GLU_NURBS_ERROR25     = 100275;
477 const int GLU_NURBS_ERROR26     = 100276;
478 const int GLU_NURBS_ERROR27     = 100277;
479 const int GLU_NURBS_ERROR28     = 100278;
480 const int GLU_NURBS_ERROR29     = 100279;
481 const int GLU_NURBS_ERROR30     = 100280;
482 const int GLU_NURBS_ERROR31     = 100281;
483 const int GLU_NURBS_ERROR32     = 100282;
484 const int GLU_NURBS_ERROR33     = 100283;
485 const int GLU_NURBS_ERROR34     = 100284;
486 const int GLU_NURBS_ERROR35     = 100285;
487 const int GLU_NURBS_ERROR36     = 100286;
488 const int GLU_NURBS_ERROR37     = 100287;
489
490 /****           Backwards compatibility for old tesselator           ****/
491
492 void   gluBeginPolygon( GLUtesselator *tess );
493
494 void   gluNextContour(  GLUtesselator *tess,
495                                  GLenum        type );
496
497 void   gluEndPolygon(   GLUtesselator *tess );
498
499 /* Contours types -- obsolete! */
500 const int GLU_CW        = 100120;
501 const int GLU_CCW       = 100121;
502 const int GLU_INTERIOR  = 100122;
503 const int GLU_EXTERIOR  = 100123;
504 const int GLU_UNKNOWN   = 100124;
505
506 /* Names without "TESS_" prefix */
507 const int GLU_BEGIN     = GLU_TESS_BEGIN;
508 const int GLU_VERTEX    = GLU_TESS_VERTEX;
509 const int GLU_END       = GLU_TESS_END;
510 const int GLU_ERROR     = GLU_TESS_ERROR;
511 const int GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG;
Note: See TracBrowser for help on using the browser.