198 lines
7.3 KiB
C
198 lines
7.3 KiB
C
|
/*
|
||
|
* 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.
|
||
|
*/
|
||
|
|
||
|
#ifndef __glu_libtess_h__
|
||
|
#define __glu_libtess_h__
|
||
|
|
||
|
#define USE_MGL_NAMESPACE
|
||
|
|
||
|
#define gluNewTess mgluNewTess
|
||
|
#define gluDeleteTess mgluDeleteTess
|
||
|
#define gluTessBeginPolygon mgluTessBeginPolygon
|
||
|
#define gluTessBeginContour mgluTessBeginContour
|
||
|
#define gluTessVertex mgluTessVertex
|
||
|
#define gluTessEndPolygon mgluTessEndPolygon
|
||
|
#define gluTessEndContour mgluTessEndContour
|
||
|
#define gluTessProperty mgluTessProperty
|
||
|
#define gluTessNormal mgluTessNormal
|
||
|
#define gluTessCallback mgluTessCallback
|
||
|
#define gluGetTessProperty mgluGetTessProperty
|
||
|
#define gluBeginPolygon mgluBeginPolygon
|
||
|
#define gluNextContour mgluNextContour
|
||
|
#define gluEndPolygon mgluEndPolygon
|
||
|
|
||
|
#define GLAPI extern
|
||
|
#define GLAPIENTRY
|
||
|
typedef unsigned int GLenum;
|
||
|
typedef unsigned char GLboolean;
|
||
|
typedef unsigned int GLbitfield;
|
||
|
typedef signed char GLbyte;
|
||
|
typedef short GLshort;
|
||
|
typedef int GLint;
|
||
|
typedef int GLsizei;
|
||
|
typedef unsigned char GLubyte;
|
||
|
typedef unsigned short GLushort;
|
||
|
typedef unsigned int GLuint;
|
||
|
typedef float GLfloat;
|
||
|
typedef float GLclampf;
|
||
|
typedef double GLdouble;
|
||
|
typedef double GLclampd;
|
||
|
typedef void GLvoid;
|
||
|
|
||
|
/* Boolean */
|
||
|
#define GL_TRUE 1
|
||
|
#define GL_FALSE 0
|
||
|
|
||
|
/* BeginMode */
|
||
|
#define GL_LINE_LOOP 0x0002
|
||
|
#define GL_TRIANGLES 0x0004
|
||
|
#define GL_TRIANGLE_STRIP 0x0005
|
||
|
#define GL_TRIANGLE_FAN 0x0006
|
||
|
|
||
|
#ifndef GLAPIENTRYP
|
||
|
#define GLAPIENTRYP GLAPIENTRY *
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#ifdef __glu_h__
|
||
|
static_assert(false, "glu-libtess.h: glu.h must not be included!")
|
||
|
#endif
|
||
|
|
||
|
#ifdef __gl_h__
|
||
|
static_assert(false, "glu-libtess.h: gl.h must not be included!")
|
||
|
#endif
|
||
|
|
||
|
/*************************************************************/
|
||
|
|
||
|
/* StringName */
|
||
|
#define GLU_VERSION 100800
|
||
|
#define GLU_EXTENSIONS 100801
|
||
|
|
||
|
/* ErrorCode */
|
||
|
#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
|
||
|
|
||
|
/* TessCallback */
|
||
|
#define GLU_TESS_BEGIN 100100
|
||
|
#define GLU_BEGIN 100100
|
||
|
#define GLU_TESS_VERTEX 100101
|
||
|
#define GLU_VERTEX 100101
|
||
|
#define GLU_TESS_END 100102
|
||
|
#define GLU_END 100102
|
||
|
#define GLU_TESS_ERROR 100103
|
||
|
#define GLU_TESS_EDGE_FLAG 100104
|
||
|
#define GLU_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
|
||
|
|
||
|
/* TessContour */
|
||
|
#define GLU_CW 100120
|
||
|
#define GLU_CCW 100121
|
||
|
#define GLU_INTERIOR 100122
|
||
|
#define GLU_EXTERIOR 100123
|
||
|
#define GLU_UNKNOWN 100124
|
||
|
|
||
|
/* TessProperty */
|
||
|
#define GLU_TESS_WINDING_RULE 100140
|
||
|
#define GLU_TESS_BOUNDARY_ONLY 100141
|
||
|
#define GLU_TESS_TOLERANCE 100142
|
||
|
|
||
|
/* TessError */
|
||
|
#define GLU_TESS_ERROR1 100151
|
||
|
#define GLU_TESS_ERROR2 100152
|
||
|
#define GLU_TESS_ERROR3 100153
|
||
|
#define GLU_TESS_ERROR4 100154
|
||
|
#define GLU_TESS_ERROR5 100155
|
||
|
#define GLU_TESS_ERROR6 100156
|
||
|
#define GLU_TESS_ERROR7 100157
|
||
|
#define GLU_TESS_ERROR8 100158
|
||
|
#define GLU_TESS_MISSING_BEGIN_POLYGON 100151
|
||
|
#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
|
||
|
#define GLU_TESS_MISSING_END_POLYGON 100153
|
||
|
#define GLU_TESS_MISSING_END_CONTOUR 100154
|
||
|
#define GLU_TESS_COORD_TOO_LARGE 100155
|
||
|
#define GLU_TESS_NEED_COMBINE_CALLBACK 100156
|
||
|
|
||
|
/* TessWinding */
|
||
|
#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
|
||
|
|
||
|
/*************************************************************/
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
class GLUtesselator;
|
||
|
#else
|
||
|
typedef struct GLUtesselator GLUtesselator;
|
||
|
#endif
|
||
|
|
||
|
typedef GLUtesselator GLUtesselatorObj;
|
||
|
typedef GLUtesselator GLUtriangulatorObj;
|
||
|
|
||
|
#define GLU_TESS_MAX_COORD 1.0e150
|
||
|
|
||
|
/* Internal convenience typedefs */
|
||
|
typedef void (GLAPIENTRYP _GLUfuncptr)(void);
|
||
|
|
||
|
GLAPI void GLAPIENTRY gluBeginPolygon (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluDeleteTess (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluEndPolygon (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data);
|
||
|
GLAPI GLUtesselator* GLAPIENTRY gluNewTess (void);
|
||
|
GLAPI void GLAPIENTRY gluNextContour (GLUtesselator* tess, GLenum type);
|
||
|
GLAPI void GLAPIENTRY gluTessBeginContour (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data);
|
||
|
GLAPI void GLAPIENTRY gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc);
|
||
|
GLAPI void GLAPIENTRY gluTessEndContour (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluTessEndPolygon (GLUtesselator* tess);
|
||
|
GLAPI void GLAPIENTRY gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ);
|
||
|
GLAPI void GLAPIENTRY gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data);
|
||
|
GLAPI void GLAPIENTRY gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data);
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* __glu_libtess_h__ */
|