123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- {
- * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
- * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice including the dates of first publication and
- * either this permission notice or a reference to
- * http://oss.sgi.com/projects/FreeB/
- * shall be included in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
- * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- * Except as contained in this notice, the name of Silicon Graphics, Inc.
- * shall not be used in advertising or otherwise to promote the sale, use or
- * other dealings in this Software without prior written authorization from
- * Silicon Graphics, Inc.
- }
- {$MACRO ON}
- {$MODE OBJFPC}
- {$IFDEF Windows}
- {$DEFINE extdecl := stdcall}
- {$ELSE}
- {$DEFINE extdecl := cdecl}
- {$ENDIF}
- {$IFDEF MORPHOS}
- {$INLINE ON}
- {$DEFINE GLU_UNIT}
- {$ENDIF}
- unit glu;
- interface
- {
- Automatically converted by H2Pas 1.0.0 from out.h
- The following command line parameters were used:
- -P
- -D
- -l
- glu.dll
- out
- -o
- glu.pp
- }
-
- uses
- SysUtils,
- {$IFDEF Windows}
- Windows,
- {$ELSE}
- {$IFDEF MORPHOS}
- TinyGL,
- {$ENDIF}
- {$ENDIF}
- GL;
- Const
- {$if defined(Windows)}
- GLU_Lib = 'glu32.dll';
- {$elseif defined(OS2)}
- GLU_Lib = 'opengl.dll';
- {$elseif defined(darwin)}
- GLU_LIB = '/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib';
- {$elseif defined(haiku) or defined(OpenBSD)}
- GLU_LIB = 'libGLU.so';
- {$elseif defined(MorphOS)}
- GLU_LIB = 'tinygl.library';
- {$else}
- GLU_LIB = 'libGLU.so.1';
- {$endif}
-
- type
- TViewPortArray = array [0..3] of GLint;
- T16dArray = array [0..15] of GLdouble;
- T3dArray = array [0..2] of GLdouble;
- T4pArray = array [0..3] of Pointer;
- T4fArray = array [0..3] of GLfloat;
- const
- GLU_EXT_object_space_tess = 1;
- GLU_EXT_nurbs_tessellator = 1;
- { Boolean }
- GLU_FALSE = 0;
- GLU_TRUE = 1;
- { Version }
- GLU_VERSION_1_1 = 1;
- GLU_VERSION_1_2 = 1;
- GLU_VERSION_1_3 = 1;
- { StringName }
- GLU_VERSION = 100800;
- GLU_EXTENSIONS = 100801;
- { ErrorCode }
- GLU_INVALID_ENUM = 100900;
- GLU_INVALID_VALUE = 100901;
- GLU_OUT_OF_MEMORY = 100902;
- GLU_INCOMPATIBLE_GL_VERSION = 100903;
- GLU_INVALID_OPERATION = 100904;
- { NurbsDisplay }
- { GLU_FILL }
- GLU_OUTLINE_POLYGON = 100240;
- GLU_OUTLINE_PATCH = 100241;
- { NurbsCallback }
- GLU_NURBS_ERROR = 100103;
- GLU_ERROR = 100103;
- GLU_NURBS_BEGIN = 100164;
- GLU_NURBS_BEGIN_EXT = 100164;
- GLU_NURBS_VERTEX = 100165;
- GLU_NURBS_VERTEX_EXT = 100165;
- GLU_NURBS_NORMAL = 100166;
- GLU_NURBS_NORMAL_EXT = 100166;
- GLU_NURBS_COLOR = 100167;
- GLU_NURBS_COLOR_EXT = 100167;
- GLU_NURBS_TEXTURE_COORD = 100168;
- GLU_NURBS_TEX_COORD_EXT = 100168;
- GLU_NURBS_END = 100169;
- GLU_NURBS_END_EXT = 100169;
- GLU_NURBS_BEGIN_DATA = 100170;
- GLU_NURBS_BEGIN_DATA_EXT = 100170;
- GLU_NURBS_VERTEX_DATA = 100171;
- GLU_NURBS_VERTEX_DATA_EXT = 100171;
- GLU_NURBS_NORMAL_DATA = 100172;
- GLU_NURBS_NORMAL_DATA_EXT = 100172;
- GLU_NURBS_COLOR_DATA = 100173;
- GLU_NURBS_COLOR_DATA_EXT = 100173;
- GLU_NURBS_TEXTURE_COORD_DATA = 100174;
- GLU_NURBS_TEX_COORD_DATA_EXT = 100174;
- GLU_NURBS_END_DATA = 100175;
- GLU_NURBS_END_DATA_EXT = 100175;
- { NurbsError }
- GLU_NURBS_ERROR1 = 100251;
- GLU_NURBS_ERROR2 = 100252;
- GLU_NURBS_ERROR3 = 100253;
- GLU_NURBS_ERROR4 = 100254;
- GLU_NURBS_ERROR5 = 100255;
- GLU_NURBS_ERROR6 = 100256;
- GLU_NURBS_ERROR7 = 100257;
- GLU_NURBS_ERROR8 = 100258;
- GLU_NURBS_ERROR9 = 100259;
- GLU_NURBS_ERROR10 = 100260;
- GLU_NURBS_ERROR11 = 100261;
- GLU_NURBS_ERROR12 = 100262;
- GLU_NURBS_ERROR13 = 100263;
- GLU_NURBS_ERROR14 = 100264;
- GLU_NURBS_ERROR15 = 100265;
- GLU_NURBS_ERROR16 = 100266;
- GLU_NURBS_ERROR17 = 100267;
- GLU_NURBS_ERROR18 = 100268;
- GLU_NURBS_ERROR19 = 100269;
- GLU_NURBS_ERROR20 = 100270;
- GLU_NURBS_ERROR21 = 100271;
- GLU_NURBS_ERROR22 = 100272;
- GLU_NURBS_ERROR23 = 100273;
- GLU_NURBS_ERROR24 = 100274;
- GLU_NURBS_ERROR25 = 100275;
- GLU_NURBS_ERROR26 = 100276;
- GLU_NURBS_ERROR27 = 100277;
- GLU_NURBS_ERROR28 = 100278;
- GLU_NURBS_ERROR29 = 100279;
- GLU_NURBS_ERROR30 = 100280;
- GLU_NURBS_ERROR31 = 100281;
- GLU_NURBS_ERROR32 = 100282;
- GLU_NURBS_ERROR33 = 100283;
- GLU_NURBS_ERROR34 = 100284;
- GLU_NURBS_ERROR35 = 100285;
- GLU_NURBS_ERROR36 = 100286;
- GLU_NURBS_ERROR37 = 100287;
- { NurbsProperty }
- GLU_AUTO_LOAD_MATRIX = 100200;
- GLU_CULLING = 100201;
- GLU_SAMPLING_TOLERANCE = 100203;
- GLU_DISPLAY_MODE = 100204;
- GLU_PARAMETRIC_TOLERANCE = 100202;
- GLU_SAMPLING_METHOD = 100205;
- GLU_U_STEP = 100206;
- GLU_V_STEP = 100207;
- GLU_NURBS_MODE = 100160;
- GLU_NURBS_MODE_EXT = 100160;
- GLU_NURBS_TESSELLATOR = 100161;
- GLU_NURBS_TESSELLATOR_EXT = 100161;
- GLU_NURBS_RENDERER = 100162;
- GLU_NURBS_RENDERER_EXT = 100162;
- { NurbsSampling }
- GLU_OBJECT_PARAMETRIC_ERROR = 100208;
- GLU_OBJECT_PARAMETRIC_ERROR_EXT = 100208;
- GLU_OBJECT_PATH_LENGTH = 100209;
- GLU_OBJECT_PATH_LENGTH_EXT = 100209;
- GLU_PATH_LENGTH = 100215;
- GLU_PARAMETRIC_ERROR = 100216;
- GLU_DOMAIN_DISTANCE = 100217;
- { NurbsTrim }
- GLU_MAP1_TRIM_2 = 100210;
- GLU_MAP1_TRIM_3 = 100211;
- { QuadricDrawStyle }
- GLU_POINT = 100010;
- GLU_LINE = 100011;
- GLU_FILL = 100012;
- GLU_SILHOUETTE = 100013;
- { QuadricCallback }
- { GLU_ERROR }
- { QuadricNormal }
- GLU_SMOOTH = 100000;
- GLU_FLAT = 100001;
- GLU_NONE = 100002;
- { QuadricOrientation }
- GLU_OUTSIDE = 100020;
- GLU_INSIDE = 100021;
- { TessCallback }
- GLU_TESS_BEGIN = 100100;
- GLU_BEGIN = 100100;
- GLU_TESS_VERTEX = 100101;
- GLU_VERTEX = 100101;
- GLU_TESS_END = 100102;
- GLU_END = 100102;
- GLU_TESS_ERROR = 100103;
- GLU_TESS_EDGE_FLAG = 100104;
- GLU_EDGE_FLAG = 100104;
- GLU_TESS_COMBINE = 100105;
- GLU_TESS_BEGIN_DATA = 100106;
- GLU_TESS_VERTEX_DATA = 100107;
- GLU_TESS_END_DATA = 100108;
- GLU_TESS_ERROR_DATA = 100109;
- GLU_TESS_EDGE_FLAG_DATA = 100110;
- GLU_TESS_COMBINE_DATA = 100111;
- { TessContour }
- GLU_CW = 100120;
- GLU_CCW = 100121;
- GLU_INTERIOR = 100122;
- GLU_EXTERIOR = 100123;
- GLU_UNKNOWN = 100124;
- { TessProperty }
- GLU_TESS_WINDING_RULE = 100140;
- GLU_TESS_BOUNDARY_ONLY = 100141;
- GLU_TESS_TOLERANCE = 100142;
- { TessError }
- GLU_TESS_ERROR1 = 100151;
- GLU_TESS_ERROR2 = 100152;
- GLU_TESS_ERROR3 = 100153;
- GLU_TESS_ERROR4 = 100154;
- GLU_TESS_ERROR5 = 100155;
- GLU_TESS_ERROR6 = 100156;
- GLU_TESS_ERROR7 = 100157;
- GLU_TESS_ERROR8 = 100158;
- GLU_TESS_MISSING_BEGIN_POLYGON = 100151;
- GLU_TESS_MISSING_BEGIN_CONTOUR = 100152;
- GLU_TESS_MISSING_END_POLYGON = 100153;
- GLU_TESS_MISSING_END_CONTOUR = 100154;
- GLU_TESS_COORD_TOO_LARGE = 100155;
- GLU_TESS_NEED_COMBINE_CALLBACK = 100156;
- { TessWinding }
- GLU_TESS_WINDING_ODD = 100130;
- GLU_TESS_WINDING_NONZERO = 100131;
- GLU_TESS_WINDING_POSITIVE = 100132;
- GLU_TESS_WINDING_NEGATIVE = 100133;
- GLU_TESS_WINDING_ABS_GEQ_TWO = 100134;
- const
- GLU_TESS_MAX_COORD = 1.0e150;
- {*********************************************************** }
-
- {$IFDEF FPC}
- {$PACKRECORDS C}
- {$ENDIF}
- Type
- GLUnurbs = record end;
- GLUquadric = record end;
- GLUtesselator = record end;
-
- PGLdouble = ^GLdouble;
- PGLfloat = ^GLfloat;
- PGLint = ^GLint;
- PGLubyte = PAnsiChar; //< this is only used for strings in GLU
- PGLUnurbs = ^GLUnurbs;
- PGLUquadric = ^GLUquadric;
- PGLUtesselator = ^GLUtesselator;
-
- GLUnurbsObj = GLUnurbs;
- GLUquadricObj = GLUquadric;
- GLUtesselatorObj = GLUtesselator;
- GLUtriangulatorObj = GLUtesselator;
- _GLUfuncptr = procedure ;extdecl;
- TCallback = _GLUfuncptr;
- {$IFDEF MORPHOS}
- { MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
- { systems, so its headers are included here. }
- {$INCLUDE tinyglh.inc}
- {$ELSE MORPHOS}
- var
- gluBeginCurve : procedure(nurb:PGLUnurbs);extdecl;
- gluBeginPolygon : procedure(tess:PGLUtesselator);extdecl;
- gluBeginSurface : procedure(nurb:PGLUnurbs);extdecl;
- gluBeginTrim : procedure(nurb:PGLUnurbs);extdecl;
- gluBuild1DMipmapLevels : function(target:GLenum; internalFormat:GLint; width:GLsizei; format:GLenum; _type:GLenum;
- level:GLint; base:GLint; max:GLint; data:pointer):GLint;extdecl;
- gluBuild1DMipmaps : function(target:GLenum; internalFormat:GLint; width:GLsizei; format:GLenum; _type:GLenum;
- data:pointer):GLint;extdecl;
- gluBuild2DMipmapLevels : function(target:GLenum; internalFormat:GLint; width:GLsizei; height:GLsizei; format:GLenum;
- _type:GLenum; level:GLint; base:GLint; max:GLint; data:pointer):GLint;extdecl;
- gluBuild2DMipmaps : function(target:GLenum; internalFormat:GLint; width:GLsizei; height:GLsizei; format:GLenum;
- _type:GLenum; data:pointer):GLint;extdecl;
- gluBuild3DMipmapLevels : function(target:GLenum; internalFormat:GLint; width:GLsizei; height:GLsizei; depth:GLsizei;
- format:GLenum; _type:GLenum; level:GLint; base:GLint; max:GLint;
- data:pointer):GLint;extdecl;
- gluBuild3DMipmaps : function(target:GLenum; internalFormat:GLint; width:GLsizei; height:GLsizei; depth:GLsizei;
- format:GLenum; _type:GLenum; data:pointer):GLint;extdecl;
- gluCheckExtension : function(extName:PGLubyte; extString:PGLubyte):GLboolean;extdecl;
- gluCylinder : procedure(quad:PGLUquadric; base:GLdouble; top:GLdouble; height:GLdouble; slices:GLint;
- stacks:GLint);extdecl;
- gluDeleteNurbsRenderer : procedure(nurb:PGLUnurbs);extdecl;
- gluDeleteQuadric : procedure(quad:PGLUquadric);extdecl;
- gluDeleteTess : procedure(tess:PGLUtesselator);extdecl;
- gluDisk : procedure(quad:PGLUquadric; inner:GLdouble; outer:GLdouble; slices:GLint; loops:GLint);extdecl;
- gluEndCurve : procedure(nurb:PGLUnurbs);extdecl;
- gluEndPolygon : procedure(tess:PGLUtesselator);extdecl;
- gluEndSurface : procedure(nurb:PGLUnurbs);extdecl;
- gluEndTrim : procedure(nurb:PGLUnurbs);extdecl;
- gluErrorString : function(error:GLenum): PGLubyte;extdecl;
- gluGetNurbsProperty : procedure(nurb:PGLUnurbs; _property:GLenum; data:PGLfloat);extdecl;
- gluGetString : function(name:GLenum):PGLubyte;extdecl;
- gluGetTessProperty : procedure(tess:PGLUtesselator; which:GLenum; data:PGLdouble);extdecl;
- gluLoadSamplingMatrices : procedure(nurb:PGLUnurbs; model:PGLfloat; perspective:PGLfloat; view:PGLint);extdecl;
- gluLookAt : procedure(eyeX:GLdouble; eyeY:GLdouble; eyeZ:GLdouble; centerX:GLdouble; centerY:GLdouble;
- centerZ:GLdouble; upX:GLdouble; upY:GLdouble; upZ:GLdouble);extdecl;
- gluNewNurbsRenderer : function:PGLUnurbs;extdecl;
- gluNewQuadric : function:PGLUquadric;extdecl;
- gluNewTess : function:PGLUtesselator;extdecl;
- gluNextContour : procedure(tess:PGLUtesselator; _type:GLenum);extdecl;
- gluNurbsCallback : procedure(nurb:PGLUnurbs; which:GLenum; CallBackFunc:_GLUfuncptr);extdecl;
- gluNurbsCallbackData : procedure(nurb:PGLUnurbs; userData:PGLvoid);extdecl;
- gluNurbsCallbackDataEXT : procedure(nurb:PGLUnurbs; userData:PGLvoid);extdecl;
- gluNurbsCurve : procedure(nurb:PGLUnurbs; knotCount:GLint; knots:PGLfloat; stride:GLint; control:PGLfloat;
- order:GLint; _type:GLenum);extdecl;
- gluNurbsProperty : procedure(nurb:PGLUnurbs; _property:GLenum; value:GLfloat);extdecl;
- gluNurbsSurface : procedure(nurb:PGLUnurbs; sKnotCount:GLint; sKnots:PGLfloat; tKnotCount:GLint; tKnots:PGLfloat;
- sStride:GLint; tStride:GLint; control:PGLfloat; sOrder:GLint; tOrder:GLint;
- _type:GLenum);extdecl;
- gluOrtho2D : procedure(left:GLdouble; right:GLdouble; bottom:GLdouble; top:GLdouble);extdecl;
- gluPartialDisk : procedure(quad:PGLUquadric; inner:GLdouble; outer:GLdouble; slices:GLint; loops:GLint;
- start:GLdouble; sweep:GLdouble);extdecl;
- gluPerspective : procedure(fovy:GLdouble; aspect:GLdouble; zNear:GLdouble; zFar:GLdouble);extdecl;
- gluPickMatrix : procedure(x:GLdouble; y:GLdouble; delX:GLdouble; delY:GLdouble; viewport:PGLint);extdecl;
- gluProject : function(objX:GLdouble; objY:GLdouble; objZ:GLdouble; model:PGLdouble; proj:PGLdouble;
- view:PGLint; winX:PGLdouble; winY:PGLdouble; winZ:PGLdouble):GLint;extdecl;
- gluPwlCurve : procedure(nurb:PGLUnurbs; count:GLint; data:PGLfloat; stride:GLint; _type:GLenum);extdecl;
- gluQuadricCallback : procedure(quad:PGLUquadric; which:GLenum; CallBackFunc:_GLUfuncptr);extdecl;
- gluQuadricDrawStyle : procedure(quad:PGLUquadric; draw:GLenum);extdecl;
- gluQuadricNormals : procedure(quad:PGLUquadric; normal:GLenum);extdecl;
- gluQuadricOrientation : procedure(quad:PGLUquadric; orientation:GLenum);extdecl;
- gluQuadricTexture : procedure(quad:PGLUquadric; texture:GLboolean);extdecl;
- gluScaleImage : function(format:GLenum; wIn:GLsizei; hIn:GLsizei; typeIn:GLenum; dataIn:pointer;
- wOut:GLsizei; hOut:GLsizei; typeOut:GLenum; dataOut:PGLvoid):GLint;extdecl;
- gluSphere : procedure(quad:PGLUquadric; radius:GLdouble; slices:GLint; stacks:GLint);extdecl;
- gluTessBeginContour : procedure(tess:PGLUtesselator);extdecl;
- gluTessBeginPolygon : procedure(tess:PGLUtesselator; data:PGLvoid);extdecl;
- gluTessCallback : procedure(tess:PGLUtesselator; which:GLenum; CallBackFunc:_GLUfuncptr);extdecl;
- gluTessEndContour : procedure(tess:PGLUtesselator);extdecl;
- gluTessEndPolygon : procedure(tess:PGLUtesselator);extdecl;
- gluTessNormal : procedure(tess:PGLUtesselator; valueX:GLdouble; valueY:GLdouble; valueZ:GLdouble);extdecl;
- gluTessProperty : procedure(tess:PGLUtesselator; which:GLenum; data:GLdouble);extdecl;
- gluTessVertex : procedure(tess:PGLUtesselator; location:PGLdouble; data:PGLvoid);extdecl;
- gluUnProject : function(winX:GLdouble; winY:GLdouble; winZ:GLdouble; model:PGLdouble; proj:PGLdouble;
- view:PGLint; objX:PGLdouble; objY:PGLdouble; objZ:PGLdouble):GLint;extdecl;
- gluUnProject4 : function(winX:GLdouble; winY:GLdouble; winZ:GLdouble; clipW:GLdouble; model:PGLdouble;
- proj:PGLdouble; view:PGLint; nearVal:GLdouble; farVal:GLdouble; objX:PGLdouble;
- objY:PGLdouble; objZ:PGLdouble; objW:PGLdouble):GLint;extdecl;
- {$endif}
- implementation
- {$IFDEF MORPHOS}
- { MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
- { systems, so its functions are included here. }
- {$INCLUDE tinygl.inc}
- {$ELSE MORPHOS}
- uses
- dynlibs;
- var
- hlib : tlibhandle;
- procedure Freeglu;
- begin
- if (hlib <> 0) then
- FreeLibrary(hlib);
- gluBeginCurve:=nil;
- gluBeginPolygon:=nil;
- gluBeginSurface:=nil;
- gluBeginTrim:=nil;
- gluBuild1DMipmapLevels:=nil;
- gluBuild1DMipmaps:=nil;
- gluBuild2DMipmapLevels:=nil;
- gluBuild2DMipmaps:=nil;
- gluBuild3DMipmapLevels:=nil;
- gluBuild3DMipmaps:=nil;
- gluCheckExtension:=nil;
- gluCylinder:=nil;
- gluDeleteNurbsRenderer:=nil;
- gluDeleteQuadric:=nil;
- gluDeleteTess:=nil;
- gluDisk:=nil;
- gluEndCurve:=nil;
- gluEndPolygon:=nil;
- gluEndSurface:=nil;
- gluEndTrim:=nil;
- gluErrorString:=nil;
- gluGetNurbsProperty:=nil;
- gluGetString:=nil;
- gluGetTessProperty:=nil;
- gluLoadSamplingMatrices:=nil;
- gluLookAt:=nil;
- gluNewNurbsRenderer:=nil;
- gluNewQuadric:=nil;
- gluNewTess:=nil;
- gluNextContour:=nil;
- gluNurbsCallback:=nil;
- gluNurbsCallbackData:=nil;
- gluNurbsCallbackDataEXT:=nil;
- gluNurbsCurve:=nil;
- gluNurbsProperty:=nil;
- gluNurbsSurface:=nil;
- gluOrtho2D:=nil;
- gluPartialDisk:=nil;
- gluPerspective:=nil;
- gluPickMatrix:=nil;
- gluProject:=nil;
- gluPwlCurve:=nil;
- gluQuadricCallback:=nil;
- gluQuadricDrawStyle:=nil;
- gluQuadricNormals:=nil;
- gluQuadricOrientation:=nil;
- gluQuadricTexture:=nil;
- gluScaleImage:=nil;
- gluSphere:=nil;
- gluTessBeginContour:=nil;
- gluTessBeginPolygon:=nil;
- gluTessCallback:=nil;
- gluTessEndContour:=nil;
- gluTessEndPolygon:=nil;
- gluTessNormal:=nil;
- gluTessProperty:=nil;
- gluTessVertex:=nil;
- gluUnProject:=nil;
- gluUnProject4:=nil;
- end;
- procedure Loadglu(lib : pchar);
- begin
- Freeglu;
- hlib:=LoadLibrary(lib);
- if hlib=0 then
- raise Exception.Create(format('Could not load library: %s',[lib]));
- pointer(gluBeginCurve):=GetProcAddress(hlib,'gluBeginCurve');
- pointer(gluBeginPolygon):=GetProcAddress(hlib,'gluBeginPolygon');
- pointer(gluBeginSurface):=GetProcAddress(hlib,'gluBeginSurface');
- pointer(gluBeginTrim):=GetProcAddress(hlib,'gluBeginTrim');
- pointer(gluBuild1DMipmapLevels):=GetProcAddress(hlib,'gluBuild1DMipmapLevels');
- pointer(gluBuild1DMipmaps):=GetProcAddress(hlib,'gluBuild1DMipmaps');
- pointer(gluBuild2DMipmapLevels):=GetProcAddress(hlib,'gluBuild2DMipmapLevels');
- pointer(gluBuild2DMipmaps):=GetProcAddress(hlib,'gluBuild2DMipmaps');
- pointer(gluBuild3DMipmapLevels):=GetProcAddress(hlib,'gluBuild3DMipmapLevels');
- pointer(gluBuild3DMipmaps):=GetProcAddress(hlib,'gluBuild3DMipmaps');
- pointer(gluCheckExtension):=GetProcAddress(hlib,'gluCheckExtension');
- pointer(gluCylinder):=GetProcAddress(hlib,'gluCylinder');
- pointer(gluDeleteNurbsRenderer):=GetProcAddress(hlib,'gluDeleteNurbsRenderer');
- pointer(gluDeleteQuadric):=GetProcAddress(hlib,'gluDeleteQuadric');
- pointer(gluDeleteTess):=GetProcAddress(hlib,'gluDeleteTess');
- pointer(gluDisk):=GetProcAddress(hlib,'gluDisk');
- pointer(gluEndCurve):=GetProcAddress(hlib,'gluEndCurve');
- pointer(gluEndPolygon):=GetProcAddress(hlib,'gluEndPolygon');
- pointer(gluEndSurface):=GetProcAddress(hlib,'gluEndSurface');
- pointer(gluEndTrim):=GetProcAddress(hlib,'gluEndTrim');
- pointer(gluErrorString):=GetProcAddress(hlib,'gluErrorString');
- pointer(gluGetNurbsProperty):=GetProcAddress(hlib,'gluGetNurbsProperty');
- pointer(gluGetString):=GetProcAddress(hlib,'gluGetString');
- pointer(gluGetTessProperty):=GetProcAddress(hlib,'gluGetTessProperty');
- pointer(gluLoadSamplingMatrices):=GetProcAddress(hlib,'gluLoadSamplingMatrices');
- pointer(gluLookAt):=GetProcAddress(hlib,'gluLookAt');
- pointer(gluNewNurbsRenderer):=GetProcAddress(hlib,'gluNewNurbsRenderer');
- pointer(gluNewQuadric):=GetProcAddress(hlib,'gluNewQuadric');
- pointer(gluNewTess):=GetProcAddress(hlib,'gluNewTess');
- pointer(gluNextContour):=GetProcAddress(hlib,'gluNextContour');
- pointer(gluNurbsCallback):=GetProcAddress(hlib,'gluNurbsCallback');
- pointer(gluNurbsCallbackData):=GetProcAddress(hlib,'gluNurbsCallbackData');
- pointer(gluNurbsCallbackDataEXT):=GetProcAddress(hlib,'gluNurbsCallbackDataEXT');
- pointer(gluNurbsCurve):=GetProcAddress(hlib,'gluNurbsCurve');
- pointer(gluNurbsProperty):=GetProcAddress(hlib,'gluNurbsProperty');
- pointer(gluNurbsSurface):=GetProcAddress(hlib,'gluNurbsSurface');
- pointer(gluOrtho2D):=GetProcAddress(hlib,'gluOrtho2D');
- pointer(gluPartialDisk):=GetProcAddress(hlib,'gluPartialDisk');
- pointer(gluPerspective):=GetProcAddress(hlib,'gluPerspective');
- pointer(gluPickMatrix):=GetProcAddress(hlib,'gluPickMatrix');
- pointer(gluProject):=GetProcAddress(hlib,'gluProject');
- pointer(gluPwlCurve):=GetProcAddress(hlib,'gluPwlCurve');
- pointer(gluQuadricCallback):=GetProcAddress(hlib,'gluQuadricCallback');
- pointer(gluQuadricDrawStyle):=GetProcAddress(hlib,'gluQuadricDrawStyle');
- pointer(gluQuadricNormals):=GetProcAddress(hlib,'gluQuadricNormals');
- pointer(gluQuadricOrientation):=GetProcAddress(hlib,'gluQuadricOrientation');
- pointer(gluQuadricTexture):=GetProcAddress(hlib,'gluQuadricTexture');
- pointer(gluScaleImage):=GetProcAddress(hlib,'gluScaleImage');
- pointer(gluSphere):=GetProcAddress(hlib,'gluSphere');
- pointer(gluTessBeginContour):=GetProcAddress(hlib,'gluTessBeginContour');
- pointer(gluTessBeginPolygon):=GetProcAddress(hlib,'gluTessBeginPolygon');
- pointer(gluTessCallback):=GetProcAddress(hlib,'gluTessCallback');
- pointer(gluTessEndContour):=GetProcAddress(hlib,'gluTessEndContour');
- pointer(gluTessEndPolygon):=GetProcAddress(hlib,'gluTessEndPolygon');
- pointer(gluTessNormal):=GetProcAddress(hlib,'gluTessNormal');
- pointer(gluTessProperty):=GetProcAddress(hlib,'gluTessProperty');
- pointer(gluTessVertex):=GetProcAddress(hlib,'gluTessVertex');
- pointer(gluUnProject):=GetProcAddress(hlib,'gluUnProject');
- pointer(gluUnProject4):=GetProcAddress(hlib,'gluUnProject4');
- end;
- initialization
- LoadGLu(GLU_LIB);
- finalization
- Freeglu;
- {$ENDIF MORPHOS}
- end.
|