7.4. Data Definitions for libGLU

This section defines global identifiers and their values that are associated with interfaces contained in libGLU. These definitions are organized into groups that correspond to system headers. This convention is used as a convenience for the reader, and does not imply the existence of these headers, or their content. Where an interface is defined as requiring a particular system header file all of the data definitions for that system header file presented here shall be in effect.

This section gives data definitions to promote binary application portability, not to repeat source interface definitions available elsewhere. System providers and application developers should use this ABI to supplement - not to replace - source interface definition specifications.

This specification uses the ISO C (1999) C Language as the reference programming language, and data definitions are specified in ISO C format. The C language is used here as a convenient notation. Using a C language description of these data objects does not preclude their use by other programming languages.

7.4.1. GL/glu.h


#define GLU_FALSE	0
#define GLU_EXT_nurbs_tessellator	1
#define GLU_EXT_object_space_tess	1
#define GLU_TRUE	1
#define GLU_VERSION_1_1	1
#define GLU_VERSION_1_2	1
#define GLU_VERSION_1_3	1
#define GLU_TESS_MAX_COORD	1.0e150
#define GLU_SMOOTH	100000
#define GLU_FLAT	100001
#define GLU_NONE	100002
#define GLU_POINT	100010
#define GLU_LINE	100011
#define GLU_FILL	100012
#define GLU_SILHOUETTE	100013
#define GLU_OUTSIDE	100020
#define GLU_INSIDE	100021
#define GLU_BEGIN	100100
#define GLU_TESS_BEGIN	100100
#define GLU_TESS_VERTEX	100101
#define GLU_VERTEX	100101
#define GLU_END	100102
#define GLU_TESS_END	100102
#define GLU_ERROR	100103
#define GLU_NURBS_ERROR	100103
#define GLU_TESS_ERROR	100103
#define GLU_EDGE_FLAG	100104
#define GLU_TESS_EDGE_FLAG	100104
#define GLU_TESS_COMBINE	100105
#define GLU_TESS_BEGIN_DATA	100106
#define GLU_TESS_VERTEX_DATA	100107
#define GLU_TESS_END_DATA	100108
#define GLU_TESS_ERROR_DATA	100109
#define GLU_TESS_EDGE_FLAG_DATA	100110
#define GLU_TESS_COMBINE_DATA	100111
#define GLU_CW	100120
#define GLU_CCW	100121
#define GLU_INTERIOR	100122
#define GLU_EXTERIOR	100123
#define GLU_UNKNOWN	100124
#define GLU_TESS_WINDING_ODD	100130
#define GLU_TESS_WINDING_NONZERO	100131
#define GLU_TESS_WINDING_POSITIVE	100132
#define GLU_TESS_WINDING_NEGATIVE	100133
#define GLU_TESS_WINDING_ABS_GEQ_TWO	100134
#define GLU_TESS_WINDING_RULE	100140
#define GLU_TESS_BOUNDARY_ONLY	100141
#define GLU_TESS_TOLERANCE	100142
#define GLU_TESS_ERROR1	100151
#define GLU_TESS_MISSING_BEGIN_POLYGON	100151
#define GLU_TESS_ERROR2	100152
#define GLU_TESS_MISSING_BEGIN_CONTOUR	100152
#define GLU_TESS_ERROR3	100153
#define GLU_TESS_MISSING_END_POLYGON	100153
#define GLU_TESS_ERROR4	100154
#define GLU_TESS_MISSING_END_CONTOUR	100154
#define GLU_TESS_COORD_TOO_LARGE	100155
#define GLU_TESS_ERROR5	100155
#define GLU_TESS_ERROR6	100156
#define GLU_TESS_NEED_COMBINE_CALLBACK	100156
#define GLU_TESS_ERROR7	100157
#define GLU_TESS_ERROR8	100158
#define GLU_NURBS_MODE	100160
#define GLU_NURBS_MODE_EXT	100160
#define GLU_NURBS_TESSELLATOR	100161
#define GLU_NURBS_TESSELLATOR_EXT	100161
#define GLU_NURBS_RENDERER	100162
#define GLU_NURBS_RENDERER_EXT	100162
#define GLU_NURBS_BEGIN	100164
#define GLU_NURBS_BEGIN_EXT	100164
#define GLU_NURBS_VERTEX	100165
#define GLU_NURBS_VERTEX_EXT	100165
#define GLU_NURBS_NORMAL	100166
#define GLU_NURBS_NORMAL_EXT	100166
#define GLU_NURBS_COLOR	100167
#define GLU_NURBS_COLOR_EXT	100167
#define GLU_NURBS_TEXTURE_COORD	100168
#define GLU_NURBS_TEX_COORD_EXT	100168
#define GLU_NURBS_END	100169
#define GLU_NURBS_END_EXT	100169
#define GLU_NURBS_BEGIN_DATA	100170
#define GLU_NURBS_BEGIN_DATA_EXT	100170
#define GLU_NURBS_VERTEX_DATA	100171
#define GLU_NURBS_VERTEX_DATA_EXT	100171
#define GLU_NURBS_NORMAL_DATA	100172
#define GLU_NURBS_NORMAL_DATA_EXT	100172
#define GLU_NURBS_COLOR_DATA	100173
#define GLU_NURBS_COLOR_DATA_EXT	100173
#define GLU_NURBS_TEXTURE_COORD_DATA	100174
#define GLU_NURBS_TEX_COORD_DATA_EXT	100174
#define GLU_NURBS_END_DATA	100175
#define GLU_NURBS_END_DATA_EXT	100175
#define GLU_AUTO_LOAD_MATRIX	100200
#define GLU_CULLING	100201
#define GLU_PARAMETRIC_TOLERANCE	100202
#define GLU_SAMPLING_TOLERANCE	100203
#define GLU_DISPLAY_MODE	100204
#define GLU_SAMPLING_METHOD	100205
#define GLU_U_STEP	100206
#define GLU_V_STEP	100207
#define GLU_OBJECT_PARAMETRIC_ERROR	100208
#define GLU_OBJECT_PARAMETRIC_ERROR_EXT	100208
#define GLU_OBJECT_PATH_LENGTH	100209
#define GLU_OBJECT_PATH_LENGTH_EXT	100209
#define GLU_MAP1_TRIM_2	100210
#define GLU_MAP1_TRIM_3	100211
#define GLU_PATH_LENGTH	100215
#define GLU_PARAMETRIC_ERROR	100216
#define GLU_DOMAIN_DISTANCE	100217
#define GLU_OUTLINE_POLYGON	100240
#define GLU_OUTLINE_PATCH	100241
#define GLU_NURBS_ERROR1	100251
#define GLU_NURBS_ERROR2	100252
#define GLU_NURBS_ERROR3	100253
#define GLU_NURBS_ERROR4	100254
#define GLU_NURBS_ERROR5	100255
#define GLU_NURBS_ERROR6	100256
#define GLU_NURBS_ERROR7	100257
#define GLU_NURBS_ERROR8	100258
#define GLU_NURBS_ERROR9	100259
#define GLU_NURBS_ERROR10	100260
#define GLU_NURBS_ERROR11	100261
#define GLU_NURBS_ERROR12	100262
#define GLU_NURBS_ERROR13	100263
#define GLU_NURBS_ERROR14	100264
#define GLU_NURBS_ERROR15	100265
#define GLU_NURBS_ERROR16	100266
#define GLU_NURBS_ERROR17	100267
#define GLU_NURBS_ERROR18	100268
#define GLU_NURBS_ERROR19	100269
#define GLU_NURBS_ERROR20	100270
#define GLU_NURBS_ERROR21	100271
#define GLU_NURBS_ERROR22	100272
#define GLU_NURBS_ERROR23	100273
#define GLU_NURBS_ERROR24	100274
#define GLU_NURBS_ERROR25	100275
#define GLU_NURBS_ERROR26	100276
#define GLU_NURBS_ERROR27	100277
#define GLU_NURBS_ERROR28	100278
#define GLU_NURBS_ERROR29	100279
#define GLU_NURBS_ERROR30	100280
#define GLU_NURBS_ERROR31	100281
#define GLU_NURBS_ERROR32	100282
#define GLU_NURBS_ERROR33	100283
#define GLU_NURBS_ERROR34	100284
#define GLU_NURBS_ERROR35	100285
#define GLU_NURBS_ERROR36	100286
#define GLU_NURBS_ERROR37	100287
#define GLU_VERSION	100800
#define GLU_EXTENSIONS	100801
#define GLU_INVALID_ENUM	100900
#define GLU_INVALID_VALUE	100901
#define GLU_OUT_OF_MEMORY	100902
#define GLU_INCOMPATIBLE_GL_VERSION	100903
#define GLU_INVALID_OPERATION	100904

