home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Action / TumikiFighters / tf0_2.exe / tf / import / openglu.d < prev    next >
Text File  |  2004-04-03  |  16KB  |  513 lines

  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;
  512.  
  513.