projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
00eb466
)
Add float/bool conversion to ir_constant_expression.cpp.
author
Ian Romanick
<ian.d.romanick@intel.com>
Mon, 7 Jun 2010 22:10:14 +0000
(15:10 -0700)
committer
Ian Romanick
<ian.d.romanick@intel.com>
Fri, 11 Jun 2010 20:51:42 +0000
(13:51 -0700)
ir_constant_expression.cpp
patch
|
blob
|
history
diff --git
a/ir_constant_expression.cpp
b/ir_constant_expression.cpp
index 4055a84ff151d869353d885d35c90c64eb531957..96dfc56e31c92a6c47f6b9268de02d2bd499269b 100644
(file)
--- a/
ir_constant_expression.cpp
+++ b/
ir_constant_expression.cpp
@@
-169,6
+169,20
@@
ir_constant_visitor::visit(ir_expression *ir)
f[c] = op[0]->value.u[c];
}
break;
+ case ir_unop_b2f:
+ assert(op[0]->type->base_type == GLSL_TYPE_BOOL);
+ type = ir->type;
+ for (c = 0; c < ir->operands[0]->type->components(); c++) {
+ f[c] = op[0]->value.b[c] ? 1.0 : 0.0;
+ }
+ break;
+ case ir_unop_f2b:
+ assert(op[0]->type->base_type == GLSL_TYPE_FLOAT);
+ type = ir->type;
+ for (c = 0; c < ir->operands[0]->type->components(); c++) {
+ b[c] = bool(op[0]->value.f[c]);
+ }
+ break;
case ir_unop_neg:
type = ir->type;