From fce1150156edc8b51f5cf077679c0fdb5d582aba Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Tue, 9 Mar 2010 15:58:52 -0800 Subject: [PATCH] Convert is_glsl_type_matrix to glsl_type::is_matrix --- ast_to_hir.cpp | 8 ++++---- glsl_types.h | 13 +++++++++---- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/ast_to_hir.cpp b/ast_to_hir.cpp index 1de58245913..5811d73586a 100644 --- a/ast_to_hir.cpp +++ b/ast_to_hir.cpp @@ -169,14 +169,14 @@ arithmetic_result_type(const struct glsl_type *type_a, * more detail how vectors and matrices are operated on." */ if (! multiply) { - if (is_glsl_type_matrix(type_a) && is_glsl_type_matrix(type_b) + if (type_a->is_matrix() && type_b->is_matrix() && (type_a->vector_elements == type_b->vector_elements) && (type_a->matrix_rows == type_b->matrix_rows)) return type_a; else return glsl_error_type; } else { - if (is_glsl_type_matrix(type_a) && is_glsl_type_matrix(type_b)) { + if (type_a->is_matrix() && type_b->is_matrix()) { if (type_a->vector_elements == type_b->matrix_rows) { char type_name[7]; const struct glsl_type *t; @@ -199,14 +199,14 @@ arithmetic_result_type(const struct glsl_type *type_a, _mesa_symbol_table_find_symbol(state->symbols, 0, type_name); return (t != NULL) ? t : glsl_error_type; } - } else if (is_glsl_type_matrix(type_a)) { + } else if (type_a->is_matrix()) { /* A is a matrix and B is a column vector. Columns of A must match * rows of B. */ if (type_a->vector_elements == type_b->vector_elements) return type_b; } else { - assert(is_glsl_type_matrix(type_b)); + assert(type_b->is_matrix()); /* A is a row vector and B is a matrix. Columns of A must match * rows of B. diff --git a/glsl_types.h b/glsl_types.h index 2b660168bdd..f26dcd6b538 100644 --- a/glsl_types.h +++ b/glsl_types.h @@ -156,11 +156,16 @@ struct glsl_type { && (base_type >= GLSL_TYPE_UINT) && (base_type <= GLSL_TYPE_BOOL); } -}; -#define is_glsl_type_matrix(t) \ - (((t)->matrix_rows > 0) \ - && ((t)->base_type == GLSL_TYPE_FLOAT)) /* GLSL only has float matrices. */ + /** + * Query whether or not a type is a matrix + */ + bool is_matrix() const + { + /* GLSL only has float matrices. */ + return (matrix_rows > 0) && (base_type == GLSL_TYPE_FLOAT); + } +}; struct glsl_struct_field { const struct glsl_type *type; -- 2.30.2