Rename glu libtess symbols. When enabled in WebKit, the internal_glu libtess
authorsenorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 25 May 2011 14:46:17 +0000 (14:46 +0000)
committersenorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Wed, 25 May 2011 14:46:17 +0000 (14:46 +0000)
symbols in skia will collide with the same internal_ implementation in WebKit.
Rename the glu entry points with an Sk_ prefix instead.  Also, unfork the
changes to the libtess source as much as possible (the same as was done in
http://trac.webkit.org/changeset/87178).

Review URL:  http://codereview.appspot.com/4536080/

git-svn-id: http://skia.googlecode.com/svn/trunk@1419 2bbb7eff-a529-9590-31e7-b0007b416f81

16 files changed:
gpu/src/GrTesselatedPathRenderer.cpp
third_party/glu/README.skia
third_party/glu/gluos.h
third_party/glu/libtess/geom.c
third_party/glu/libtess/memalloc.c
third_party/glu/libtess/mesh.c
third_party/glu/libtess/mesh.h
third_party/glu/libtess/normal.c
third_party/glu/libtess/priorityq-heap.c
third_party/glu/libtess/priorityq.c
third_party/glu/libtess/render.c
third_party/glu/libtess/sweep.c
third_party/glu/libtess/tess.c
third_party/glu/libtess/tess.h
third_party/glu/libtess/tessmono.c
third_party/glu/sk_glu.h [moved from third_party/glu/internal_glu.h with 86% similarity]

index ff73a41..0e3389c 100644 (file)
@@ -21,7 +21,7 @@
 #include "GrPoint.h"
 #include "GrTDArray.h"
 
-#include <internal_glu.h>
+#include <sk_glu.h>
 
 struct PolygonData {
     PolygonData(GrTDArray<GrPoint>* vertices, GrTDArray<short>* indices)
@@ -289,34 +289,34 @@ FINISHED:
         inVertices[i * 3 + 2] = 1.0;
     }
 
-    GLUtesselator* tess = internal_gluNewTess();
+    GLUtesselator* tess = Sk_gluNewTess();
     unsigned windingRule = fill_type_to_glu_winding_rule(fill);
-    internal_gluTessProperty(tess, GLU_TESS_WINDING_RULE, windingRule);
-    internal_gluTessCallback(tess, GLU_TESS_BEGIN_DATA, (TESSCB) &beginData);
-    internal_gluTessCallback(tess, GLU_TESS_VERTEX_DATA, (TESSCB) &vertexData);
-    internal_gluTessCallback(tess, GLU_TESS_END_DATA, (TESSCB) &endData);
-    internal_gluTessCallback(tess, GLU_TESS_EDGE_FLAG_DATA, (TESSCB) &edgeFlagData);
-    internal_gluTessCallback(tess, GLU_TESS_COMBINE_DATA, (TESSCB) &combineData);
+    Sk_gluTessProperty(tess, GLU_TESS_WINDING_RULE, windingRule);
+    Sk_gluTessCallback(tess, GLU_TESS_BEGIN_DATA, (TESSCB) &beginData);
+    Sk_gluTessCallback(tess, GLU_TESS_VERTEX_DATA, (TESSCB) &vertexData);
+    Sk_gluTessCallback(tess, GLU_TESS_END_DATA, (TESSCB) &endData);
+    Sk_gluTessCallback(tess, GLU_TESS_EDGE_FLAG_DATA, (TESSCB) &edgeFlagData);
+    Sk_gluTessCallback(tess, GLU_TESS_COMBINE_DATA, (TESSCB) &combineData);
     GrTDArray<short> indices;
     GrTDArray<GrPoint> vertices;
     PolygonData data(&vertices, &indices);
 
-    internal_gluTessBeginPolygon(tess, &data);
+    Sk_gluTessBeginPolygon(tess, &data);
     size_t i = 0;
     for (int sp = 0; sp < subpathCnt; ++sp) {
-        internal_gluTessBeginContour(tess);
+        Sk_gluTessBeginContour(tess);
         int start = i;
         size_t end = start + subpathVertCount[sp];
         for (; i < end; ++i) {
             double* inVertex = &inVertices[i * 3];
             *vertices.append() = GrPoint::Make(inVertex[0], inVertex[1]);
-            internal_gluTessVertex(tess, inVertex, reinterpret_cast<void*>(i));
+            Sk_gluTessVertex(tess, inVertex, reinterpret_cast<void*>(i));
         }
-        internal_gluTessEndContour(tess);
+        Sk_gluTessEndContour(tess);
     }
 
-    internal_gluTessEndPolygon(tess);
-    internal_gluDeleteTess(tess);
+    Sk_gluTessEndPolygon(tess);
+    Sk_gluDeleteTess(tess);
 
     if (indices.count() > 0) {
         target->setVertexSourceToArray(layout, vertices.begin(), vertices.count());
index eff4abe..e97261c 100644 (file)
@@ -8,13 +8,12 @@ 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.
+    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 internal_glu.h.
-
-  - The entry points to the tessellator were prefixed with internal_
-    to avoid symbol collisions with any host OS version of GLU.
+    include of sk_glu.h.
 
   - In tess.c, the obsolete entry points gluBeginPolygon,
     gluNextContour and gluEndPolygon in tess.c were #if 0'd out.
index 6380cb2..3b651e9 100644 (file)
@@ -42,6 +42,18 @@ typedef unsigned int GLenum;
 typedef float GLfloat;
 typedef void GLvoid;
 
+#define gluNewTess Sk_gluNewTess
+#define gluDeleteTess Sk_gluDeleteTess
+#define gluTessProperty Sk_gluTessProperty
+#define gluGetTessProperty Sk_gluGetTessProperty
+#define gluTessNormal Sk_gluTessNormal
+#define gluTessCallback Sk_gluTessCallback
+#define gluTessVertex Sk_gluTessVertex
+#define gluTessBeginPolygon Sk_gluTessBeginPolygon
+#define gluTessBeginContour Sk_gluTessBeginContour
+#define gluTessEndContour Sk_gluTessEndContour
+#define gluTessEndPolygon Sk_gluTessEndPolygon
+
 #undef MIN
 #undef MAX
 
index 1bc112a..461d8b4 100644 (file)
@@ -39,8 +39,8 @@
 ** $Header: //depot/main/gfx/lib/glu/libtess/geom.c#5 $
 */
 
+#include "gluos.h"
 #include <assert.h>
-#include <gluos.h>
 #include "mesh.h"
 #include "geom.h"
 
index 242f040..bd5b4ac 100644 (file)
@@ -39,8 +39,8 @@
 ** $Header: //depot/main/gfx/lib/glu/libtess/memalloc.c#5 $
 */
 
-#include "string.h"
 #include "memalloc.h"
+#include "string.h"
 
 int __gl_memInit( size_t maxFast )
 {
index a897f50..7305fab 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/mesh.c#6 $
 */
 
-#include <assert.h>
+#include "gluos.h"
 #include <stddef.h>
-#include <gluos.h>
-#include "memalloc.h"
+#include <assert.h>
 #include "mesh.h"
+#include "memalloc.h"
 
 #define TRUE 1
 #define FALSE 0
index a92de0e..da149d7 100644 (file)
@@ -42,7 +42,7 @@
 #ifndef __mesh_h_
 #define __mesh_h_
 
-#include <internal_glu.h>
+#include <sk_glu.h>
 
 typedef struct GLUmesh GLUmesh; 
 
index 1c29a0a..8fb22f1 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/normal.c#5 $
 */
 
-#include <assert.h>
-#include <math.h>
-#include <gluos.h>
+#include "gluos.h"
 #include "mesh.h"
-#include "normal.h"
 #include "tess.h"
+#include "normal.h"
+#include <math.h>
+#include <assert.h>
 
 #define TRUE 1
 #define FALSE 0
index 984cb40..163bde6 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/priorityq-heap.c#5 $
 */
 
+#include <stddef.h>
 #include <assert.h>
 #include <limits.h>
-#include <stddef.h>
-#include "memalloc.h"
 #include "priorityq-heap.h"
+#include "memalloc.h"
 
 #define INIT_SIZE      32
 
index be045db..4b9e1ae 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/priorityq.c#5 $
 */
 
+#include "gluos.h"
+#include <stddef.h>
 #include <assert.h>
 #include <limits.h>            /* LONG_MAX */
-#include <stddef.h>
-#include <gluos.h>
 #include "memalloc.h"
 
 /* Include all the code for the regular heap-based queue here. */
index 5d7ca29..aff1298 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/render.c#5 $
 */
 
+#include "gluos.h"
 #include <assert.h>
 #include <stddef.h>
-#include <gluos.h>
 #include "mesh.h"
-#include "render.h"
 #include "tess.h"
+#include "render.h"
 
 #define TRUE 1
 #define FALSE 0
index ca2fc5e..6fe8a47 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/sweep.c#5 $
 */
 
+#include "gluos.h"
 #include <assert.h>
+#include <stddef.h>
 #include <setjmp.h>            /* longjmp */
 #include <limits.h>            /* LONG_MAX */
-#include <stddef.h>
 
-#include <gluos.h>
-#include "dict.h"
-#include "geom.h"
-#include "memalloc.h"
 #include "mesh.h"
+#include "geom.h"
+#include "tess.h"
+#include "dict.h"
 #include "priorityq.h"
+#include "memalloc.h"
 #include "sweep.h"
-#include "tess.h"
 
 #define TRUE 1
 #define FALSE 0
index 303b83c..c59a178 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/tess.c#7 $
 */
 
+#include "gluos.h"
+#include <stddef.h>
 #include <assert.h>
 #include <setjmp.h>
-#include <stddef.h>
-
-#include <gluos.h>
 #include "memalloc.h"
+#include "tess.h"
 #include "mesh.h"
 #include "normal.h"
-#include "render.h"
 #include "sweep.h"
-#include "tess.h"
 #include "tessmono.h"
+#include "render.h"
 
 #define GLU_TESS_DEFAULT_TOLERANCE 0.0
 #define GLU_TESS_MESH          100112  /* void (*)(GLUmesh *mesh)          */
@@ -92,7 +91,7 @@ typedef struct { GLUhalfEdge e, eSym; } EdgePair;
 
 
 GLUtesselator * GLAPIENTRY
-internal_gluNewTess( void )
+gluNewTess( void )
 {
   GLUtesselator *tess;
 
@@ -164,11 +163,11 @@ static void GotoState( GLUtesselator *tess, enum TessState newState )
       switch( tess->state ) {
       case T_DORMANT:
        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_POLYGON );
-       internal_gluTessBeginPolygon( tess, NULL );
+       gluTessBeginPolygon( tess, NULL );
        break;
       case T_IN_POLYGON:
        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_BEGIN_CONTOUR );
-       internal_gluTessBeginContour( tess );
+       gluTessBeginContour( tess );
        break;
       default:
         assert(0);
@@ -178,7 +177,7 @@ static void GotoState( GLUtesselator *tess, enum TessState newState )
       switch( tess->state ) {
       case T_IN_CONTOUR:
        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_CONTOUR );
-       internal_gluTessEndContour( tess );
+       gluTessEndContour( tess );
        break;
       case T_IN_POLYGON:
        CALL_ERROR_OR_ERROR_DATA( GLU_TESS_MISSING_END_POLYGON );
@@ -195,7 +194,7 @@ static void GotoState( GLUtesselator *tess, enum TessState newState )
 
 
 void GLAPIENTRY
-internal_gluDeleteTess( GLUtesselator *tess )
+gluDeleteTess( GLUtesselator *tess )
 {
   RequireState( tess, T_DORMANT );
   memFree( tess );
@@ -203,7 +202,7 @@ internal_gluDeleteTess( GLUtesselator *tess )
 
 
 void GLAPIENTRY
-internal_gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value )
+gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value )
 {
   GLenum windingRule;
 
@@ -242,7 +241,7 @@ internal_gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value )
 
 /* Returns tessellator property */
 void GLAPIENTRY
-internal_gluGetTessProperty( GLUtesselator *tess, GLenum which, GLdouble *value )
+gluGetTessProperty( GLUtesselator *tess, GLenum which, GLdouble *value )
 {
    switch (which) {
    case GLU_TESS_TOLERANCE:
@@ -270,7 +269,7 @@ internal_gluGetTessProperty( GLUtesselator *tess, GLenum which, GLdouble *value
 } /* gluGetTessProperty() */
 
 void GLAPIENTRY
-internal_gluTessNormal( GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z )
+gluTessNormal( GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z )
 {
   tess->normal[0] = x;
   tess->normal[1] = y;
@@ -278,7 +277,7 @@ internal_gluTessNormal( GLUtesselator *tess, GLdouble x, GLdouble y, GLdouble z
 }
 
 void GLAPIENTRY
-internal_gluTessCallback( GLUtesselator *tess, GLenum which, void (GLAPIENTRY *fn)())
+gluTessCallback( GLUtesselator *tess, GLenum which, void (GLAPIENTRY *fn)())
 {
   switch( which ) {
   case GLU_TESS_BEGIN:
@@ -417,7 +416,7 @@ static int EmptyCache( GLUtesselator *tess )
 
 
 void GLAPIENTRY
-internal_gluTessVertex( GLUtesselator *tess, GLdouble coords[3], void *data )
+gluTessVertex( GLUtesselator *tess, GLdouble coords[3], void *data )
 {
   int i, tooLarge = FALSE;
   GLdouble x, clamped[3];
@@ -464,7 +463,7 @@ internal_gluTessVertex( GLUtesselator *tess, GLdouble coords[3], void *data )
 
 
 void GLAPIENTRY
-internal_gluTessBeginPolygon( GLUtesselator *tess, void *data )
+gluTessBeginPolygon( GLUtesselator *tess, void *data )
 {
   RequireState( tess, T_DORMANT );
 
@@ -478,7 +477,7 @@ internal_gluTessBeginPolygon( GLUtesselator *tess, void *data )
 
 
 void GLAPIENTRY
-internal_gluTessBeginContour( GLUtesselator *tess )
+gluTessBeginContour( GLUtesselator *tess )
 {
   RequireState( tess, T_IN_POLYGON );
 
@@ -495,14 +494,14 @@ internal_gluTessBeginContour( GLUtesselator *tess )
 
 
 void GLAPIENTRY
-internal_gluTessEndContour( GLUtesselator *tess )
+gluTessEndContour( GLUtesselator *tess )
 {
   RequireState( tess, T_IN_CONTOUR );
   tess->state = T_IN_POLYGON;
 }
 
 void GLAPIENTRY
-internal_gluTessEndPolygon( GLUtesselator *tess )
+gluTessEndPolygon( GLUtesselator *tess )
 {
   GLUmesh *mesh;
 
index ca0769e..d8d3d21 100644 (file)
 #ifndef __tess_h_
 #define __tess_h_
 
+#include <sk_glu.h>
 #include <setjmp.h>
-
-#include <internal_glu.h>
-#include "dict.h"
 #include "mesh.h"
+#include "dict.h"
 #include "priorityq.h"
 
 /* The begin/end calls must be properly nested.  We keep track of
index 0bdc787..2e2cc79 100644 (file)
 ** $Header: //depot/main/gfx/lib/glu/libtess/tessmono.c#5 $
 */
 
-#include <assert.h>
+#include "gluos.h"
 #include <stdlib.h>
-
-#include <gluos.h>
 #include "geom.h"
 #include "mesh.h"
 #include "tessmono.h"
+#include <assert.h>
 
 #define AddWinding(eDst,eSrc)  (eDst->winding += eSrc->winding, \
                                 eDst->Sym->winding += eSrc->Sym->winding)
similarity index 86%
rename from third_party/glu/internal_glu.h
rename to third_party/glu/sk_glu.h
index 02c9cc8..7b2b261 100644 (file)
@@ -33,8 +33,8 @@
 // only the definitions, constants and function declarations necessary
 // to compile the GLU tessellator.
 
-#ifndef INTERNAL_GLU_H_
-#define INTERNAL_GLU_H_
+#ifndef SK_GLU_H_
+#define SK_GLU_H_
 
 #include "gluos.h"
 
@@ -110,32 +110,32 @@ typedef struct GLUtesselator GLUtesselator;
 extern "C" {
 #endif
 
-extern GLUtesselator * GLAPIENTRY internal_gluNewTess(void);
-extern void GLAPIENTRY internal_gluDeleteTess(GLUtesselator *tess);
-extern void GLAPIENTRY internal_gluTessProperty(GLUtesselator *tess,
+extern GLUtesselator * GLAPIENTRY Sk_gluNewTess(void);
+extern void GLAPIENTRY Sk_gluDeleteTess(GLUtesselator *tess);
+extern void GLAPIENTRY Sk_gluTessProperty(GLUtesselator *tess,
                                                 GLenum which,
                                                 GLdouble value);
-extern void GLAPIENTRY internal_gluGetTessProperty(GLUtesselator *tess,
+extern void GLAPIENTRY Sk_gluGetTessProperty(GLUtesselator *tess,
                                                    GLenum which,
                                                    GLdouble *value);
-extern void GLAPIENTRY internal_gluTessNormal(GLUtesselator *tess,
+extern void GLAPIENTRY Sk_gluTessNormal(GLUtesselator *tess,
                                               GLdouble x,
                                               GLdouble y,
                                               GLdouble z);
-extern void GLAPIENTRY internal_gluTessCallback(GLUtesselator *tess,
+extern void GLAPIENTRY Sk_gluTessCallback(GLUtesselator *tess,
                                                 GLenum which,
                                                 void (GLAPIENTRY *fn)());
-extern void GLAPIENTRY internal_gluTessVertex(GLUtesselator *tess,
+extern void GLAPIENTRY Sk_gluTessVertex(GLUtesselator *tess,
                                               GLdouble coords[3],
                                               void *data);
-extern void GLAPIENTRY internal_gluTessBeginPolygon(GLUtesselator *tess,
+extern void GLAPIENTRY Sk_gluTessBeginPolygon(GLUtesselator *tess,
                                                     void *data);
-extern void GLAPIENTRY internal_gluTessBeginContour(GLUtesselator *tess);
-extern void GLAPIENTRY internal_gluTessEndContour(GLUtesselator *tess);
-extern void GLAPIENTRY internal_gluTessEndPolygon(GLUtesselator *tess);
+extern void GLAPIENTRY Sk_gluTessBeginContour(GLUtesselator *tess);
+extern void GLAPIENTRY Sk_gluTessEndContour(GLUtesselator *tess);
+extern void GLAPIENTRY Sk_gluTessEndPolygon(GLUtesselator *tess);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif  // INTERNAL_GLU_H_
+#endif  // SK_GLU_H_