This is a nearly verbatim copy of the GLU tessellator source code from SGI's OpenGL Sample Implementation at http://oss.sgi.com/projects/ogl-sample/ . Per http://oss.sgi.com/projects/FreeB/ , the code is covered under the SGI Free Software License B, version 2.0, a copy of which is in LICENSE.txt in this directory. The following changes were made in order to incorporate this code: - The addition of a simplified gluos.h to eliminate operating system dependencies. The entry points to the tessellator were prefixed with Sk_ to avoid symbol collisions with any host OS version of GLU via #defines in gluos.h. - The removal of inclusion of GL/glu.h and replacement with an include of sk_glu.h. - In tess.c, the obsolete entry points gluBeginPolygon, gluNextContour and gluEndPolygon in tess.c were #if 0'd out. Default branches were added to the switch statements in GotoState. - In memalloc.h, the include of malloc.h was changed to an include of stdlib.h. - In normal.c, an unused variable "w" was removed from __gl_projectPolygon. #if guards were placed around the definition of the unused Normalize function. - In priorityq-heap.c, an #include of was added. - In sweep.c, IsWindingInside() was given a return value to silence a warning-as-error in release builds. - In sweep.c, DoneEdgeDict()'s fixedEdges was wrapped in #indef NDEBUG, to silence a warning-as-error in release builds. - In priorityq.c, render.c, and others: the construct "if(1)...else" was replaced with "do{...}while(1)" to silence a warning-as-error in Mac builds. - rename all __gl_ functions to Sk__gl_ to avoid conflicting with other static linkers of this library.