typedef void *_GLUfuncptr;
typedef struct GLUtesselator GLUtesselatorObj;
typedef struct GLUtesselator GLUtriangulatorObj;
typedef struct GLUquadric GLUquadricObj;
typedef struct GLUnurbs GLUnurbsObj;
typedef struct GLUnurbs GLUnurbs;
typedef struct GLUquadric GLUquadric;
typedef struct GLUtesselator GLUtesselator;
extern void gluBeginCurve(GLUnurbs * nurb);
extern void gluBeginPolygon(GLUtesselator * tess);
extern void gluBeginSurface(GLUnurbs * nurb);
extern void gluBeginTrim(GLUnurbs * nurb);
extern GLint gluBuild1DMipmapLevels(GLenum target, GLint internalFormat,
				    GLsizei width, GLenum format,
				    GLenum type, GLint level, GLint base,
				    GLint max, const void *data);
extern GLint gluBuild1DMipmaps(GLenum target, GLint internalFormat,
			       GLsizei width, GLenum format, GLenum type,
			       const void *data);
extern GLint gluBuild2DMipmapLevels(GLenum target, GLint internalFormat,
				    GLsizei width, GLsizei height,
				    GLenum format, GLenum type,
				    GLint level, GLint base, GLint max,
				    const void *data);
