summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2010-09-01 14:49:53 -0700
committerKenneth Graunke <kenneth@whitecape.org>2010-09-01 18:57:50 -0700
commitee88c4664016b11359c391cc62296bcbfcc5decd (patch)
tree73e77c3d10dce10aa547f55754bb897680cd1dea
parent36192b772eda190c4d78e8a4979c4e3c6377ae61 (diff)
ast_function: Remove bogus cases from generate_constructor_matrix.
There are no integer matrix types, so switching on them is silly.
-rw-r--r--src/glsl/ast_function.cpp37
1 files changed, 8 insertions, 29 deletions
diff --git a/src/glsl/ast_function.cpp b/src/glsl/ast_function.cpp
index d39c4b195c..d7d1b3eeb7 100644
--- a/src/glsl/ast_function.cpp
+++ b/src/glsl/ast_function.cpp
@@ -485,38 +485,17 @@ void
generate_constructor_matrix(const glsl_type *type, ir_constant *initializer,
ir_constant_data *data)
{
- switch (type->base_type) {
- case GLSL_TYPE_UINT:
- case GLSL_TYPE_INT:
- for (unsigned i = 0; i < type->components(); i++)
- data->u[i] = 0;
-
- for (unsigned i = 0; i < type->matrix_columns; i++) {
- /* The array offset of the ith row and column of the matrix.
- */
- const unsigned idx = (i * type->vector_elements) + i;
+ assert(type->base_type == GLSL_TYPE_FLOAT);
+ assert(initializer->type->is_scalar());
- data->u[idx] = initializer->value.u[0];
- }
- break;
+ for (unsigned i = 0; i < type->components(); i++)
+ data->f[i] = 0;
- case GLSL_TYPE_FLOAT:
- for (unsigned i = 0; i < type->components(); i++)
- data->f[i] = 0;
+ for (unsigned i = 0; i < type->matrix_columns; i++) {
+ /* The array offset of the ith row and column of the matrix. */
+ const unsigned idx = (i * type->vector_elements) + i;
- for (unsigned i = 0; i < type->matrix_columns; i++) {
- /* The array offset of the ith row and column of the matrix.
- */
- const unsigned idx = (i * type->vector_elements) + i;
-
- data->f[idx] = initializer->value.f[0];
- }
-
- break;
-
- default:
- assert(!"Should not get here.");
- break;
+ data->f[idx] = initializer->value.f[0];
}
}