home *** CD-ROM | disk | FTP | other *** search
/ GameStar Special 2004 August / GSSH0804.iso / Action / Parsec47 / Parsec47.exe / p47 / import / openglu.d < prev    next >
Text File  |  2003-11-29  |  16KB  |  509 lines

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