extern GLint gluBuild2DMipmaps(GLenum target, GLint internalFormat,
			       GLsizei width, GLsizei height,
			       GLenum format, GLenum type,
			       const void *data);
extern GLint gluBuild3DMipmapLevels(GLenum target, GLint internalFormat,
				    GLsizei width, GLsizei height,
				    GLsizei depth, GLenum format,
				    GLenum type, GLint level, GLint base,
				    GLint max, const void *data);
extern GLint gluBuild3DMipmaps(GLenum target, GLint internalFormat,
			       GLsizei width, GLsizei height,
			       GLsizei depth, GLenum format, GLenum type,
			       const void *data);
extern GLboolean gluCheckExtension(const GLubyte * extName,
				   const GLubyte * extString);
extern void gluCylinder(GLUquadric * quad, GLdouble base, GLdouble top,
			GLdouble height, GLint slices, GLint stacks);
extern void gluDeleteNurbsRenderer(GLUnurbs * nurb);
extern void gluDeleteQuadric(GLUquadric * quad);
extern void gluDeleteTess(GLUtesselator * tess);
extern void gluDisk(GLUquadric * quad, GLdouble inner, GLdouble outer,
		    GLint slices, GLint loops);
extern void gluEndCurve(GLUnurbs * nurb);
extern void gluEndPolygon(GLUtesselator * tess);
extern void gluEndSurface(GLUnurbs * nurb);
extern void gluEndTrim(GLUnurbs * nurb);
extern const GLubyte *gluErrorString(GLenum error);
extern void gluGetNurbsProperty(GLUnurbs * nurb, GLenum property,
				GLfloat * data);
extern const GLubyte *gluGetString(GLenum name);
extern void gluGetTessProperty(GLUtesselator * tess, GLenum which,
			       GLdouble * data);
extern void gluLoadSamplingMatrices(GLUnurbs * nurb, const GLfloat * model,
				    const GLfloat * perspective,
				    const GLint * view);
extern void gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ,
		      GLdouble centerX, GLdouble centerY, GLdouble centerZ,
		      GLdouble upX, GLdouble upY, GLdouble upZ);
