21 double *vertex_data[4],
32 for (i = 3; i < 6; i++)
52#define MAKE_GLU_CALLBACK(f) f
56#define MAKE_GLU_CALLBACK(f) ((void (*)(void))(f))
59static GLUtesselator*
Init(
void)
62 GLUtesselator* tobj = gluNewTess();
74 gluTessProperty(tobj, GLU_TESS_WINDING_RULE, winding_rule);
88 gluTessVertex(tobj, &d[x * 3], &d[x * 3]);
94 gluTessBeginPolygon(tobj,
NULL);
98 gluTessEndPolygon(tobj);
102 gluTessBeginContour(tobj);
106 gluTessEndContour(tobj);
Memory allocation wrappers that exit on failure.
static void * gv_calloc(size_t nmemb, size_t size)
static void Render_Contour2(GLUtesselator *tobj, sdot_op *p)
static void CALLBACK vertexCallback(void *vertex)
#define MAKE_GLU_CALLBACK(f)
static void Begin_Polygon(GLUtesselator *tobj)
static void Set_Winding_Rule(GLUtesselator *tobj, GLenum winding_rule)
static void End_Polygon(GLUtesselator *tobj)
void drawTessPolygon(sdot_op *p)
static void Begin_Contour(GLUtesselator *tobj)
static GLUtesselator * Init(void)
static void End_Contour(GLUtesselator *tobj)
static void CALLBACK combineCallback(double coords[3], double *vertex_data[4], float weight[4], double **dataOut)
parsing and deparsing of xdot operations