mesa: add debug printer for primitive name
authorKeith Whitwell <keithw@vmware.com>
Tue, 30 Jun 2009 11:13:50 +0000 (12:13 +0100)
committerKeith Whitwell <keithw@vmware.com>
Tue, 30 Jun 2009 11:13:59 +0000 (12:13 +0100)
Add a simple version of _mesa_lookup_enum_by_nr() which expects a primitive
enum (GL_POINTS..GL_POLYGON).  This avoids some annoying duplicates
when looking up primitives, such as the GL_FALSE/GL_POINTS clash.

src/mesa/main/enums.c
src/mesa/main/enums.h

index cf893fdac5112ffd97fe2cc2304ef2192e028956..417cee8fb2af968943aa658fd80dd6fd5b517794 100644 (file)
@@ -5059,6 +5059,28 @@ const char *_mesa_lookup_enum_by_nr( int nr )
    }
 }
 
+/* Get the name of an enum given that it is a primitive type.  Avoids
+ * GL_FALSE/GL_POINTS ambiguity and others.
+ */
+const char *_mesa_lookup_prim_by_nr( int nr )
+{
+   switch (nr) {
+   case GL_POINTS: return "GL_POINTS";
+   case GL_LINES: return "GL_LINES";
+   case GL_LINE_STRIP: return "GL_LINE_STRIP";
+   case GL_LINE_LOOP: return "GL_LINE_LOOP";
+   case GL_TRIANGLES: return "GL_TRIANGLES";
+   case GL_TRIANGLE_STRIP: return "GL_TRIANGLE_STRIP";
+   case GL_TRIANGLE_FAN: return "GL_TRIANGLE_FAN";
+   case GL_QUADS: return "GL_QUADS";
+   case GL_QUAD_STRIP: return "GL_QUAD_STRIP";
+   case GL_POLYGON: return "GL_POLYGON";
+   case GL_POLYGON+1: return "OUTSIDE_BEGIN_END";
+   default: return "<invalid>";
+   }
+}
+
+
 int _mesa_lookup_enum_by_name( const char *symbol )
 {
    enum_elt * f = NULL;
index 23a4767f3501eef2f920e59fb528f68998423f4d..b5f69001b84fe5ca9a676b329fe97a1229c3b1ca 100644 (file)
 #if defined(_HAVE_FULL_GL) && _HAVE_FULL_GL
 
 extern const char *_mesa_lookup_enum_by_nr( int nr );
+
+/* Get the name of an enum given that it is a primitive type.  Avoids
+ * GL_FALSE/GL_POINTS ambiguity and others.
+ */
+const char *_mesa_lookup_prim_by_nr( int nr );
+
 extern int _mesa_lookup_enum_by_name( const char *symbol );
 
 #else