From 67f226e179b7116379506f7b2c6c8d2b49ab97b2 Mon Sep 17 00:00:00 2001 From: Paul Berry Date: Sat, 6 Apr 2013 19:16:58 -0700 Subject: [PATCH] glsl: Fix ir_print_visitor's handling of interpolation qualifiers. This patch updates the interp[] array to match the enum glsl_interp_qualifier. Reviewed-by: Jordan Justen Reviewed-by: Kenneth Graunke v2: Add a STATIC_ASSERT to make sure the array is the correct size. This required adding INTERP_QUALIFIER_COUNT to the enum. --- src/glsl/ir_print_visitor.cpp | 4 +++- src/mesa/main/mtypes.h | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp index 597d2813ff2..fb0dd08f810 100644 --- a/src/glsl/ir_print_visitor.cpp +++ b/src/glsl/ir_print_visitor.cpp @@ -24,6 +24,7 @@ #include "ir_print_visitor.h" #include "glsl_types.h" #include "glsl_parser_extras.h" +#include "main/macros.h" #include "program/hash_table.h" static void print_type(const glsl_type *t); @@ -149,7 +150,8 @@ void ir_print_visitor::visit(ir_variable *ir) const char *const mode[] = { "", "uniform ", "shader_in ", "shader_out ", "in ", "out ", "inout ", "const_in ", "sys ", "temporary " }; - const char *const interp[] = { "", "flat", "noperspective" }; + const char *const interp[] = { "", "smooth", "flat", "noperspective" }; + STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_QUALIFIER_COUNT); printf("(%s%s%s%s) ", cent, inv, mode[ir->mode], interp[ir->interpolation]); diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 008f68bda08..e46fa39ef5d 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1829,7 +1829,8 @@ enum glsl_interp_qualifier INTERP_QUALIFIER_NONE = 0, INTERP_QUALIFIER_SMOOTH, INTERP_QUALIFIER_FLAT, - INTERP_QUALIFIER_NOPERSPECTIVE + INTERP_QUALIFIER_NOPERSPECTIVE, + INTERP_QUALIFIER_COUNT /**< Number of interpolation qualifiers */ }; -- 2.30.2