summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ir.cpp8
-rw-r--r--ir.h6
2 files changed, 9 insertions, 5 deletions
diff --git a/ir.cpp b/ir.cpp
index 6778997ac8..d2d8b4015b 100644
--- a/ir.cpp
+++ b/ir.cpp
@@ -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
diff --git a/ir.h b/ir.h
index b3fb06d2c7..ce924206f8 100644
--- a/ir.h
+++ b/ir.h
@@ -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()
{