2 * Copyright 2010, Google Inc.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above
12 * copyright notice, this list of conditions and the following disclaimer
13 * in the documentation and/or other materials provided with the
15 * * Neither the name of Google Inc. nor the names of its
16 * contributors may be used to endorse or promote products derived from
17 * this software without specific prior written permission.
19 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 // This header is a skeleton substitute for GL/glu.h which contains
33 // only the definitions, constants and function declarations necessary
34 // to compile the GLU tessellator.
36 #ifndef INTERNAL_GLU_H_
37 #define INTERNAL_GLU_H_
42 #define GL_LINE_LOOP 0x0002
43 #define GL_TRIANGLES 0x0004
44 #define GL_TRIANGLE_STRIP 0x0005
45 #define GL_TRIANGLE_FAN 0x0006
48 #define GLU_INVALID_ENUM 100900
49 #define GLU_INVALID_VALUE 100901
50 #define GLU_OUT_OF_MEMORY 100902
53 #define GLU_TESS_BEGIN 100100
54 #define GLU_BEGIN 100100
55 #define GLU_TESS_VERTEX 100101
56 #define GLU_VERTEX 100101
57 #define GLU_TESS_END 100102
58 #define GLU_END 100102
59 #define GLU_TESS_ERROR 100103
60 #define GLU_TESS_EDGE_FLAG 100104
61 #define GLU_EDGE_FLAG 100104
62 #define GLU_TESS_COMBINE 100105
63 #define GLU_TESS_BEGIN_DATA 100106
64 #define GLU_TESS_VERTEX_DATA 100107
65 #define GLU_TESS_END_DATA 100108
66 #define GLU_TESS_ERROR_DATA 100109
67 #define GLU_TESS_EDGE_FLAG_DATA 100110
68 #define GLU_TESS_COMBINE_DATA 100111
72 #define GLU_CCW 100121
73 #define GLU_INTERIOR 100122
74 #define GLU_EXTERIOR 100123
75 #define GLU_UNKNOWN 100124
78 #define GLU_TESS_WINDING_RULE 100140
79 #define GLU_TESS_BOUNDARY_ONLY 100141
80 #define GLU_TESS_TOLERANCE 100142
83 #define GLU_TESS_ERROR1 100151
84 #define GLU_TESS_ERROR2 100152
85 #define GLU_TESS_ERROR3 100153
86 #define GLU_TESS_ERROR4 100154
87 #define GLU_TESS_ERROR5 100155
88 #define GLU_TESS_ERROR6 100156
89 #define GLU_TESS_ERROR7 100157
90 #define GLU_TESS_ERROR8 100158
91 #define GLU_TESS_MISSING_BEGIN_POLYGON 100151
92 #define GLU_TESS_MISSING_BEGIN_CONTOUR 100152
93 #define GLU_TESS_MISSING_END_POLYGON 100153
94 #define GLU_TESS_MISSING_END_CONTOUR 100154
95 #define GLU_TESS_COORD_TOO_LARGE 100155
96 #define GLU_TESS_NEED_COMBINE_CALLBACK 100156
99 #define GLU_TESS_WINDING_ODD 100130
100 #define GLU_TESS_WINDING_NONZERO 100131
101 #define GLU_TESS_WINDING_POSITIVE 100132
102 #define GLU_TESS_WINDING_NEGATIVE 100133
103 #define GLU_TESS_WINDING_ABS_GEQ_TWO 100134
105 #define GLU_TESS_MAX_COORD 1.0e150
107 typedef struct GLUtesselator GLUtesselator;
113 extern GLUtesselator * GLAPIENTRY internal_gluNewTess(void);
114 extern void GLAPIENTRY internal_gluDeleteTess(GLUtesselator *tess);
115 extern void GLAPIENTRY internal_gluTessProperty(GLUtesselator *tess,
118 extern void GLAPIENTRY internal_gluGetTessProperty(GLUtesselator *tess,
121 extern void GLAPIENTRY internal_gluTessNormal(GLUtesselator *tess,
125 extern void GLAPIENTRY internal_gluTessCallback(GLUtesselator *tess,
127 void (GLAPIENTRY *fn)());
128 extern void GLAPIENTRY internal_gluTessVertex(GLUtesselator *tess,
131 extern void GLAPIENTRY internal_gluTessBeginPolygon(GLUtesselator *tess,
133 extern void GLAPIENTRY internal_gluTessBeginContour(GLUtesselator *tess);
134 extern void GLAPIENTRY internal_gluTessEndContour(GLUtesselator *tess);
135 extern void GLAPIENTRY internal_gluTessEndPolygon(GLUtesselator *tess);
141 #endif // INTERNAL_GLU_H_