; OpenGL include file for the Netwide Assembler (NASM)
; Copyright 1992-1993 Silicon Graphics, Inc. All Rights Reserved.
; Transformed to this form by Sergey Chaban
; (C) hardCode/<BizarreCreations site> '99
; http://bizarrecreations.webjump.com
; e-mail: soul_cat@mindless.com
;** This file was made to give x86 Assembly coders the ability
;** to write OGL programs, not to get any profit from it.
;** In case there are any objections from SGI, it will be removed
;** from our web-page.
;

%ifndef _NASM_GLU_
%define _NASM_GLU_

%ifndef NWIN_EXTRA_MACRO_INCLUDED
 %include "nwinx.inc"
%endif

;/* Extensions */
GLU_EXT_object_space_tess	EQU		1
GLU_EXT_nurbs_tessellator	EQU		1

;/* Boolean */
GLU_FALSE			EQU		0
GLU_TRUE			EQU		1

;/* Version */
GLU_VERSION_1_1			EQU		1
GLU_VERSION_1_2			EQU		1

;/* StringName */
GLU_VERSION			EQU		100800
GLU_EXTENSIONS			EQU		100801

;/* ErrorCode */
GLU_INVALID_ENUM		EQU		100900
GLU_INVALID_VALUE		EQU		100901
GLU_OUT_OF_MEMORY		EQU		100902
GLU_INCOMPATIBLE_GL_VERSION	EQU		100903
GLU_INVALID_OPERATION		EQU		100904

;/* NurbsDisplay */
;GLU_FILL
GLU_OUTLINE_POLYGON		EQU		100240
GLU_OUTLINE_PATCH		EQU		100241

;/* NurbsCallback */
GLU_ERROR			EQU		100103

;/* NurbsError */
GLU_NURBS_ERROR1		EQU		100251
GLU_NURBS_ERROR2		EQU		100252
GLU_NURBS_ERROR3		EQU		100253
GLU_NURBS_ERROR4		EQU		100254
GLU_NURBS_ERROR5		EQU		100255
GLU_NURBS_ERROR6		EQU		100256
GLU_NURBS_ERROR7		EQU		100257
GLU_NURBS_ERROR8		EQU		100258
GLU_NURBS_ERROR9		EQU		100259
GLU_NURBS_ERROR10		EQU		100260
GLU_NURBS_ERROR11		EQU		100261
GLU_NURBS_ERROR12		EQU		100262
GLU_NURBS_ERROR13		EQU		100263
GLU_NURBS_ERROR14		EQU		100264
GLU_NURBS_ERROR15		EQU		100265
GLU_NURBS_ERROR16		EQU		100266
GLU_NURBS_ERROR17		EQU		100267
GLU_NURBS_ERROR18		EQU		100268
GLU_NURBS_ERROR19		EQU		100269
GLU_NURBS_ERROR20		EQU		100270
GLU_NURBS_ERROR21		EQU		100271
GLU_NURBS_ERROR22		EQU		100272
GLU_NURBS_ERROR23		EQU		100273
GLU_NURBS_ERROR24		EQU		100274
GLU_NURBS_ERROR25		EQU		100275
GLU_NURBS_ERROR26		EQU		100276
GLU_NURBS_ERROR27		EQU		100277
GLU_NURBS_ERROR28		EQU		100278
GLU_NURBS_ERROR29		EQU		100279
GLU_NURBS_ERROR30		EQU		100280
GLU_NURBS_ERROR31		EQU		100281
GLU_NURBS_ERROR32		EQU		100282
GLU_NURBS_ERROR33		EQU		100283
GLU_NURBS_ERROR34		EQU		100284
GLU_NURBS_ERROR35		EQU		100285
GLU_NURBS_ERROR36		EQU		100286
GLU_NURBS_ERROR37		EQU		100287

