diff options
author | Eric Anholt <eric@anholt.net> | 2010-05-03 17:08:01 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-05-03 17:09:31 -0700 |
commit | 05a4e59c2410292f595cfe0cc552a86ae69b20d2 (patch) | |
tree | b87a21bf014ceeec980f8f526eba4d12c53d5b31 | |
parent | 3bc8b68436ad387cc395d6c0843bbf185d1739d0 (diff) |
ir_to_mesa.cpp: Fix missing types on some ir_swizzles.
Debugging this took forever as I only looked at constructors in ir.cpp
to find who wasn't setting up ->type. I dislike hiding code (as
opposed to prototypes and definitions) in C++ header files, but in
this case I have only myself to blame.
-rw-r--r-- | ir.cpp | 8 | ||||
-rw-r--r-- | ir.h | 6 |
2 files changed, 9 insertions, 5 deletions
@@ -307,6 +307,14 @@ ir_swizzle::ir_swizzle(ir_rvalue *val, unsigned x, unsigned y, unsigned z, type = glsl_type::get_instance(val->type->base_type, mask.num_components, 1); } +ir_swizzle::ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask) +{ + this->val = val; + this->mask = mask; + this->type = glsl_type::get_instance(val->type->base_type, + mask.num_components, 1); +} + #define X 1 #define R 5 #define S 9 @@ -707,11 +707,7 @@ class ir_swizzle : public ir_rvalue { public: ir_swizzle(ir_rvalue *, unsigned x, unsigned y, unsigned z, unsigned w, unsigned count); - ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask) - : val(val), mask(mask) - { - /* empty */ - } + ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask); virtual ir_swizzle *as_swizzle() { |