Browse Source

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.
tags/mesa-7.9-rc1
Eric Anholt 15 years ago
parent
commit
05a4e59c24
2 changed files with 9 additions and 5 deletions
  1. 8
    0
      ir.cpp
  2. 1
    5
      ir.h

+ 8
- 0
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

+ 1
- 5
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()
{

Loading…
Cancel
Save