glsl: Convert glsl_type::base_type from #define'd constants to an enum.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 11 Nov 2010 07:20:47 +0000 (23:20 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 15 Nov 2010 21:33:57 +0000 (13:33 -0800)
This is nice because printing type->base_type in GDB will now give you a
readable name instead of a number.

src/glsl/glsl_types.cpp
src/glsl/glsl_types.h

index 82eb470605689761b387e8c4f1a18963a7e5875f..8c33cfa20d0143cd525c6b7ea37710444ee3c974 100644 (file)
@@ -46,7 +46,7 @@ glsl_type::init_talloc_type_ctx(void)
 }
 
 glsl_type::glsl_type(GLenum gl_type,
-                    unsigned base_type, unsigned vector_elements,
+                    glsl_base_type base_type, unsigned vector_elements,
                     unsigned matrix_columns, const char *name) :
    gl_type(gl_type),
    base_type(base_type),
index d38ef0b88b226bdac5ee2d35e9522a55df07e8a4..d62d493c8e8f2f1b5b54e2a61c515494cf948209 100644 (file)
@@ -43,15 +43,17 @@ _mesa_glsl_initialize_types(struct _mesa_glsl_parse_state *state);
 extern "C" void
 _mesa_glsl_release_types(void);
 
-#define GLSL_TYPE_UINT          0
-#define GLSL_TYPE_INT           1
-#define GLSL_TYPE_FLOAT         2
-#define GLSL_TYPE_BOOL          3
-#define GLSL_TYPE_SAMPLER       4
-#define GLSL_TYPE_STRUCT        5
-#define GLSL_TYPE_ARRAY         6
-#define GLSL_TYPE_VOID          7
-#define GLSL_TYPE_ERROR         8
+enum glsl_base_type {
+   GLSL_TYPE_UINT = 0,
+   GLSL_TYPE_INT,
+   GLSL_TYPE_FLOAT,
+   GLSL_TYPE_BOOL,
+   GLSL_TYPE_SAMPLER,
+   GLSL_TYPE_STRUCT,
+   GLSL_TYPE_ARRAY,
+   GLSL_TYPE_VOID,
+   GLSL_TYPE_ERROR
+};
 
 enum glsl_sampler_dim {
    GLSL_SAMPLER_DIM_1D = 0,
@@ -65,7 +67,7 @@ enum glsl_sampler_dim {
 
 struct glsl_type {
    GLenum gl_type;
-   unsigned base_type:4;
+   glsl_base_type base_type;
 
    unsigned sampler_dimensionality:3;
    unsigned sampler_shadow:1;
@@ -393,7 +395,7 @@ private:
 
    /** Constructor for vector and matrix types */
    glsl_type(GLenum gl_type,
-            unsigned base_type, unsigned vector_elements,
+            glsl_base_type base_type, unsigned vector_elements,
             unsigned matrix_columns, const char *name);
 
    /** Constructor for sampler types */