;/* NurbsProperty */
GLU_AUTO_LOAD_MATRIX		EQU		100200
GLU_CULLING			EQU		100201
GLU_SAMPLING_TOLERANCE		EQU		100203
GLU_DISPLAY_MODE		EQU		100204
GLU_PARAMETRIC_TOLERANCE	EQU		100202
GLU_SAMPLING_METHOD		EQU		100205
GLU_U_STEP			EQU		100206
GLU_V_STEP			EQU		100207

;/* NurbsSampling */
GLU_OBJECT_PARAMETRIC_ERROR_EXT	EQU		100208
GLU_OBJECT_PATH_LENGTH_EXT	EQU		100209
GLU_PATH_LENGTH			EQU		100215
GLU_PARAMETRIC_ERROR		EQU		100216
GLU_DOMAIN_DISTANCE		EQU		100217

;/* NurbsTrim */
GLU_MAP1_TRIM_2			EQU		100210
GLU_MAP1_TRIM_3			EQU		100211

;/* QuadricDrawStyle */
GLU_POINT			EQU		100010
GLU_LINE			EQU		100011
GLU_FILL			EQU		100012
GLU_SILHOUETTE			EQU		100013

;/* QuadricCallback */
;GLU_ERROR

;/* QuadricNormal */
GLU_SMOOTH			EQU		100000
GLU_FLAT			EQU		100001
GLU_NONE			EQU		100002

;/* QuadricOrientation */
GLU_OUTSIDE			EQU		100020
GLU_INSIDE			EQU		100021

;/* TessCallback */
GLU_TESS_BEGIN			EQU		100100
GLU_BEGIN			EQU		100100
GLU_TESS_VERTEX			EQU		100101
GLU_VERTEX			EQU		100101
GLU_TESS_END			EQU		100102
GLU_END				EQU		100102
GLU_TESS_ERROR			EQU		100103
GLU_TESS_EDGE_FLAG		EQU		100104
GLU_EDGE_FLAG			EQU		100104
GLU_TESS_COMBINE		EQU		100105
GLU_TESS_BEGIN_DATA		EQU		100106
GLU_TESS_VERTEX_DATA		EQU		100107
GLU_TESS_END_DATA		EQU		100108
GLU_TESS_ERROR_DATA		EQU		100109
GLU_TESS_EDGE_FLAG_DATA		EQU		100110
GLU_TESS_COMBINE_DATA		EQU		100111
GLU_NURBS_MODE_EXT		EQU		100160
GLU_NURBS_TESSELLATOR_EXT	EQU		100161
GLU_NURBS_RENDERER_EXT		EQU		100162
GLU_NURBS_BEGIN_EXT		EQU		100164
GLU_NURBS_VERTEX_EXT		EQU		100165
GLU_NURBS_NORMAL_EXT		EQU		100166
GLU_NURBS_COLOR_EXT		EQU		100167
GLU_NURBS_TEX_COORD_EXT		EQU		100168
GLU_NURBS_END_EXT		EQU		100169
GLU_NURBS_BEGIN_DATA_EXT	EQU		100170
GLU_NURBS_VERTEX_DATA_EXT	EQU		100171
GLU_NURBS_NORMAL_DATA_EXT	EQU		100172
GLU_NURBS_COLOR_DATA_EXT	EQU		100173
GLU_NURBS_TEX_COORD_DATA_EXT	EQU		100174
GLU_NURBS_END_DATA_EXT		EQU		100175

;/* TessContour */
GLU_CW				EQU		100120
GLU_CCW				EQU		100121
GLU_INTERIOR			EQU		100122
GLU_EXTERIOR			EQU		100123
GLU_UNKNOWN			EQU		100124

;/* TessProperty */
GLU_TESS_WINDING_RULE		EQU		100140
GLU_TESS_BOUNDARY_ONLY		EQU		100141
GLU_TESS_TOLERANCE		EQU		100142

