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.
This commit is contained in:
Eric Anholt 2010-05-03 17:08:01 -07:00
parent 3bc8b68436
commit 05a4e59c24
2 changed files with 9 additions and 5 deletions

8
ir.cpp
View File

@ -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

6
ir.h
View File

@ -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()
{