Modula-3 version of glu.h
for Unix.
INTERFACEGLu ; IMPORT Ctypes, GL; TYPE GLUquadricObjStar = ADDRESS; GLUtriangulatorObjStar = ADDRESS; GLUnurbsObjStar = ADDRESS; GLUquadricErrorProc = PROCEDURE (err: GL.GLenum); GLUtessBeginProc = PROCEDURE (a1: GL.GLenum); GLUtessEdgeProc = PROCEDURE (a1: GL.GLboolean); GLUtessVertexProc = PROCEDURE (a1: GL.GLvoidStar); GLUtessEndProc = PROCEDURE (); GLUtessErrorProc = PROCEDURE (a1: GL.GLenum); GLUtessAnyProc = PROCEDURE (); GLUnurbsErrorProc = PROCEDURE (err: GL.GLenum);
* Return the error string associated with a particular error code. * This will return 0 for an invalid error code.
<*EXTERNAL*> PROCEDURE gluErrorString (errorCode: GL.GLenum): GL.GLubyteStar; <*EXTERNAL*> PROCEDURE gluOrtho2D (left, right, bottom, top: GL.GLdouble); <*EXTERNAL*> PROCEDURE gluPerspective (fovy, aspect, zNear, zFar: GL.GLdouble); <*EXTERNAL*> PROCEDURE gluPickMatrix (x, y, width, height: GL.GLdouble; viewport: UNTRACED REF ARRAY [1..4] OF GL.GLint); <*EXTERNAL*> PROCEDURE gluLookAt (eyex, eyey, eyez : GL.GLdouble; centerx, centery, centerz: GL.GLdouble; upx, upy, upz : GL.GLdouble); <*EXTERNAL*> PROCEDURE gluProject ( objx, objy, objz: GL.GLdouble; modelMatrix : UNTRACED REF ARRAY [1..16] OF GL.GLdouble; projMatrix : UNTRACED REF ARRAY [1..16] OF GL.GLdouble; viewport : UNTRACED REF ARRAY [1..4] OF GL.GLint; winx, winy, winz: GL.GLdoubleStar): Ctypes.int; <*EXTERNAL*> PROCEDURE gluUnProject ( winx, winy, winz: GL.GLdouble; modelMatrix : UNTRACED REF ARRAY [1..16] OF GL.GLdouble; projMatrix : UNTRACED REF ARRAY [1..16] OF GL.GLdouble; viewport : UNTRACED REF ARRAY [1..4] OF GL.GLint; objx, objy, objz: GL.GLdoubleStar): Ctypes.int; <*EXTERNAL*> PROCEDURE gluScaleImage (format : GL.GLenum; widthin : GL.GLint; heightin : GL.GLint; typein : GL.GLenum; datain : Ctypes.void_star; widthout : GL.GLint; heightout: GL.GLint; typeout : GL.GLenum; dataout : Ctypes.void_star): Ctypes.int; <*EXTERNAL*> PROCEDURE gluBuild1DMipmaps (target : GL.GLenum; components: GL.GLint; width : GL.GLint; format : GL.GLenum; type : GL.GLenum; data : Ctypes.void_star): Ctypes.int; <*EXTERNAL*> PROCEDURE gluBuild2DMipmaps (target : GL.GLenum; components: GL.GLint; width : GL.GLint; format : GL.GLenum; type : GL.GLenum; data : Ctypes.void_star): Ctypes.int; <*EXTERNAL*> PROCEDURE gluNewQuadric (): GLUquadricObjStar; <*EXTERNAL*> PROCEDURE gluDeleteQuadric (state: GLUquadricObjStar); <*EXTERNAL*> PROCEDURE gluQuadricNormals (qobj : GLUquadricObjStar; normals: GL.GLenum); <*EXTERNAL*> PROCEDURE gluQuadricTexture (qobj : GLUquadricObjStar; textureCoords: GL.GLboolean); <*EXTERNAL*> PROCEDURE gluQuadricOrientation (qobj : GLUquadricObjStar; orientation: GL.GLenum); <*EXTERNAL*> PROCEDURE gluQuadricDrawStyle (qobj : GLUquadricObjStar; drawStyle: GL.GLenum); <*EXTERNAL*> PROCEDURE gluCylinder (qobj : GLUquadricObjStar; baseRadius: GL.GLdouble; topRadius : GL.GLdouble; height : GL.GLdouble; slices : GL.GLint; stacks : GL.GLint); <*EXTERNAL*> PROCEDURE gluDisk (qobj : GLUquadricObjStar; innerRadius: GL.GLdouble; outerRadius: GL.GLdouble; slices : GL.GLint; loops : GL.GLint); <*EXTERNAL*> PROCEDURE gluPartialDisk (qobj : GLUquadricObjStar; innerRadius: GL.GLdouble; outerRadius: GL.GLdouble; slices : GL.GLint; loops : GL.GLint; startAngle : GL.GLdouble; sweepAngle : GL.GLdouble); <*EXTERNAL*> PROCEDURE gluSphere (qobj : GLUquadricObjStar; radius: GL.GLdouble; slices: GL.GLint; stacks: GL.GLint); <*EXTERNAL*> PROCEDURE gluQuadricCallback (qobj : GLUquadricObjStar; which: GL.GLenum; fn : GLUquadricErrorProc); <*EXTERNAL*> PROCEDURE gluNewTess (): GLUtriangulatorObjStar; <*EXTERNAL*> PROCEDURE gluTessCallback (tobj : GLUtriangulatorObjStar; which: GL.GLenum; fn : GLUtessAnyProc); <*EXTERNAL*> PROCEDURE gluDeleteTess (tobj: GLUtriangulatorObjStar); <*EXTERNAL*> PROCEDURE gluBeginPolygon (tobj: GLUtriangulatorObjStar); <*EXTERNAL*> PROCEDURE gluEndPolygon (tobj: GLUtriangulatorObjStar); <*EXTERNAL*> PROCEDURE gluNextContour (tobj: GLUtriangulatorObjStar; type: GL.GLenum); <*EXTERNAL*> PROCEDURE gluTessVertex (tobj: GLUtriangulatorObjStar; v : UNTRACED REF ARRAY [1 .. 3] OF GL.GLdouble; data: GL.GLvoidStar); <*EXTERNAL*> PROCEDURE gluNewNurbsRenderer (): GLUnurbsObjStar; <*EXTERNAL*> PROCEDURE gluDeleteNurbsRenderer (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluBeginSurface (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluBeginCurve (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluEndCurve (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluEndSurface (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluBeginTrim (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluEndTrim (nobj: GLUnurbsObjStar); <*EXTERNAL*> PROCEDURE gluPwlCurve (nobj : GLUnurbsObjStar; count : GL.GLint; array : UNTRACED REF ARRAY OF GL.GLfloat; stride: GL.GLint; type : GL.GLenum); <*EXTERNAL*> PROCEDURE gluNurbsCurve (nobj : GLUnurbsObjStar; nknots : GL.GLint; knot : UNTRACED REF ARRAY OF GL.GLfloat; stride : GL.GLint; ctlarray: UNTRACED REF ARRAY OF GL.GLfloat; order : GL.GLint; type : GL.GLenum); <*EXTERNAL*> PROCEDURE gluNurbsSurface (nobj : GLUnurbsObjStar; uknot_count: GL.GLint; uknot : UNTRACED REF ARRAY OF GL.GLfloat; vknot_count: GL.GLint; vknot : UNTRACED REF ARRAY OF GL.GLfloat; u_stride : GL.GLint; v_stride : GL.GLint; ctlarray : UNTRACED REF ARRAY OF GL.GLfloat; uorder : GL.GLint; vorder : GL.GLint; type : GL.GLenum); <*EXTERNAL*> PROCEDURE gluLoadSamplingMatrices ( nobj : GLUnurbsObjStar; modelMatrix: UNTRACED REF ARRAY [1..16] OF GL.GLfloat; projMatrix : UNTRACED REF ARRAY [1..16] OF GL.GLfloat; viewport : UNTRACED REF ARRAY [1..4] OF GL.GLint); <*EXTERNAL*> PROCEDURE gluNurbsProperty (nobj : GLUnurbsObjStar; property: GL.GLenum; value : GL.GLfloat); <*EXTERNAL*> PROCEDURE gluGetNurbsProperty (nobj : GLUnurbsObjStar; property: GL.GLenum; value : UNTRACED REF GL.GLfloat); <*EXTERNAL*> PROCEDURE gluNurbsCallback (nobj : GLUnurbsObjStar; which: GL.GLenum; fn : GLUnurbsErrorProc);*** Generic constants ***
Errors: (return value 0 = no error)
CONST GLU_INVALID_ENUM = 100900; GLU_INVALID_VALUE = 100901; GLU_OUT_OF_MEMORY = 100902;For laughs:
GLU_TRUE = GL.GL_TRUE; GLU_FALSE = GL.GL_FALSE;*** Quadric constants ***
Types of normals:
GLU_SMOOTH = 100000; GLU_FLAT = 100001; GLU_NONE = 100002;DrawStyle types:
GLU_POINT = 100010; GLU_LINE = 100011; GLU_FILL = 100012; GLU_SILHOUETTE = 100013;Orientation types:
GLU_OUTSIDE = 100020; GLU_INSIDE = 100021;*** Tesselation constants ***
Callback types:
GLU_BEGIN = 100100; GLU_VERTEX = 100101; GLU_END = 100102; GLU_ERROR = 100103; GLU_EDGE_FLAG = 100104;Contours types:
GLU_CW = 100120; GLU_CCW = 100121; GLU_INTERIOR = 100122; GLU_EXTERIOR = 100123; GLU_UNKNOWN = 100124; 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;*** NURBS constants ***
Properties:
GLU_AUTO_LOAD_MATRIX = 100200; GLU_CULLING = 100201; GLU_SAMPLING_TOLERANCE = 100203; GLU_DISPLAY_MODE = 100204;Trimming curve types
GLU_MAP1_TRIM_2 = 100210; GLU_MAP1_TRIM_3 = 100211;Display modes:
GLU_OUTLINE_POLYGON = 100240; GLU_OUTLINE_PATCH = 100241;Errors:
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; END GLu.