;/* TessError */
GLU_TESS_ERROR1			EQU		100151
GLU_TESS_ERROR2			EQU		100152
GLU_TESS_ERROR3			EQU		100153
GLU_TESS_ERROR4			EQU		100154
GLU_TESS_ERROR5			EQU		100155
GLU_TESS_ERROR6			EQU		100156
GLU_TESS_ERROR7			EQU		100157
GLU_TESS_ERROR8			EQU		100158
GLU_TESS_MISSING_BEGIN_POLYGON	EQU		100151
GLU_TESS_MISSING_BEGIN_CONTOUR	EQU		100152
GLU_TESS_MISSING_END_POLYGON	EQU		100153
GLU_TESS_MISSING_END_CONTOUR	EQU		100154
GLU_TESS_COORD_TOO_LARGE	EQU		100155
GLU_TESS_NEED_COMBINE_CALLBACK	EQU		100156

;/* TessWinding */
GLU_TESS_WINDING_ODD		EQU		100130
GLU_TESS_WINDING_NONZERO	EQU		100131
GLU_TESS_WINDING_POSITIVE	EQU		100132
GLU_TESS_WINDING_NEGATIVE	EQU		100133
GLU_TESS_WINDING_ABS_GEQ_TWO	EQU		100134



;***********PROTOs for glu.lib

XDEF gluBeginCurve,4
XDEF gluBeginPolygon,4
XDEF gluBeginSurface,4
XDEF gluBeginTrim,4
XDEF gluBuild1DMipmaps,4,4,4,4,4,4
XDEF gluBuild2DMipmaps,4,4,4,4,4,4,4
XDEF gluCylinder,4,4,4,4,4,4,4,4,4
XDEF gluDeleteNurbsRenderer,4
XDEF gluDeleteQuadric,4
XDEF gluDeleteTess,4
XDEF gluDisk,4,4,4,4,4,4,4
XDEF gluEndCurve,4
XDEF gluEndPolygon,4
XDEF gluEndSurface,4
XDEF gluEndTrim,4
XDEF gluErrorString,4
XDEF gluErrorUnicodeStringEXT,4
XDEF gluGetNurbsProperty,4,4,4
XDEF gluGetString,4
XDEF gluGetTessProperty,4,4,4
XDEF gluLoadSamplingMatrices,4,4,4,4
XDEF gluLookAt,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
XDEF gluNewNurbsRenderer
XDEF gluNewQuadric
XDEF gluNewTess
XDEF gluNextContour,4,4
XDEF gluNurbsCallback,4,4,4
XDEF gluNurbsCurve,4,4,4,4,4,4,4
XDEF gluNurbsProperty,4,4,4
XDEF gluNurbsSurface,4,4,4,4,4,4,4,4,4,4,4
XDEF gluOrtho2D,4,4,4,4,4,4,4,4
XDEF gluPartialDisk,4,4,4,4,4,4,4,4,4,4,4
XDEF gluPerspective,4,4,4,4,4,4,4,4
XDEF gluPickMatrix,4,4,4,4,4,4,4,4,4
XDEF gluProject,4,4,4,4,4,4,4,4,4,4,4,4
XDEF gluPwlCurve,4,4,4,4,4
XDEF gluQuadricCallback,4,4,4
XDEF gluQuadricDrawStyle,4,4
XDEF gluQuadricNormals,4,4
XDEF gluQuadricOrientation,4,4
XDEF gluQuadricTexture,4,4
XDEF gluScaleImage,4,4,4,4,4,4,4,4,4
XDEF gluSphere,4,4,4,4,4
XDEF gluTessBeginContour,4
XDEF gluTessBeginPolygon,4,4
XDEF gluTessCallback,4,4,4
XDEF gluTessEndContour,4
XDEF gluTessEndPolygon,4
XDEF gluTessNormal,4,4,4,4,4,4,4
XDEF gluTessProperty,4,4,4,4
XDEF gluTessVertex,4,4,4
XDEF gluUnProject,4,4,4,4,4,4,4,4,4,4,4,4

%endif ;// _NASM_GLU_