extern GLUnurbs *gluNewNurbsRenderer(void);
extern GLUquadric *gluNewQuadric(void);
extern GLUtesselator *gluNewTess(void);
extern void gluNextContour(GLUtesselator * tess, GLenum type);
extern void gluNurbsCallback(GLUnurbs * nurb, GLenum which,
			     _GLUfuncptr CallBackFunc);
extern void gluNurbsCallbackData(GLUnurbs * nurb, GLvoid * userData);
extern void gluNurbsCallbackDataEXT(GLUnurbs * nurb, GLvoid * userData);
extern void gluNurbsCurve(GLUnurbs * nurb, GLint knotCount,
			  GLfloat * knots, GLint stride, GLfloat * control,
			  GLint order, GLenum type);
extern void gluNurbsProperty(GLUnurbs * nurb, GLenum property,
			     GLfloat value);
extern void gluNurbsSurface(GLUnurbs * nurb, GLint sKnotCount,
			    GLfloat * sKnots, GLint tKnotCount,
			    GLfloat * tKnots, GLint sStride, GLint tStride,
			    GLfloat * control, GLint sOrder, GLint tOrder,
			    GLenum type);
extern void gluOrtho2D(GLdouble left, GLdouble right, GLdouble bottom,
		       GLdouble top);
extern void gluPartialDisk(GLUquadric * quad, GLdouble inner,
			   GLdouble outer, GLint slices, GLint loops,
			   GLdouble start, GLdouble sweep);
extern void gluPerspective(GLdouble fovy, GLdouble aspect, GLdouble zNear,
			   GLdouble zFar);
extern void gluPickMatrix(GLdouble x, GLdouble y, GLdouble delX,
			  GLdouble delY, GLint * viewport);
extern GLint gluProject(GLdouble objX, GLdouble objY, GLdouble objZ,
			const GLdouble * model, const GLdouble * proj,
			const GLint * view, GLdouble * winX,
			GLdouble * winY, GLdouble * winZ);
extern void gluPwlCurve(GLUnurbs * nurb, GLint count, GLfloat * data,
			GLint stride, GLenum type);
extern void gluQuadricCallback(GLUquadric * quad, GLenum which,
			       _GLUfuncptr CallBackFunc);
extern void gluQuadricDrawStyle(GLUquadric * quad, GLenum draw);
extern void gluQuadricNormals(GLUquadric * quad, GLenum normal);
extern void gluQuadricOrientation(GLUquadric * quad, GLenum orientation);
extern void gluQuadricTexture(GLUquadric * quad, GLboolean texture);
extern GLint gluScaleImage(GLenum format, GLsizei wIn, GLsizei hIn,
			   GLenum typeIn, const void *dataIn, GLsizei wOut,
			   GLsizei hOut, GLenum typeOut, GLvoid * dataOut);
extern void gluSphere(GLUquadric * quad, GLdouble radius, GLint slices,
		      GLint stacks);
extern void gluTessBeginContour(GLUtesselator * tess);
extern void gluTessBeginPolygon(GLUtesselator * tess, GLvoid * data);
extern void gluTessCallback(GLUtesselator * tess, GLenum which,
			    _GLUfuncptr CallBackFunc);
extern void gluTessEndContour(GLUtesselator * tess);
extern void gluTessEndPolygon(GLUtesselator * tess);
extern void gluTessNormal(GLUtesselator * tess, GLdouble valueX,
			  GLdouble valueY, GLdouble valueZ);
extern void gluTessProperty(GLUtesselator * tess, GLenum which,
			    GLdouble data);
extern void gluTessVertex(GLUtesselator * tess, GLdouble * location,
			  GLvoid * data);
extern GLint gluUnProject(GLdouble winX, GLdouble winY, GLdouble winZ,
			  const GLdouble * model, const GLdouble * proj,
			  const GLint * view, GLdouble * objX,
			  GLdouble * objY, GLdouble * objZ);
extern GLint gluUnProject4(GLdouble winX, GLdouble winY, GLdouble winZ,
			   GLdouble clipW, const GLdouble * model,
			   const GLdouble * proj, const GLint * view,
			   GLdouble nearVal, GLdouble farVal,
			   GLdouble * objX, GLdouble * objY,
			   GLdouble * objZ, GLdouble * objW);