474 lines
14 KiB
C++
474 lines
14 KiB
C++
// Copyright 2022 The SwiftShader Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
namespace rr {
|
|
|
|
template<class T>
|
|
struct Scalar;
|
|
|
|
template<class Vector4>
|
|
struct XYZW;
|
|
|
|
template<class T>
|
|
class RValue;
|
|
|
|
template<class Vector4, int T>
|
|
class Swizzle2
|
|
{
|
|
friend Vector4;
|
|
|
|
public:
|
|
operator RValue<Vector4>() const;
|
|
|
|
private:
|
|
Vector4 *parent;
|
|
};
|
|
|
|
template<class Vector4, int T>
|
|
class Swizzle4
|
|
{
|
|
public:
|
|
operator RValue<Vector4>() const;
|
|
|
|
private:
|
|
Vector4 *parent;
|
|
};
|
|
|
|
template<class Vector4, int T>
|
|
class SwizzleMask4
|
|
{
|
|
friend XYZW<Vector4>;
|
|
|
|
public:
|
|
operator RValue<Vector4>() const;
|
|
|
|
RValue<Vector4> operator=(RValue<Vector4> rhs);
|
|
RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs);
|
|
|
|
private:
|
|
Vector4 *parent;
|
|
};
|
|
|
|
template<class Vector4, int T>
|
|
class SwizzleMask1
|
|
{
|
|
public:
|
|
operator RValue<typename Scalar<Vector4>::Type>() const;
|
|
operator RValue<Vector4>() const;
|
|
|
|
RValue<Vector4> operator=(float x);
|
|
RValue<Vector4> operator=(RValue<Vector4> rhs);
|
|
RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs);
|
|
|
|
private:
|
|
Vector4 *parent;
|
|
};
|
|
|
|
template<class Vector4, int T>
|
|
RValue<typename Scalar<Vector4>::Type> operator+(RValue<typename Scalar<Vector4>::Type> lhs, SwizzleMask1<Vector4, T> rhs)
|
|
{
|
|
return lhs + RValue<typename Scalar<Vector4>::Type>(rhs);
|
|
}
|
|
|
|
template<class Vector4, int T>
|
|
RValue<typename Scalar<Vector4>::Type> operator+(SwizzleMask1<Vector4, T> lhs, RValue<typename Scalar<Vector4>::Type> rhs)
|
|
{
|
|
return RValue<typename Scalar<Vector4>::Type>(lhs) + rhs;
|
|
}
|
|
|
|
template<class Vector4, int T>
|
|
RValue<typename Scalar<Vector4>::Type> operator-(RValue<typename Scalar<Vector4>::Type> lhs, SwizzleMask1<Vector4, T> rhs)
|
|
{
|
|
return lhs - RValue<typename Scalar<Vector4>::Type>(rhs);
|
|
}
|
|
|
|
template<class Vector4, int T>
|
|
RValue<typename Scalar<Vector4>::Type> operator-(SwizzleMask1<Vector4, T> lhs, RValue<typename Scalar<Vector4>::Type> rhs)
|
|
{
|
|
return RValue<typename Scalar<Vector4>::Type>(lhs) - rhs;
|
|
}
|
|
|
|
template<class Vector4, int T>
|
|
class SwizzleMask2
|
|
{
|
|
friend Vector4;
|
|
|
|
public:
|
|
operator RValue<Vector4>() const;
|
|
|
|
RValue<Vector4> operator=(RValue<Vector4> rhs);
|
|
|
|
private:
|
|
Vector4 *parent;
|
|
};
|
|
|
|
template<class Vector4>
|
|
struct XYZW
|
|
{
|
|
friend Vector4;
|
|
|
|
private:
|
|
XYZW(Vector4 *parent)
|
|
{
|
|
xyzw.parent = parent;
|
|
}
|
|
|
|
public:
|
|
union
|
|
{
|
|
SwizzleMask1<Vector4, 0x0000> x;
|
|
SwizzleMask1<Vector4, 0x1111> y;
|
|
SwizzleMask1<Vector4, 0x2222> z;
|
|
SwizzleMask1<Vector4, 0x3333> w;
|
|
Swizzle2<Vector4, 0x0000> xx;
|
|
Swizzle2<Vector4, 0x1000> yx;
|
|
Swizzle2<Vector4, 0x2000> zx;
|
|
Swizzle2<Vector4, 0x3000> wx;
|
|
SwizzleMask2<Vector4, 0x0111> xy;
|
|
Swizzle2<Vector4, 0x1111> yy;
|
|
Swizzle2<Vector4, 0x2111> zy;
|
|
Swizzle2<Vector4, 0x3111> wy;
|
|
SwizzleMask2<Vector4, 0x0222> xz;
|
|
SwizzleMask2<Vector4, 0x1222> yz;
|
|
Swizzle2<Vector4, 0x2222> zz;
|
|
Swizzle2<Vector4, 0x3222> wz;
|
|
SwizzleMask2<Vector4, 0x0333> xw;
|
|
SwizzleMask2<Vector4, 0x1333> yw;
|
|
SwizzleMask2<Vector4, 0x2333> zw;
|
|
Swizzle2<Vector4, 0x3333> ww;
|
|
Swizzle4<Vector4, 0x0000> xxx;
|
|
Swizzle4<Vector4, 0x1000> yxx;
|
|
Swizzle4<Vector4, 0x2000> zxx;
|
|
Swizzle4<Vector4, 0x3000> wxx;
|
|
Swizzle4<Vector4, 0x0100> xyx;
|
|
Swizzle4<Vector4, 0x1100> yyx;
|
|
Swizzle4<Vector4, 0x2100> zyx;
|
|
Swizzle4<Vector4, 0x3100> wyx;
|
|
Swizzle4<Vector4, 0x0200> xzx;
|
|
Swizzle4<Vector4, 0x1200> yzx;
|
|
Swizzle4<Vector4, 0x2200> zzx;
|
|
Swizzle4<Vector4, 0x3200> wzx;
|
|
Swizzle4<Vector4, 0x0300> xwx;
|
|
Swizzle4<Vector4, 0x1300> ywx;
|
|
Swizzle4<Vector4, 0x2300> zwx;
|
|
Swizzle4<Vector4, 0x3300> wwx;
|
|
Swizzle4<Vector4, 0x0011> xxy;
|
|
Swizzle4<Vector4, 0x1011> yxy;
|
|
Swizzle4<Vector4, 0x2011> zxy;
|
|
Swizzle4<Vector4, 0x3011> wxy;
|
|
Swizzle4<Vector4, 0x0111> xyy;
|
|
Swizzle4<Vector4, 0x1111> yyy;
|
|
Swizzle4<Vector4, 0x2111> zyy;
|
|
Swizzle4<Vector4, 0x3111> wyy;
|
|
Swizzle4<Vector4, 0x0211> xzy;
|
|
Swizzle4<Vector4, 0x1211> yzy;
|
|
Swizzle4<Vector4, 0x2211> zzy;
|
|
Swizzle4<Vector4, 0x3211> wzy;
|
|
Swizzle4<Vector4, 0x0311> xwy;
|
|
Swizzle4<Vector4, 0x1311> ywy;
|
|
Swizzle4<Vector4, 0x2311> zwy;
|
|
Swizzle4<Vector4, 0x3311> wwy;
|
|
Swizzle4<Vector4, 0x0022> xxz;
|
|
Swizzle4<Vector4, 0x1022> yxz;
|
|
Swizzle4<Vector4, 0x2022> zxz;
|
|
Swizzle4<Vector4, 0x3022> wxz;
|
|
SwizzleMask4<Vector4, 0x0122> xyz;
|
|
Swizzle4<Vector4, 0x1122> yyz;
|
|
Swizzle4<Vector4, 0x2122> zyz;
|
|
Swizzle4<Vector4, 0x3122> wyz;
|
|
Swizzle4<Vector4, 0x0222> xzz;
|
|
Swizzle4<Vector4, 0x1222> yzz;
|
|
Swizzle4<Vector4, 0x2222> zzz;
|
|
Swizzle4<Vector4, 0x3222> wzz;
|
|
Swizzle4<Vector4, 0x0322> xwz;
|
|
Swizzle4<Vector4, 0x1322> ywz;
|
|
Swizzle4<Vector4, 0x2322> zwz;
|
|
Swizzle4<Vector4, 0x3322> wwz;
|
|
Swizzle4<Vector4, 0x0033> xxw;
|
|
Swizzle4<Vector4, 0x1033> yxw;
|
|
Swizzle4<Vector4, 0x2033> zxw;
|
|
Swizzle4<Vector4, 0x3033> wxw;
|
|
SwizzleMask4<Vector4, 0x0133> xyw;
|
|
Swizzle4<Vector4, 0x1133> yyw;
|
|
Swizzle4<Vector4, 0x2133> zyw;
|
|
Swizzle4<Vector4, 0x3133> wyw;
|
|
SwizzleMask4<Vector4, 0x0233> xzw;
|
|
SwizzleMask4<Vector4, 0x1233> yzw;
|
|
Swizzle4<Vector4, 0x2233> zzw;
|
|
Swizzle4<Vector4, 0x3233> wzw;
|
|
Swizzle4<Vector4, 0x0333> xww;
|
|
Swizzle4<Vector4, 0x1333> yww;
|
|
Swizzle4<Vector4, 0x2333> zww;
|
|
Swizzle4<Vector4, 0x3333> www;
|
|
Swizzle4<Vector4, 0x0000> xxxx;
|
|
Swizzle4<Vector4, 0x1000> yxxx;
|
|
Swizzle4<Vector4, 0x2000> zxxx;
|
|
Swizzle4<Vector4, 0x3000> wxxx;
|
|
Swizzle4<Vector4, 0x0100> xyxx;
|
|
Swizzle4<Vector4, 0x1100> yyxx;
|
|
Swizzle4<Vector4, 0x2100> zyxx;
|
|
Swizzle4<Vector4, 0x3100> wyxx;
|
|
Swizzle4<Vector4, 0x0200> xzxx;
|
|
Swizzle4<Vector4, 0x1200> yzxx;
|
|
Swizzle4<Vector4, 0x2200> zzxx;
|
|
Swizzle4<Vector4, 0x3200> wzxx;
|
|
Swizzle4<Vector4, 0x0300> xwxx;
|
|
Swizzle4<Vector4, 0x1300> ywxx;
|
|
Swizzle4<Vector4, 0x2300> zwxx;
|
|
Swizzle4<Vector4, 0x3300> wwxx;
|
|
Swizzle4<Vector4, 0x0010> xxyx;
|
|
Swizzle4<Vector4, 0x1010> yxyx;
|
|
Swizzle4<Vector4, 0x2010> zxyx;
|
|
Swizzle4<Vector4, 0x3010> wxyx;
|
|
Swizzle4<Vector4, 0x0110> xyyx;
|
|
Swizzle4<Vector4, 0x1110> yyyx;
|
|
Swizzle4<Vector4, 0x2110> zyyx;
|
|
Swizzle4<Vector4, 0x3110> wyyx;
|
|
Swizzle4<Vector4, 0x0210> xzyx;
|
|
Swizzle4<Vector4, 0x1210> yzyx;
|
|
Swizzle4<Vector4, 0x2210> zzyx;
|
|
Swizzle4<Vector4, 0x3210> wzyx;
|
|
Swizzle4<Vector4, 0x0310> xwyx;
|
|
Swizzle4<Vector4, 0x1310> ywyx;
|
|
Swizzle4<Vector4, 0x2310> zwyx;
|
|
Swizzle4<Vector4, 0x3310> wwyx;
|
|
Swizzle4<Vector4, 0x0020> xxzx;
|
|
Swizzle4<Vector4, 0x1020> yxzx;
|
|
Swizzle4<Vector4, 0x2020> zxzx;
|
|
Swizzle4<Vector4, 0x3020> wxzx;
|
|
Swizzle4<Vector4, 0x0120> xyzx;
|
|
Swizzle4<Vector4, 0x1120> yyzx;
|
|
Swizzle4<Vector4, 0x2120> zyzx;
|
|
Swizzle4<Vector4, 0x3120> wyzx;
|
|
Swizzle4<Vector4, 0x0220> xzzx;
|
|
Swizzle4<Vector4, 0x1220> yzzx;
|
|
Swizzle4<Vector4, 0x2220> zzzx;
|
|
Swizzle4<Vector4, 0x3220> wzzx;
|
|
Swizzle4<Vector4, 0x0320> xwzx;
|
|
Swizzle4<Vector4, 0x1320> ywzx;
|
|
Swizzle4<Vector4, 0x2320> zwzx;
|
|
Swizzle4<Vector4, 0x3320> wwzx;
|
|
Swizzle4<Vector4, 0x0030> xxwx;
|
|
Swizzle4<Vector4, 0x1030> yxwx;
|
|
Swizzle4<Vector4, 0x2030> zxwx;
|
|
Swizzle4<Vector4, 0x3030> wxwx;
|
|
Swizzle4<Vector4, 0x0130> xywx;
|
|
Swizzle4<Vector4, 0x1130> yywx;
|
|
Swizzle4<Vector4, 0x2130> zywx;
|
|
Swizzle4<Vector4, 0x3130> wywx;
|
|
Swizzle4<Vector4, 0x0230> xzwx;
|
|
Swizzle4<Vector4, 0x1230> yzwx;
|
|
Swizzle4<Vector4, 0x2230> zzwx;
|
|
Swizzle4<Vector4, 0x3230> wzwx;
|
|
Swizzle4<Vector4, 0x0330> xwwx;
|
|
Swizzle4<Vector4, 0x1330> ywwx;
|
|
Swizzle4<Vector4, 0x2330> zwwx;
|
|
Swizzle4<Vector4, 0x3330> wwwx;
|
|
Swizzle4<Vector4, 0x0001> xxxy;
|
|
Swizzle4<Vector4, 0x1001> yxxy;
|
|
Swizzle4<Vector4, 0x2001> zxxy;
|
|
Swizzle4<Vector4, 0x3001> wxxy;
|
|
Swizzle4<Vector4, 0x0101> xyxy;
|
|
Swizzle4<Vector4, 0x1101> yyxy;
|
|
Swizzle4<Vector4, 0x2101> zyxy;
|
|
Swizzle4<Vector4, 0x3101> wyxy;
|
|
Swizzle4<Vector4, 0x0201> xzxy;
|
|
Swizzle4<Vector4, 0x1201> yzxy;
|
|
Swizzle4<Vector4, 0x2201> zzxy;
|
|
Swizzle4<Vector4, 0x3201> wzxy;
|
|
Swizzle4<Vector4, 0x0301> xwxy;
|
|
Swizzle4<Vector4, 0x1301> ywxy;
|
|
Swizzle4<Vector4, 0x2301> zwxy;
|
|
Swizzle4<Vector4, 0x3301> wwxy;
|
|
Swizzle4<Vector4, 0x0011> xxyy;
|
|
Swizzle4<Vector4, 0x1011> yxyy;
|
|
Swizzle4<Vector4, 0x2011> zxyy;
|
|
Swizzle4<Vector4, 0x3011> wxyy;
|
|
Swizzle4<Vector4, 0x0111> xyyy;
|
|
Swizzle4<Vector4, 0x1111> yyyy;
|
|
Swizzle4<Vector4, 0x2111> zyyy;
|
|
Swizzle4<Vector4, 0x3111> wyyy;
|
|
Swizzle4<Vector4, 0x0211> xzyy;
|
|
Swizzle4<Vector4, 0x1211> yzyy;
|
|
Swizzle4<Vector4, 0x2211> zzyy;
|
|
Swizzle4<Vector4, 0x3211> wzyy;
|
|
Swizzle4<Vector4, 0x0311> xwyy;
|
|
Swizzle4<Vector4, 0x1311> ywyy;
|
|
Swizzle4<Vector4, 0x2311> zwyy;
|
|
Swizzle4<Vector4, 0x3311> wwyy;
|
|
Swizzle4<Vector4, 0x0021> xxzy;
|
|
Swizzle4<Vector4, 0x1021> yxzy;
|
|
Swizzle4<Vector4, 0x2021> zxzy;
|
|
Swizzle4<Vector4, 0x3021> wxzy;
|
|
Swizzle4<Vector4, 0x0121> xyzy;
|
|
Swizzle4<Vector4, 0x1121> yyzy;
|
|
Swizzle4<Vector4, 0x2121> zyzy;
|
|
Swizzle4<Vector4, 0x3121> wyzy;
|
|
Swizzle4<Vector4, 0x0221> xzzy;
|
|
Swizzle4<Vector4, 0x1221> yzzy;
|
|
Swizzle4<Vector4, 0x2221> zzzy;
|
|
Swizzle4<Vector4, 0x3221> wzzy;
|
|
Swizzle4<Vector4, 0x0321> xwzy;
|
|
Swizzle4<Vector4, 0x1321> ywzy;
|
|
Swizzle4<Vector4, 0x2321> zwzy;
|
|
Swizzle4<Vector4, 0x3321> wwzy;
|
|
Swizzle4<Vector4, 0x0031> xxwy;
|
|
Swizzle4<Vector4, 0x1031> yxwy;
|
|
Swizzle4<Vector4, 0x2031> zxwy;
|
|
Swizzle4<Vector4, 0x3031> wxwy;
|
|
Swizzle4<Vector4, 0x0131> xywy;
|
|
Swizzle4<Vector4, 0x1131> yywy;
|
|
Swizzle4<Vector4, 0x2131> zywy;
|
|
Swizzle4<Vector4, 0x3131> wywy;
|
|
Swizzle4<Vector4, 0x0231> xzwy;
|
|
Swizzle4<Vector4, 0x1231> yzwy;
|
|
Swizzle4<Vector4, 0x2231> zzwy;
|
|
Swizzle4<Vector4, 0x3231> wzwy;
|
|
Swizzle4<Vector4, 0x0331> xwwy;
|
|
Swizzle4<Vector4, 0x1331> ywwy;
|
|
Swizzle4<Vector4, 0x2331> zwwy;
|
|
Swizzle4<Vector4, 0x3331> wwwy;
|
|
Swizzle4<Vector4, 0x0002> xxxz;
|
|
Swizzle4<Vector4, 0x1002> yxxz;
|
|
Swizzle4<Vector4, 0x2002> zxxz;
|
|
Swizzle4<Vector4, 0x3002> wxxz;
|
|
Swizzle4<Vector4, 0x0102> xyxz;
|
|
Swizzle4<Vector4, 0x1102> yyxz;
|
|
Swizzle4<Vector4, 0x2102> zyxz;
|
|
Swizzle4<Vector4, 0x3102> wyxz;
|
|
Swizzle4<Vector4, 0x0202> xzxz;
|
|
Swizzle4<Vector4, 0x1202> yzxz;
|
|
Swizzle4<Vector4, 0x2202> zzxz;
|
|
Swizzle4<Vector4, 0x3202> wzxz;
|
|
Swizzle4<Vector4, 0x0302> xwxz;
|
|
Swizzle4<Vector4, 0x1302> ywxz;
|
|
Swizzle4<Vector4, 0x2302> zwxz;
|
|
Swizzle4<Vector4, 0x3302> wwxz;
|
|
Swizzle4<Vector4, 0x0012> xxyz;
|
|
Swizzle4<Vector4, 0x1012> yxyz;
|
|
Swizzle4<Vector4, 0x2012> zxyz;
|
|
Swizzle4<Vector4, 0x3012> wxyz;
|
|
Swizzle4<Vector4, 0x0112> xyyz;
|
|
Swizzle4<Vector4, 0x1112> yyyz;
|
|
Swizzle4<Vector4, 0x2112> zyyz;
|
|
Swizzle4<Vector4, 0x3112> wyyz;
|
|
Swizzle4<Vector4, 0x0212> xzyz;
|
|
Swizzle4<Vector4, 0x1212> yzyz;
|
|
Swizzle4<Vector4, 0x2212> zzyz;
|
|
Swizzle4<Vector4, 0x3212> wzyz;
|
|
Swizzle4<Vector4, 0x0312> xwyz;
|
|
Swizzle4<Vector4, 0x1312> ywyz;
|
|
Swizzle4<Vector4, 0x2312> zwyz;
|
|
Swizzle4<Vector4, 0x3312> wwyz;
|
|
Swizzle4<Vector4, 0x0022> xxzz;
|
|
Swizzle4<Vector4, 0x1022> yxzz;
|
|
Swizzle4<Vector4, 0x2022> zxzz;
|
|
Swizzle4<Vector4, 0x3022> wxzz;
|
|
Swizzle4<Vector4, 0x0122> xyzz;
|
|
Swizzle4<Vector4, 0x1122> yyzz;
|
|
Swizzle4<Vector4, 0x2122> zyzz;
|
|
Swizzle4<Vector4, 0x3122> wyzz;
|
|
Swizzle4<Vector4, 0x0222> xzzz;
|
|
Swizzle4<Vector4, 0x1222> yzzz;
|
|
Swizzle4<Vector4, 0x2222> zzzz;
|
|
Swizzle4<Vector4, 0x3222> wzzz;
|
|
Swizzle4<Vector4, 0x0322> xwzz;
|
|
Swizzle4<Vector4, 0x1322> ywzz;
|
|
Swizzle4<Vector4, 0x2322> zwzz;
|
|
Swizzle4<Vector4, 0x3322> wwzz;
|
|
Swizzle4<Vector4, 0x0032> xxwz;
|
|
Swizzle4<Vector4, 0x1032> yxwz;
|
|
Swizzle4<Vector4, 0x2032> zxwz;
|
|
Swizzle4<Vector4, 0x3032> wxwz;
|
|
Swizzle4<Vector4, 0x0132> xywz;
|
|
Swizzle4<Vector4, 0x1132> yywz;
|
|
Swizzle4<Vector4, 0x2132> zywz;
|
|
Swizzle4<Vector4, 0x3132> wywz;
|
|
Swizzle4<Vector4, 0x0232> xzwz;
|
|
Swizzle4<Vector4, 0x1232> yzwz;
|
|
Swizzle4<Vector4, 0x2232> zzwz;
|
|
Swizzle4<Vector4, 0x3232> wzwz;
|
|
Swizzle4<Vector4, 0x0332> xwwz;
|
|
Swizzle4<Vector4, 0x1332> ywwz;
|
|
Swizzle4<Vector4, 0x2332> zwwz;
|
|
Swizzle4<Vector4, 0x3332> wwwz;
|
|
Swizzle4<Vector4, 0x0003> xxxw;
|
|
Swizzle4<Vector4, 0x1003> yxxw;
|
|
Swizzle4<Vector4, 0x2003> zxxw;
|
|
Swizzle4<Vector4, 0x3003> wxxw;
|
|
Swizzle4<Vector4, 0x0103> xyxw;
|
|
Swizzle4<Vector4, 0x1103> yyxw;
|
|
Swizzle4<Vector4, 0x2103> zyxw;
|
|
Swizzle4<Vector4, 0x3103> wyxw;
|
|
Swizzle4<Vector4, 0x0203> xzxw;
|
|
Swizzle4<Vector4, 0x1203> yzxw;
|
|
Swizzle4<Vector4, 0x2203> zzxw;
|
|
Swizzle4<Vector4, 0x3203> wzxw;
|
|
Swizzle4<Vector4, 0x0303> xwxw;
|
|
Swizzle4<Vector4, 0x1303> ywxw;
|
|
Swizzle4<Vector4, 0x2303> zwxw;
|
|
Swizzle4<Vector4, 0x3303> wwxw;
|
|
Swizzle4<Vector4, 0x0013> xxyw;
|
|
Swizzle4<Vector4, 0x1013> yxyw;
|
|
Swizzle4<Vector4, 0x2013> zxyw;
|
|
Swizzle4<Vector4, 0x3013> wxyw;
|
|
Swizzle4<Vector4, 0x0113> xyyw;
|
|
Swizzle4<Vector4, 0x1113> yyyw;
|
|
Swizzle4<Vector4, 0x2113> zyyw;
|
|
Swizzle4<Vector4, 0x3113> wyyw;
|
|
Swizzle4<Vector4, 0x0213> xzyw;
|
|
Swizzle4<Vector4, 0x1213> yzyw;
|
|
Swizzle4<Vector4, 0x2213> zzyw;
|
|
Swizzle4<Vector4, 0x3213> wzyw;
|
|
Swizzle4<Vector4, 0x0313> xwyw;
|
|
Swizzle4<Vector4, 0x1313> ywyw;
|
|
Swizzle4<Vector4, 0x2313> zwyw;
|
|
Swizzle4<Vector4, 0x3313> wwyw;
|
|
Swizzle4<Vector4, 0x0023> xxzw;
|
|
Swizzle4<Vector4, 0x1023> yxzw;
|
|
Swizzle4<Vector4, 0x2023> zxzw;
|
|
Swizzle4<Vector4, 0x3023> wxzw;
|
|
SwizzleMask4<Vector4, 0x0123> xyzw;
|
|
Swizzle4<Vector4, 0x1123> yyzw;
|
|
Swizzle4<Vector4, 0x2123> zyzw;
|
|
Swizzle4<Vector4, 0x3123> wyzw;
|
|
Swizzle4<Vector4, 0x0223> xzzw;
|
|
Swizzle4<Vector4, 0x1223> yzzw;
|
|
Swizzle4<Vector4, 0x2223> zzzw;
|
|
Swizzle4<Vector4, 0x3223> wzzw;
|
|
Swizzle4<Vector4, 0x0323> xwzw;
|
|
Swizzle4<Vector4, 0x1323> ywzw;
|
|
Swizzle4<Vector4, 0x2323> zwzw;
|
|
Swizzle4<Vector4, 0x3323> wwzw;
|
|
Swizzle4<Vector4, 0x0033> xxww;
|
|
Swizzle4<Vector4, 0x1033> yxww;
|
|
Swizzle4<Vector4, 0x2033> zxww;
|
|
Swizzle4<Vector4, 0x3033> wxww;
|
|
Swizzle4<Vector4, 0x0133> xyww;
|
|
Swizzle4<Vector4, 0x1133> yyww;
|
|
Swizzle4<Vector4, 0x2133> zyww;
|
|
Swizzle4<Vector4, 0x3133> wyww;
|
|
Swizzle4<Vector4, 0x0233> xzww;
|
|
Swizzle4<Vector4, 0x1233> yzww;
|
|
Swizzle4<Vector4, 0x2233> zzww;
|
|
Swizzle4<Vector4, 0x3233> wzww;
|
|
Swizzle4<Vector4, 0x0333> xwww;
|
|
Swizzle4<Vector4, 0x1333> ywww;
|
|
Swizzle4<Vector4, 0x2333> zwww;
|
|
Swizzle4<Vector4, 0x3333> wwww;
|
|
};
|
|
};
|
|
|
|
} // namespace rr
|