// This translation of GLU.H (v1.2) for OpenGL (version 1.1) for Delphi 2.0+ has been done by: // Dipl. Ing. Mike Lischke Straίe der Nationen 39 09111 Chemnitz Germany // under consideration of previous translation by // Richard Hansen // Artemis Alliance, Inc. 289 E. 5th St, #211 St. Paul, Mn 55101 (612) 227-7172 71043.2142@compuserve.com // // You may use and distribute it freely for noncommercial use only! Please, do not change the file, but rather send any errors or omissions to // Lischke@imib.med.tu-dresden.de // March, 23 1997 {Copyright (c) 1985-95, Microsoft Corporation
Module Name:
glu.h
Abstract:
Procedure declarations, constant definitions and macros for the OpenGL
Utility Library.
Copyright 1991-1993, Silicon Graphics, Inc.
All Rights Reserved.
This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
the contents of this file may not be disclosed to third parties, copied or
duplicated in any form, in whole or in part, without the prior written
permission of Silicon Graphics, Inc.
RESTRICTED RIGHTS LEGEND:
Use, duplication or disclosure by the Government is subject to restrictions
as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
and Computer Software clause at DFARS 252.227-7013, and/or in similar or
successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
rights reserved under the Copyright Laws of the United States.
gluBeginCurve -
gluBeginPolygon - Backwards compatibility for old tesselator
gluBeginSurface -
gluBeginTrim -
gluBuild1DMipmaps -
gluBuild2DMipmaps -
gluCylinder -
gluDeleteNurbsRenderer -
gluDeleteQuadric -
gluDeleteTess -
gluDisk -
gluEndCurve -
gluEndPolygon -
gluEndSurface -
gluEndTrim -
gluErrorString -
gluErrorUnicodeStringEXT -
gluGetNurbsProperty -
gluGetString -
gluGetTessProperty -
gluLoadSamplingMatrices -
gluLookAt -
gluNewNurbsRenderer -
gluNewQuadric -
gluNewTess -
gluNextContour -
gluNurbsCallback -
gluNurbsCurve -
gluNurbsProperty -
gluNurbsSurface -
gluOrtho2D -
gluPartialDisk -
gluPerspective -
gluPickMatrix -
gluProject -
gluPwlCurve -
gluQuadricCallback -
gluQuadricDrawStyle -
gluQuadricNormals -
gluQuadricOrientation -
gluQuadricTexture -
gluScaleImage -
gluSphere -
gluTessBeginContour -
gluTessBeginPolygon -
gluTessCallback -
gluTessEndContour -
gluTessEndPolygon -
gluTessNormal -
gluTessProperty -
gluTessVertex -
gluUnProject -
GLUNurbsObj
GLUQuadricObj
GLUTesselatorObj
GLUTriangulatorObj
PGLUnurbsObj
PGLUquadricObj
PGLUtesselatorObj
PGLUtriangulatorObj
TAffineDblVector
TAffineFloatVector
TAffineIntVector
TGLUNurbsErrorProc
TGLUQuadricErrorProc
TGLUTessBeginDataProc
TGLUTessBeginProc
TGLUTessCombineDataProc
TGLUTessCombineProc
TGLUTessEdgeFlagDataProc
TGLUTessEdgeFlagProc
TGLUTesselationCallback
TGLUTessEndDataProc
TGLUTessEndProc
TGLUTessErrorDataProc
TGLUTessErrorProc
TGLUTessVertexDataProc
TGLUTessVertexProc
THomogenDblMatrix
THomogenDblVector
THomogenFloatMatrix
THomogenFloatVector
THomogenIntMatrix
THomogenIntVector
THomogenPtrVector
GLu32
GLU_AUTO_LOAD_MATRIX
GLU_BEGIN
GLU_CCW
GLU_CULLING
GLU_CW
GLU_DISPLAY_MODE
GLU_DOMAIN_DISTANCE
GLU_EDGE_FLAG
GLU_END
GLU_ERROR
GLU_EXTENSIONS
GLU_EXTERIOR
GLU_FALSE
GLU_FILL
GLU_FLAT
GLU_INCOMPATIBLE_GL_VERSION
GLU_INSIDE
GLU_INTERIOR
GLU_INVALID_ENUM
GLU_INVALID_VALUE
GLU_LINE
GLU_MAP1_TRIM_2
GLU_MAP1_TRIM_3
GLU_NONE
GLU_NURBS_ERROR1
GLU_NURBS_ERROR10
GLU_NURBS_ERROR11
GLU_NURBS_ERROR12
GLU_NURBS_ERROR13
GLU_NURBS_ERROR14
GLU_NURBS_ERROR15
GLU_NURBS_ERROR16
GLU_NURBS_ERROR17
GLU_NURBS_ERROR18
GLU_NURBS_ERROR19
GLU_NURBS_ERROR2
GLU_NURBS_ERROR20
GLU_NURBS_ERROR21
GLU_NURBS_ERROR22
GLU_NURBS_ERROR23
GLU_NURBS_ERROR24
GLU_NURBS_ERROR25
GLU_NURBS_ERROR26
GLU_NURBS_ERROR27
GLU_NURBS_ERROR28
GLU_NURBS_ERROR29
GLU_NURBS_ERROR3
GLU_NURBS_ERROR30
GLU_NURBS_ERROR31
GLU_NURBS_ERROR32
GLU_NURBS_ERROR33
GLU_NURBS_ERROR34
GLU_NURBS_ERROR35
GLU_NURBS_ERROR36
GLU_NURBS_ERROR37
GLU_NURBS_ERROR4
GLU_NURBS_ERROR5
GLU_NURBS_ERROR6
GLU_NURBS_ERROR7
GLU_NURBS_ERROR8
GLU_NURBS_ERROR9
GLU_OUTLINE_PATCH
GLU_OUTLINE_POLYGON
GLU_OUTSIDE
GLU_OUT_OF_MEMORY
GLU_PARAMETRIC_ERROR
GLU_PARAMETRIC_TOLERANCE
GLU_PATH_LENGTH
GLU_POINT
GLU_SAMPLING_METHOD
GLU_SAMPLING_TOLERANCE
GLU_SILHOUETTE
GLU_SMOOTH
GLU_TESS_BEGIN
GLU_TESS_BEGIN_DATA
GLU_TESS_BOUNDARY_ONLY
GLU_TESS_COMBINE
GLU_TESS_COMBINE_DATA
GLU_TESS_COORD_TOO_LARGE
GLU_TESS_EDGE_FLAG
GLU_TESS_EDGE_FLAG_DATA
GLU_TESS_END
GLU_TESS_END_DATA
GLU_TESS_ERROR
GLU_TESS_ERROR1
GLU_TESS_ERROR2
GLU_TESS_ERROR3
GLU_TESS_ERROR4
GLU_TESS_ERROR5
GLU_TESS_ERROR6
GLU_TESS_ERROR7
GLU_TESS_ERROR8
GLU_TESS_ERROR_DATA
GLU_TESS_MAX_COORD
GLU_TESS_MISSING_BEGIN_CONTOUR
GLU_TESS_MISSING_BEGIN_POLYGON
GLU_TESS_MISSING_END_CONTOUR
GLU_TESS_MISSING_END_POLYGON
GLU_TESS_NEED_COMBINE_CALLBACK
GLU_TESS_TOLERANCE
GLU_TESS_VERTEX
GLU_TESS_VERTEX_DATA
GLU_TESS_WINDING_ABS_GEQ_TWO
GLU_TESS_WINDING_NEGATIVE
GLU_TESS_WINDING_NONZERO
GLU_TESS_WINDING_ODD
GLU_TESS_WINDING_POSITIVE
GLU_TESS_WINDING_RULE
GLU_TRUE
GLU_UNKNOWN
GLU_U_STEP
GLU_VERSION
GLU_VERTEX
GLU_V_STEP
PROCEDURE gluBeginCurve (nobj: PGLUnurbsObj);
PROCEDURE gluBeginPolygon(tess: PGLUtesselatorObj);
Backwards compatibility for old tesselator
PROCEDURE gluBeginSurface(nobj: PGLUnurbsObj);
PROCEDURE gluBeginTrim(nobj: PGLUnurbsObj);
FUNCTION gluBuild1DMipmaps(target: GLenum; components, width: GLint; format, atype: GLenum;
CONST data): GLint;
FUNCTION gluBuild2DMipmaps(target: GLenum; components, width, height: GLint; format, atype: GLenum;
CONST data): GLint;
PROCEDURE gluCylinder(qobj: PGLuQuadricObj; baseRadius, topRadius, height: GLdouble;
slices, stacks: GLint);
PROCEDURE gluDeleteNurbsRenderer(nobj: PGLUnurbsObj);
PROCEDURE gluDeleteQuadric(state: PGLUQuadricObj);
PROCEDURE gluDeleteTess(tess: PGLUtesselatorObj);
PROCEDURE gluDisk(qobj: PGLuQuadricObj; innerRadius, outerRadius: GLdouble;
slices, loops: GLint);
PROCEDURE gluEndCurve(nobj: PGLUnurbsObj);
PROCEDURE gluEndPolygon(tess: PGLUtesselatorObj);
PROCEDURE gluEndSurface(nobj: PGLUnurbsObj);
PROCEDURE gluEndTrim(nobj: PGLUnurbsObj);
FUNCTION gluErrorString(errCode: GLenum): PGLubyte;
FUNCTION gluErrorUnicodeStringEXT(errCode: GLenum): PWideChar;
PROCEDURE gluGetNurbsProperty(nobj: PGLUnurbsObj; aproperty: GLenum; value: PGLfloat);
FUNCTION gluGetString(name: GLenum): PGLubyte;
PROCEDURE gluGetTessProperty(tess: PGLUtesselatorObj; which: GLenum; value: PGLdouble);
PROCEDURE gluLoadSamplingMatrices(nobj: PGLUnurbsObj; CONST modelMatrix, projMatrix: THomogenFloatMatrix;
CONST viewport: THomogenIntVector);
PROCEDURE gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble);
FUNCTION gluNewNurbsRenderer: PGLUnurbsObj;
FUNCTION gluNewQuadric: PGLUQuadricObj;
FUNCTION gluNewTess: PGLUtesselatorObj;
PROCEDURE gluNextContour(tess: PGLUtesselatorObj; atype: GLenum);
PROCEDURE gluNurbsCallback(nobj: PGLUnurbsObj; which: GLenum; fn: TGLUNurbsErrorProc);
PROCEDURE gluNurbsCurve(nobj: PGLUnurbsObj; nknots: GLint; knot: PGLfloat; stride: GLint;
ctlarray: PGLfloat; order: GLint; atype: GLenum);
PROCEDURE gluNurbsProperty(nobj: PGLUnurbsObj; aproperty: GLenum; value: GLfloat);
PROCEDURE gluNurbsSurface(nobj: PGLUnurbsObj; sknot_count: GLint; sknot: PGLfloat; tknot_count: GLint;
tknot: PGLfloat; s_stride, t_stride: GLint; ctlarray: PGLfloat;
sorder, torder: GLint; atype: GLenum);
PROCEDURE gluOrtho2D(left, right, bottom, top: GLdouble);
PROCEDURE gluPartialDisk(qobj: PGLuQuadricObj; innerRadius, outerRadius: GLdouble;
slices, loops: GLint; startAngle, sweepAngle: GLdouble);
PROCEDURE gluPerspective(fovy, aspect, zNear, zFar: GLdouble);
PROCEDURE gluPickMatrix(x, y, width, height: GLdouble; viewport: THomogenIntVector);
FUNCTION gluProject(objx, objy, objz: GLdouble; modelMatrix, projMatrix: THomogenDblMatrix;
viewport: THomogenIntVector; winx, winy, winz: PGLdouble): GLBoolean;
PROCEDURE gluPwlCurve(nobj: PGLUnurbsObj; count: GLint; aarray: PGLfloat; stride: GLint;
atype: GLint);
PROCEDURE gluQuadricCallback(qobj: PGLuQuadricObj; which: GLenum; fn: TGLUQuadricErrorProc);
PROCEDURE gluQuadricDrawStyle(quadObject: PGLuQuadricObj; drawStyle: GLenum);
PROCEDURE gluQuadricNormals(quadObject: PGLuQuadricObj; normals: GLenum);
PROCEDURE gluQuadricOrientation(quadObject: PGLuQuadricObj; orientation: GLenum);
PROCEDURE gluQuadricTexture(quadObject: PGLuQuadricObj; textureCoords: GLboolean);
FUNCTION gluScaleImage(format: GLenum; widthin, heightin: GLint; typein: GLenum; CONST datain;
widthout, heightout: GLint; typeout: GLenum; VAR dataout): GLint;
PROCEDURE gluSphere(qobj: PGLuQuadricObj; radius: GLdouble; slices, stacks: GLint);
PROCEDURE gluTessBeginContour(tess: PGLUtesselatorObj);
PROCEDURE gluTessBeginPolygon(tess: PGLUtesselatorObj; CONST polygon_data );
PROCEDURE gluTessCallback(tess: PGLUtesselatorObj; which: GLenum; fn: TGLUTesselationCallback);
PROCEDURE gluTessEndContour(tess: PGLUtesselatorObj);
PROCEDURE gluTessEndPolygon(tess: PGLUtesselatorObj);
PROCEDURE gluTessNormal(tess: PGLUtesselatorObj; x, y, z: GLdouble);
PROCEDURE gluTessProperty(tess: PGLUtesselatorObj; which: GLenum; value: GLdouble);
PROCEDURE gluTessVertex(tess: PGLUtesselatorObj; coords: TAffineDblVector; CONST data );
FUNCTION gluUnProject(winx, winy, winz: GLdouble; modelMatrix, projMatrix: THomogenDblMatrix;
viewport: THomogenIntVector; objx, objy, objz: PGLdouble): GLBoolean;
GLUNurbsObj = record
end;
GLUQuadricObj = record
end;
GLUTesselatorObj = record
end;
GLUTriangulatorObj = record
end;
PGLUnurbsObj = ^GLUnurbsObj
PGLUquadricObj = ^GLUquadricObj
PGLUtesselatorObj = ^GLUtesselatorObj
PGLUtriangulatorObj = ^GLUtriangulatorObj
TAffineDblVector = ARRAY[0..2] OF GLdouble;
TAffineFloatVector = ARRAY[0..2] OF GLfloat;
TAffineIntVector = ARRAY[0..2] OF GLint;
TGLUNurbsErrorProc = PROCEDURE(error: GLenum)
gluNurbsCallback
TGLUQuadricErrorProc = PROCEDURE(error: GLenum)
----- Callback function types ----- gluQuadricCallback
TGLUTessBeginDataProc = PROCEDURE(atype: GLenum; CONST polygon_data)
TGLUTessBeginProc = PROCEDURE(atype: GLenum)
TGLUTessCombineDataProc = PROCEDURE(coords: TAffineDblVector; vertex_data: THomogenPtrVector;
weight: THomogenFloatVector; VAR outData: Pointer;
CONST polygon_data)
TGLUTessCombineProc = PROCEDURE(coords: TAffineDblVector; vertex_data: THomogenPtrVector;
weight: THomogenFloatVector; VAR outData: Pointer)
TGLUTessEdgeFlagDataProc = PROCEDURE(flag: GLboolean; CONST polygon_data)
TGLUTessEdgeFlagProc = PROCEDURE(flag: GLboolean)
TGLUTesselationCallback = Pointer
gluTessCallback
TGLUTessEndDataProc = PROCEDURE(CONST polygon_data)
TGLUTessEndProc = PROCEDURE
TGLUTessErrorDataProc = PROCEDURE(errno: GLenum; CONST polygon_data)
TGLUTessErrorProc = PROCEDURE(errno: GLenum)
TGLUTessVertexDataProc = PROCEDURE(CONST vertex_data; CONST polygon_data)
TGLUTessVertexProc = PROCEDURE(CONST vertex_data)
THomogenDblMatrix = ARRAY[0..3,0..3] OF GLdouble;
THomogenDblVector = ARRAY[0..3] OF GLdouble;
THomogenFloatMatrix = ARRAY[0..3,0..3] OF GLfloat;
THomogenFloatVector = ARRAY[0..3] OF GLfloat;
THomogenIntMatrix = ARRAY[0..3,0..3] OF GLint;
THomogenIntVector = ARRAY[0..3] OF GLint;
THomogenPtrVector = ARRAY[0..3] OF Pointer;
GLu32 = 'GLu32.DLL'
GLU_AUTO_LOAD_MATRIX = 100200
----- NURBS constants ----- NurbsProperty
GLU_BEGIN = GLU_TESS_BEGIN
Names without "TESS_" prefix
GLU_CCW = 100121
GLU_CULLING = 100201
GLU_CW = 100120
Contours types -- obsolete!
GLU_DISPLAY_MODE = 100204
GLU_DOMAIN_DISTANCE = 100217
GLU_EDGE_FLAG = GLU_TESS_EDGE_FLAG
GLU_END = GLU_TESS_END
GLU_ERROR = GLU_TESS_ERROR
GLU_EXTENSIONS = 100801
GLU_EXTERIOR = 100123
GLU_FALSE = GL_FALSE
GLU_FILL = 100012
GLU_FLAT = 100001
GLU_INCOMPATIBLE_GL_VERSION = 100903
GLU_INSIDE = 100021
GLU_INTERIOR = 100122
GLU_INVALID_ENUM = 100900
Version {$DEFINE GLU_VERSION_1_1} {$DEFINE GLU_VERSION_1_2} Errors: (return value 0 = no error
GLU_INVALID_VALUE = 100901
GLU_LINE = 100011
GLU_MAP1_TRIM_2 = 100210
NurbsTrim
GLU_MAP1_TRIM_3 = 100211
GLU_NONE = 100002
GLU_NURBS_ERROR1 = 100251
NurbsCallback GLU_ERROR 100103 NurbsErrors
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_ERROR2 = 100252
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_ERROR3 = 100253
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
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_OUTLINE_PATCH = 100241
GLU_OUTLINE_POLYGON = 100240
NurbsDisplay GLU_FILL 100012
GLU_OUTSIDE = 100020
QuadricOrientation
GLU_OUT_OF_MEMORY = 100902
GLU_PARAMETRIC_ERROR = 100216
GLU_PARAMETRIC_TOLERANCE = 100202
GLU_PATH_LENGTH = 100215
NurbsSampling
GLU_POINT = 100010
QuadricDrawStyle
GLU_SAMPLING_METHOD = 100205
GLU_SAMPLING_TOLERANCE = 100203
GLU_SILHOUETTE = 100013
GLU_SMOOTH = 100000
----- Quadric constants ----- QuadricNormal
GLU_TESS_BEGIN = 100100
TessCallback
GLU_TESS_BEGIN_DATA = 100106
GLU_TESS_BOUNDARY_ONLY = 100141
GLU_TESS_COMBINE = 100105
GLU_TESS_COMBINE_DATA = 100111
GLU_TESS_COORD_TOO_LARGE = GLU_TESS_ERROR5
GLU_TESS_EDGE_FLAG = 100104
GLU_TESS_EDGE_FLAG_DATA = 100110
GLU_TESS_END = 100102
GLU_TESS_END_DATA = 100108
GLU_TESS_ERROR = 100103
GLU_TESS_ERROR1 = 100151
TessError
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_ERROR_DATA = 100109
GLU_TESS_MAX_COORD = 1.0E150
Callback types: GLU_ERROR 100103 ----- Tesselation constants -----
GLU_TESS_MISSING_BEGIN_CONTOUR = GLU_TESS_ERROR2
GLU_TESS_MISSING_BEGIN_POLYGON = GLU_TESS_ERROR1
GLU_TESS_MISSING_END_CONTOUR = GLU_TESS_ERROR4
GLU_TESS_MISSING_END_POLYGON = GLU_TESS_ERROR3
GLU_TESS_NEED_COMBINE_CALLBACK = GLU_TESS_ERROR6
GLU_TESS_TOLERANCE = 100142
GLU_TESS_VERTEX = 100101
GLU_TESS_VERTEX_DATA = 100107
GLU_TESS_WINDING_ABS_GEQ_TWO = 100134
GLU_TESS_WINDING_NEGATIVE = 100133
GLU_TESS_WINDING_NONZERO = 100131
GLU_TESS_WINDING_ODD = 100130
TessWinding
GLU_TESS_WINDING_POSITIVE = 100132
GLU_TESS_WINDING_RULE = 100140
TessProperty
GLU_TRUE = GL_TRUE
Boolean
GLU_UNKNOWN = 100124
GLU_U_STEP = 100206
GLU_VERSION = 100800
StringName
GLU_VERTEX = GLU_TESS_VERTEX
GLU_V_STEP = 100207