diff options
author | lecoanet | 2003-03-17 16:25:25 +0000 |
---|---|---|
committer | lecoanet | 2003-03-17 16:25:25 +0000 |
commit | 5f7fd52b5abcdf55fad660ba4ae945c8724f318d (patch) | |
tree | 40a7e7503f17264e62499bf109ebf4cb4a1f5f99 | |
parent | 45142b9824396dbba18819a8d11b14bad71ec3ce (diff) | |
download | tkzinc-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.
-rw-r--r-- | generic/Curve.c | 18 |
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]; |