aboutsummaryrefslogtreecommitdiff
path: root/generic/Curve.c
diff options
context:
space:
mode:
authorlecoanet2003-03-17 16:25:25 +0000
committerlecoanet2003-03-17 16:25:25 +0000
commit5f7fd52b5abcdf55fad660ba4ae945c8724f318d (patch)
tree40a7e7503f17264e62499bf109ebf4cb4a1f5f99 /generic/Curve.c
parent45142b9824396dbba18819a8d11b14bad71ec3ce (diff)
downloadtkzinc-5f7fd52b5abcdf55fad660ba4ae945c8724f318d.zip
tkzinc-5f7fd52b5abcdf55fad660ba4ae945c8724f318d.tar.gz
tkzinc-5f7fd52b5abcdf55fad660ba4ae945c8724f318d.tar.bz2
tkzinc-5f7fd52b5abcdf55fad660ba4ae945c8724f318d.tar.xz
* (ToArea): Corrige un probleme de d�tection sur des
triangles dispos�s en fans. * (CurveTessError): Suppression de la dependance � GLU.
Diffstat (limited to 'generic/Curve.c')
-rw-r--r--generic/Curve.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/generic/Curve.c b/generic/Curve.c
index 37567ac..6c9b5ad 100644
--- a/generic/Curve.c
+++ b/generic/Curve.c
@@ -618,12 +618,13 @@ static void
CurveTessError(GLenum errno,
void *data)
{
- const GLubyte *msg;
-
- msg = gluErrorString(errno);
- fprintf(stderr, "Tesselation error in curve item: %s\n", msg);
+ fprintf(stderr, "Tesselation error in curve item: %d\n", errno);
}
+#ifndef WIN
+#define CALLBACK
+#endif
+
static void
UpdateTristrip(CurveItem cv,
ZnPoly *poly,
@@ -635,7 +636,7 @@ UpdateTristrip(CurveItem cv,
int i, j;
/*printf("UpdateTristrips sur %d\n", ((Item) cv)->id);*/
- gluTessCallback(wi->tess, GLU_TESS_BEGIN_DATA, (void (*)()) CurveTessBegin);
+ gluTessCallback(wi->tess, GLU_TESS_BEGIN_DATA, (void (CALLBACK *)()) CurveTessBegin);
gluTessCallback(wi->tess, GLU_TESS_VERTEX_DATA, (void (*)()) CurveTessVertex);
gluTessCallback(wi->tess, GLU_TESS_END_DATA, (void (*)()) CurveTessEnd);
gluTessCallback(wi->tess, GLU_TESS_COMBINE_DATA, (void (*)()) CurveTessCombine);
@@ -1059,7 +1060,7 @@ ToArea(Item item,
ZnPoint *points;
ZnPoint triangle[3];
ZnPoint end_points[LINE_END_POINTS];
- int i, j, num_points, result=-1, result2;
+ int i, j, num_points, stop, result=-1, result2;
int width, height;
ZnBool first_done = False;
@@ -1074,11 +1075,14 @@ ToArea(Item item,
num_points = cv->tristrip.strips[i].num_points;
points = cv->tristrip.strips[i].points;
j = 0;
+ stop = num_points-2;
if (cv->tristrip.strips[i].fan) {
triangle[0] = points[0];
j++;
+ points++;
+ stop++;
}
- for (; j < num_points-2; j++, points++) {
+ for (; j < stop; j++, points++) {
if (cv->tristrip.strips[i].fan) {
triangle[1] = points[0];
triangle[2] = points[1];