1 /* 2 * wtess.h -- 3 * 4 * wings extra includes to avoid external dependencies 5 * Replaces glu.h and gl.h 6 * 7 * Copyright (c) 2020 Dan Gudmundsson 8 * 9 */ 10 11 12 /* 13 * Datatypes 14 */ 15 typedef unsigned int GLenum; 16 typedef unsigned char GLboolean; 17 typedef unsigned int GLbitfield; 18 typedef void GLvoid; 19 typedef signed char GLbyte; 20 typedef short GLshort; 21 typedef int GLint; 22 typedef unsigned char GLubyte; 23 typedef unsigned short GLushort; 24 typedef unsigned int GLuint; 25 typedef int GLsizei; 26 typedef float GLfloat; 27 typedef float GLclampf; 28 typedef double GLdouble; 29 typedef double GLclampd; 30 31 #define GL_FALSE 0 32 #define GL_TRUE 1 33 34 #define GL_LINE_LOOP 0x0002 35 #define GL_TRIANGLES 0x0004 36 #define GL_TRIANGLE_STRIP 0x0005 37 #define GL_TRIANGLE_FAN 0x0006 38 39 /* TessCallback */ 40 #define GLU_TESS_BEGIN 100100 41 #define GLU_BEGIN 100100 42 #define GLU_TESS_VERTEX 100101 43 #define GLU_VERTEX 100101 44 #define GLU_TESS_END 100102 45 #define GLU_END 100102 46 #define GLU_TESS_ERROR 100103 47 #define GLU_TESS_EDGE_FLAG 100104 48 #define GLU_EDGE_FLAG 100104 49 #define GLU_TESS_COMBINE 100105 50 #define GLU_TESS_BEGIN_DATA 100106 51 #define GLU_TESS_VERTEX_DATA 100107 52 #define GLU_TESS_END_DATA 100108 53 #define GLU_TESS_ERROR_DATA 100109 54 #define GLU_TESS_EDGE_FLAG_DATA 100110 55 #define GLU_TESS_COMBINE_DATA 100111 56 57 /* TessContour */ 58 #define GLU_CW 100120 59 #define GLU_CCW 100121 60 #define GLU_INTERIOR 100122 61 #define GLU_EXTERIOR 100123 62 #define GLU_UNKNOWN 100124 63 64 /* TessProperty */ 65 #define GLU_TESS_WINDING_RULE 100140 66 #define GLU_TESS_BOUNDARY_ONLY 100141 67 #define GLU_TESS_TOLERANCE 100142 68 69 /* TessError */ 70 #define GLU_TESS_ERROR1 100151 71 #define GLU_TESS_ERROR2 100152 72 #define GLU_TESS_ERROR3 100153 73 #define GLU_TESS_ERROR4 100154 74 #define GLU_TESS_ERROR5 100155 75 #define GLU_TESS_ERROR6 100156 76 #define GLU_TESS_ERROR7 100157 77 #define GLU_TESS_ERROR8 100158 78 #define GLU_TESS_MISSING_BEGIN_POLYGON 100151 79 #define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 80 #define GLU_TESS_MISSING_END_POLYGON 100153 81 #define GLU_TESS_MISSING_END_CONTOUR 100154 82 #define GLU_TESS_COORD_TOO_LARGE 100155 83 #define GLU_TESS_NEED_COMBINE_CALLBACK 100156 84 85 /* TessWinding */ 86 #define GLU_TESS_WINDING_ODD 100130 87 #define GLU_TESS_WINDING_NONZERO 100131 88 #define GLU_TESS_WINDING_POSITIVE 100132 89 #define GLU_TESS_WINDING_NEGATIVE 100133 90 #define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 91 92 /* ErrorCode */ 93 #define GLU_INVALID_ENUM 100900 94 #define GLU_INVALID_VALUE 100901 95 #define GLU_OUT_OF_MEMORY 100902 96 #define GLU_INCOMPATIBLE_GL_VERSION 100903 97 #define GLU_INVALID_OPERATION 100904 98 99 #define GLAPIENTRY 100 #define GLAPIENTRYP GLAPIENTRY * 101 102 /* Internal convenience typedefs */ 103 typedef void (GLAPIENTRYP _GLUfuncptr)(void); 104 105 /* else */ 106 /* define GLAPIENTRY __stdcall */ 107 /* # endif */ 108 109 typedef struct GLUtesselator GLUtesselator; 110 typedef GLUtesselator GLUtesselatorObj; 111 typedef GLUtesselator GLUtriangulatorObj; 112 113 #define GLU_TESS_MAX_COORD 1.0e150 114 115 GLUtesselator* gluNewTess (void); 116 void gluDeleteTess(GLUtesselator* tess); 117 118 void gluTessBeginContour (GLUtesselator* tess); 119 void gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data); 120 void gluTessCallback (GLUtesselator* tess, GLenum which, _GLUfuncptr CallBackFunc); 121 void gluTessEndContour (GLUtesselator* tess); 122 void gluTessEndPolygon (GLUtesselator* tess); 123 void gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ); 124 void gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data); 125 void gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data); 126