Ignore:
Timestamp:
Mar 11, 2000, 10:05:07 AM (25 years ago)
Author:
jeroen
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/opengl/glu/tess/tess.c

    r2689 r3079  
    1 /* $Id: tess.c,v 1.1 2000-02-09 08:47:38 jeroen Exp $ */
     1/* $Id: tess.c,v 1.2 2000-03-11 09:05:04 jeroen Exp $ */
    22/*
    33** License Applicability. Except to the extent portions of this file are
     
    3737** Author: Eric Veach, July 1994.
    3838**
    39 ** $Date: 2000-02-09 08:47:38 $ $Revision: 1.1 $
    40 ** $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/opengl/glu/tess/tess.c,v 1.1 2000-02-09 08:47:38 jeroen Exp $
     39** $Date: 2000-03-11 09:05:04 $ $Revision: 1.2 $
     40** $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/opengl/glu/tess/tess.c,v 1.2 2000-03-11 09:05:04 jeroen Exp $
    4141*/
    4242
     
    5959#define FALSE 0
    6060
    61 /*ARGSUSED*/ static void GLAPI noBegin( GLenum type ) {}
    62 /*ARGSUSED*/ static void GLAPI noEdgeFlag( GLboolean boundaryEdge ) {}
    63 /*ARGSUSED*/ static void GLAPI noVertex( void *data ) {}
    64 /*ARGSUSED*/ static void GLAPI noEnd( void ) {}
    65 /*ARGSUSED*/ static void GLAPI noError( GLenum errnum ) {}
    66 /*ARGSUSED*/ static void GLAPI noCombine( GLdouble coords[3], void *data[4],
     61/*ARGSUSED*/ static void GLCALLBACK noBegin( GLenum type ) {}
     62/*ARGSUSED*/ static void GLCALLBACK noEdgeFlag( GLboolean boundaryEdge ) {}
     63/*ARGSUSED*/ static void GLCALLBACK noVertex( void *data ) {}
     64/*ARGSUSED*/ static void GLCALLBACK noEnd( void ) {}
     65/*ARGSUSED*/ static void GLCALLBACK noError( GLenum errnum ) {}
     66/*ARGSUSED*/ static void GLCALLBACK noCombine( GLdouble coords[3], void *data[4],
    6767                                    GLfloat weight[4], void **dataOut ) {}
    68 /*ARGSUSED*/ static void GLAPI noMesh( GLUmesh *mesh ) {}
    69 
    70 
    71 /*ARGSUSED*/ void GLAPI __gl_noBeginData( GLenum type,
     68/*ARGSUSED*/ static void GLCALLBACK noMesh( GLUmesh *mesh ) {}
     69
     70
     71/*ARGSUSED*/ void __gl_noBeginData( GLenum type,
    7272                                             void *polygonData ) {}
    73 /*ARGSUSED*/ void GLAPI __gl_noEdgeFlagData( GLboolean boundaryEdge,
     73/*ARGSUSED*/ void __gl_noEdgeFlagData( GLboolean boundaryEdge,
    7474                                       void *polygonData ) {}
    75 /*ARGSUSED*/ void GLAPI __gl_noVertexData( void *data,
     75/*ARGSUSED*/ void __gl_noVertexData( void *data,
    7676                                              void *polygonData ) {}
    77 /*ARGSUSED*/ void GLAPI __gl_noEndData( void *polygonData ) {}
    78 /*ARGSUSED*/ void GLAPI __gl_noErrorData( GLenum errnum,
     77/*ARGSUSED*/ void __gl_noEndData( void *polygonData ) {}
     78/*ARGSUSED*/ void __gl_noErrorData( GLenum errnum,
    7979                                             void *polygonData ) {}
    80 /*ARGSUSED*/ void GLAPI __gl_noCombineData( GLdouble coords[3],
     80/*ARGSUSED*/ void __gl_noCombineData( GLdouble coords[3],
    8181                                               void *data[4],
    8282                                               GLfloat weight[4],
     
    105105
    106106  if (memInit( MAX_FAST_ALLOC ) == 0) {
    107      return 0;                  /* out of memory */
     107     return 0;                  /* out of memory */
    108108  }
    109109  tess = (GLUtesselator *)memAlloc( sizeof( GLUtesselator ));
    110110  if (tess == NULL) {
    111      return 0;                  /* out of memory */
     111     return 0;                  /* out of memory */
    112112  }
    113113
     
    167167      switch( tess->state ) {
    168168      case T_DORMANT:
    169         CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_POLYGON );
    170         gluTessBeginPolygon( tess, NULL );
    171         break;
     169        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_POLYGON );
     170        gluTessBeginPolygon( tess, NULL );
     171        break;
    172172      case T_IN_POLYGON:
    173         CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_CONTOUR );
    174         gluTessBeginContour( tess );
    175         break;
     173        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_CONTOUR );
     174        gluTessBeginContour( tess );
     175        break;
    176176      }
    177177    } else {
    178178      switch( tess->state ) {
    179179      case T_IN_CONTOUR:
    180         CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_CONTOUR );
    181         gluTessEndContour( tess );
    182         break;
     180        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_CONTOUR );
     181        gluTessEndContour( tess );
     182        break;
    183183      case T_IN_POLYGON:
    184         CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_POLYGON );
    185         /* gluTessEndPolygon( tess ) is too much work! */
    186         MakeDormant( tess );
    187         break;
     184        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_POLYGON );
     185        /* gluTessEndPolygon( tess ) is too much work! */
     186        MakeDormant( tess );
     187        break;
    188188      }
    189189    }
     
    192192
    193193
    194 void GLAPI
     194GLUAPI void GLAPIENTRY
    195195gluDeleteTess( GLUtesselator *tess )
    196196{
     
    200200
    201201
    202 void GLAPI
     202GLUAPI void GLAPIENTRY
    203203gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value )
    204204{
     
    213213  case GLU_TESS_WINDING_RULE:
    214214    windingRule = (GLenum) value;
    215     if( windingRule != value ) break;   /* not an integer */
     215    if( windingRule != value ) break;   /* not an integer */
    216216
    217217    switch( windingRule ) {
     
    239239
    240240/* Returns tessellator property */
    241 void GLAPI
     241GLUAPI void GLAPIENTRY
    242242gluGetTessProperty( GLUtesselator *tess, GLenum which, GLdouble *value )
    243243{
     
    250250   case GLU_TESS_WINDING_RULE:
    251251      assert(tess->windingRule == GLU_TESS_WINDING_ODD ||
    252              tess->windingRule == GLU_TESS_WINDING_NONZERO ||
    253              tess->windingRule == GLU_TESS_WINDING_POSITIVE ||
    254              tess->windingRule == GLU_TESS_WINDING_NEGATIVE ||
    255              tess->windingRule == GLU_TESS_WINDING_ABS_GEQ_TWO);
     252             tess->windingRule == GLU_TESS_WINDING_NONZERO ||
     253             tess->windingRule == GLU_TESS_WINDING_POSITIVE ||
     254             tess->windingRule == GLU_TESS_WINDING_NEGATIVE ||
     255             tess->windingRule == GLU_TESS_WINDING_ABS_GEQ_TWO);
    256256      *value= tess->windingRule;
    257257      break;
     
    267267} /* gluGetTessProperty() */
    268268
    269 void GLAPI
     269GLUAPI void GLAPIENTRY
    270270gluTessNormal( GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z )
    271271{
     
    275275}
    276276
    277 void GLAPI
    278 gluTessCallback( GLUtesselator *tess, GLenum which, void (GLAPI *fn)())
     277GLUAPI void GLAPIENTRY
     278gluTessCallback( GLUtesselator *tess, GLenum which, void (GLCALLBACK *fn)())
    279279{
    280280  switch( which ) {
    281281  case GLU_TESS_BEGIN:
    282     tess->callBegin = (fn == NULL) ? &noBegin : (void (GLAPI *)(GLenum)) fn;
     282    tess->callBegin = (fn == NULL) ? &noBegin : (void (GLCALLBACK *)(GLenum)) fn;
    283283    return;
    284284  case GLU_TESS_BEGIN_DATA:
    285285    tess->callBeginData = (fn == NULL) ?
    286         &__gl_noBeginData : (void (GLAPI *)(GLenum, void *)) fn;
     286        &__gl_noBeginData : (void (GLCALLBACK *)(GLenum, void *)) fn;
    287287    return;
    288288  case GLU_TESS_EDGE_FLAG:
    289289    tess->callEdgeFlag = (fn == NULL) ? &noEdgeFlag :
    290                                         (void (GLAPI *)(GLboolean)) fn;
     290                                        (void (GLCALLBACK *)(GLboolean)) fn;
    291291    /* If the client wants boundary edges to be flagged,
    292292     * we render everything as separate triangles (no strips or fans).
     
    296296  case GLU_TESS_EDGE_FLAG_DATA:
    297297    tess->callEdgeFlagData= (fn == NULL) ?
    298         &__gl_noEdgeFlagData : (void (GLAPI *)(GLboolean, void *)) fn;
     298        &__gl_noEdgeFlagData : (void (GLCALLBACK *)(GLboolean, void *)) fn;
    299299    /* If the client wants boundary edges to be flagged,
    300300     * we render everything as separate triangles (no strips or fans).
     
    304304  case GLU_TESS_VERTEX:
    305305    tess->callVertex = (fn == NULL) ? &noVertex :
    306                                       (void (GLAPI *)(void *)) fn;
     306                                      (void (GLCALLBACK *)(void *)) fn;
    307307    return;
    308308  case GLU_TESS_VERTEX_DATA:
    309309    tess->callVertexData = (fn == NULL) ?
    310         &__gl_noVertexData : (void (GLAPI *)(void *, void *)) fn;
     310        &__gl_noVertexData : (void (GLCALLBACK *)(void *, void *)) fn;
    311311    return;
    312312  case GLU_TESS_END:
    313     tess->callEnd = (fn == NULL) ? &noEnd : (void (GLAPI *)(void)) fn;
     313    tess->callEnd = (fn == NULL) ? &noEnd : (void (GLCALLBACK *)(void)) fn;
    314314    return;
    315315  case GLU_TESS_END_DATA:
    316316    tess->callEndData = (fn == NULL) ? &__gl_noEndData :
    317                                        (void (GLAPI *)(void *)) fn;
     317                                       (void (GLCALLBACK *)(void *)) fn;
    318318    return;
    319319  case GLU_TESS_ERROR:
    320     tess->callError = (fn == NULL) ? &noError : (void (GLAPI *)(GLenum)) fn;
     320    tess->callError = (fn == NULL) ? &noError : (void (GLCALLBACK *)(GLenum)) fn;
    321321    return;
    322322  case GLU_TESS_ERROR_DATA:
    323323    tess->callErrorData = (fn == NULL) ?
    324         &__gl_noErrorData : (void (GLAPI *)(GLenum, void *)) fn;
     324        &__gl_noErrorData : (void (GLCALLBACK *)(GLenum, void *)) fn;
    325325    return;
    326326  case GLU_TESS_COMBINE:
    327327    tess->callCombine = (fn == NULL) ? &noCombine :
    328         (void (GLAPI *)(GLdouble [3],void *[4], GLfloat [4], void ** )) fn;
     328        (void (GLCALLBACK *)(GLdouble [3],void *[4], GLfloat [4], void ** )) fn;
    329329    return;
    330330  case GLU_TESS_COMBINE_DATA:
    331331    tess->callCombineData = (fn == NULL) ? &__gl_noCombineData :
    332                                            (void (GLAPI *)(GLdouble [3],
    333                                                      void *[4],
    334                                                      GLfloat [4],
    335                                                      void **,
    336                                                      void *)) fn;
     332                                           (void (GLCALLBACK *)(GLdouble [3],
     333                                                     void *[4],
     334                                                     GLfloat [4],
     335                                                     void **,
     336                                                     void *)) fn;
    337337    return;
    338338  case GLU_TESS_MESH:
    339     tess->callMesh = (fn == NULL) ? &noMesh : (void (GLAPI *)(GLUmesh *)) fn;
     339    tess->callMesh = (fn == NULL) ? &noMesh : (void (GLCALLBACK *)(GLUmesh *)) fn;
    340340    return;
    341341  default:
     
    414414
    415415
    416 void GLAPI
     416GLUAPI void GLAPIENTRY
    417417gluTessVertex( GLUtesselator *tess, GLdouble coords[3], void *data )
    418418{
     
    461461
    462462
    463 void GLAPI
     463GLUAPI void GLAPIENTRY
    464464gluTessBeginPolygon( GLUtesselator *tess, void *data )
    465465{
     
    475475
    476476
    477 void GLAPI
     477GLUAPI void GLAPIENTRY
    478478gluTessBeginContour( GLUtesselator *tess )
    479479{
     
    492492
    493493
    494 void GLAPI
     494GLUAPI void GLAPIENTRY
    495495gluTessEndContour( GLUtesselator *tess )
    496496{
     
    499499}
    500500
    501 void GLAPI
     501GLUAPI void GLAPIENTRY
    502502gluTessEndPolygon( GLUtesselator *tess )
    503503{
    504504  GLUmesh *mesh;
    505505
    506   if (setjmp(tess->env) != 0) { 
     506  if (setjmp(tess->env) != 0) {
    507507     /* come back here if out of memory */
    508508     CALL_ERROR_OR_ERROR_DATA( GLU_OUT_OF_MEMORY );
     
    522522       */
    523523      if( __gl_renderCache( tess )) {
    524         tess->polygonData= NULL;
    525         return;
     524        tess->polygonData= NULL;
     525        return;
    526526      }
    527527    }
     
    541541   */
    542542  if ( !__gl_computeInterior( tess ) ) {
    543      longjmp(tess->env,1);      /* could've used a label */
     543     longjmp(tess->env,1);      /* could've used a label */
    544544  }
    545545
     
    557557      rc = __gl_meshTessellateInterior( mesh );
    558558    }
    559     if (rc == 0) longjmp(tess->env,1);  /* could've used a label */
     559    if (rc == 0) longjmp(tess->env,1);  /* could've used a label */
    560560
    561561    __gl_meshCheckMesh( mesh );
     
    569569    {
    570570      if( tess->boundaryOnly ) {
    571         __gl_renderBoundary( tess, mesh );  /* output boundary contours */
     571        __gl_renderBoundary( tess, mesh );  /* output boundary contours */
    572572      } else {
    573         __gl_renderMesh( tess, mesh );     /* output strips and fans */
     573        __gl_renderMesh( tess, mesh );     /* output strips and fans */
    574574      }
    575575    }
     
    583583       */
    584584      __gl_meshDiscardExterior( mesh );
    585       (*tess->callMesh)( mesh );                /* user wants the mesh itself */
     585      (*tess->callMesh)( mesh );                /* user wants the mesh itself */
    586586      tess->mesh = NULL;
    587587      tess->polygonData= NULL;
     
    595595
    596596
    597 void GLAPI
     597GLUAPI void GLAPIENTRY
    598598gluDeleteMesh( GLUmesh *mesh )
    599599{
     
    607607/* Obsolete calls -- for backward compatibility */
    608608
    609 void GLAPI
     609GLUAPI void GLAPIENTRY
    610610gluBeginPolygon( GLUtesselator *tess )
    611611{
     
    616616
    617617/*ARGSUSED*/
    618 void GLAPI
     618GLUAPI void GLAPIENTRY
    619619gluNextContour( GLUtesselator *tess, GLenum type )
    620620{
     
    624624
    625625
    626 void GLAPI
     626GLUAPI void GLAPIENTRY
    627627gluEndPolygon( GLUtesselator *tess )
    628628{
Note: See TracChangeset for help on using the changeset viewer.