Last active
January 26, 2025 06:50
-
-
Save m1lkweed/041859d97e5ff6d8ef21917a041aed62 to your computer and use it in GitHub Desktop.
The closest ISO C can get to GLSL vectors. Tested to work on GCC, clang, msvc, and CompCert.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef SWIZZLE_H_ | |
#define SWIZZLE_H_ | |
// (c) m1lkweed 2025, GPLv3+ | |
#define _SWIZZLE_x(T, ...) ((__VA_ARGS__).x) | |
#define _SWIZZLE_y(T, ...) ((__VA_ARGS__).y) | |
#define _SWIZZLE_z(T, ...) ((__VA_ARGS__).z) | |
#define _SWIZZLE_w(T, ...) ((__VA_ARGS__).w) | |
#define _SWIZZLE_xx(T, ...) (T ## vec2){{((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xy(T, ...) (T ## vec2){{((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xz(T, ...) (T ## vec2){{((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xw(T, ...) (T ## vec2){{((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yx(T, ...) (T ## vec2){{((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yy(T, ...) (T ## vec2){{((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yz(T, ...) (T ## vec2){{((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yw(T, ...) (T ## vec2){{((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zx(T, ...) (T ## vec2){{((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zy(T, ...) (T ## vec2){{((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zz(T, ...) (T ## vec2){{((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zw(T, ...) (T ## vec2){{((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wx(T, ...) (T ## vec2){{((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wy(T, ...) (T ## vec2){{((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wz(T, ...) (T ## vec2){{((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_ww(T, ...) (T ## vec2){{((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xxx(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xxy(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xxz(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xxw(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xyx(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xyy(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xyz(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xyw(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xzx(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xzy(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xzz(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xzw(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xwx(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xwy(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xwz(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xww(T, ...) (T ## vec3){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yxx(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yxy(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yxz(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yxw(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yyx(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yyy(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yyz(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yyw(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yzx(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yzy(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yzz(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yzw(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_ywx(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_ywy(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_ywz(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yww(T, ...) (T ## vec3){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zxx(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zxy(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zxz(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zxw(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zyx(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zyy(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zyz(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zyw(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zzx(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zzy(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zzz(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zzw(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zwx(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zwy(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zwz(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zww(T, ...) (T ## vec3){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wxx(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wxy(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wxz(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wxw(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wyx(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wyy(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wyz(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wyw(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wzx(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wzy(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wzz(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wzw(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wwx(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wwy(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wwz(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_www(T, ...) (T ## vec3){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xxxx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xxxy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xxxz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xxxw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xxyx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xxyy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xxyz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xxyw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xxzx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xxzy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xxzz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xxzw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xxwx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xxwy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xxwz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xxww(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xyxx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xyxy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xyxz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xyxw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xyyx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xyyy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xyyz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xyyw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xyzx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xyzy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xyzz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xyzw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xywx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xywy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xywz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xyww(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xzxx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xzxy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xzxz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xzxw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xzyx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xzyy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xzyz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xzyw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xzzx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xzzy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xzzz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xzzw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xzwx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xzwy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xzwz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xzww(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xwxx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xwxy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xwxz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xwxw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xwyx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xwyy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xwyz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xwyw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xwzx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xwzy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xwzz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xwzw(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_xwwx(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_xwwy(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_xwwz(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_xwww(T, ...) (T ## vec4){{((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yxxx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yxxy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yxxz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yxxw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yxyx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yxyy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yxyz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yxyw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yxzx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yxzy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yxzz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yxzw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yxwx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yxwy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yxwz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yxww(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yyxx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yyxy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yyxz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yyxw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yyyx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yyyy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yyyz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yyyw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yyzx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yyzy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yyzz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yyzw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yywx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yywy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yywz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yyww(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yzxx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yzxy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yzxz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yzxw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yzyx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yzyy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yzyz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yzyw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yzzx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yzzy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yzzz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yzzw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_yzwx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_yzwy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_yzwz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_yzww(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_ywxx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_ywxy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_ywxz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_ywxw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_ywyx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_ywyy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_ywyz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_ywyw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_ywzx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_ywzy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_ywzz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_ywzw(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_ywwx(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_ywwy(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_ywwz(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_ywww(T, ...) (T ## vec4){{((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zxxx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zxxy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zxxz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zxxw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zxyx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zxyy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zxyz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zxyw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zxzx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zxzy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zxzz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zxzw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zxwx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zxwy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zxwz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zxww(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zyxx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zyxy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zyxz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zyxw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zyyx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zyyy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zyyz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zyyw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zyzx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zyzy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zyzz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zyzw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zywx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zywy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zywz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zyww(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zzxx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zzxy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zzxz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zzxw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zzyx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zzyy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zzyz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zzyw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zzzx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zzzy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zzzz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zzzw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zzwx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zzwy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zzwz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zzww(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zwxx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zwxy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zwxz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zwxw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zwyx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zwyy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zwyz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zwyw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zwzx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zwzy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zwzz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zwzw(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_zwwx(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_zwwy(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_zwwz(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_zwww(T, ...) (T ## vec4){{((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wxxx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wxxy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wxxz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wxxw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wxyx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wxyy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wxyz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wxyw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wxzx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wxzy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wxzz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wxzw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wxwx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wxwy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wxwz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wxww(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wyxx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wyxy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wyxz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wyxw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wyyx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wyyy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wyyz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wyyw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wyzx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wyzy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wyzz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wyzw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wywx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wywy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wywz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wyww(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wzxx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wzxy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wzxz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wzxw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wzyx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wzyy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wzyz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wzyw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wzzx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wzzy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wzzz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wzzw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wzwx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wzwy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wzwz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wzww(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wwxx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wwxy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wwxz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wwxw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wwyx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wwyy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wwyz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wwyw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wwzx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wwzy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wwzz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wwzw(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_wwwx(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).x)}} | |
#define _SWIZZLE_wwwy(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).y)}} | |
#define _SWIZZLE_wwwz(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).z)}} | |
#define _SWIZZLE_wwww(T, ...) (T ## vec4){{((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w), ((__VA_ARGS__).w)}} | |
#define _SWIZZLE_r(T, ...) ((__VA_ARGS__).r) | |
#define _SWIZZLE_g(T, ...) ((__VA_ARGS__).g) | |
#define _SWIZZLE_b(T, ...) ((__VA_ARGS__).b) | |
#define _SWIZZLE_a(T, ...) ((__VA_ARGS__).a) | |
#define _SWIZZLE_rr(T, ...) (T ## vec2){{((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rg(T, ...) (T ## vec2){{((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rb(T, ...) (T ## vec2){{((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ra(T, ...) (T ## vec2){{((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gr(T, ...) (T ## vec2){{((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gg(T, ...) (T ## vec2){{((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gb(T, ...) (T ## vec2){{((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ga(T, ...) (T ## vec2){{((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_br(T, ...) (T ## vec2){{((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bg(T, ...) (T ## vec2){{((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bb(T, ...) (T ## vec2){{((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ba(T, ...) (T ## vec2){{((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ar(T, ...) (T ## vec2){{((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ag(T, ...) (T ## vec2){{((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ab(T, ...) (T ## vec2){{((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aa(T, ...) (T ## vec2){{((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rrr(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rrg(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rrb(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rra(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rgr(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rgg(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rgb(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rga(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rbr(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rbg(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rbb(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rba(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rar(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rag(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rab(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_raa(T, ...) (T ## vec3){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_grr(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_grg(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_grb(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gra(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ggr(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ggg(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ggb(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gga(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gbr(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gbg(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gbb(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gba(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gar(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gag(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gab(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gaa(T, ...) (T ## vec3){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_brr(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_brg(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_brb(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bra(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bgr(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bgg(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bgb(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bga(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bbr(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bbg(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bbb(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bba(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bar(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bag(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bab(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_baa(T, ...) (T ## vec3){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_arr(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_arg(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_arb(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ara(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_agr(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_agg(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_agb(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aga(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_abr(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_abg(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_abb(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aba(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aar(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aag(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aab(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aaa(T, ...) (T ## vec3){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rrrr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rrrg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rrrb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rrra(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rrgr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rrgg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rrgb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rrga(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rrbr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rrbg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rrbb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rrba(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rrar(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rrag(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rrab(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rraa(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rgrr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rgrg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rgrb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rgra(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rggr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rggg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rggb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rgga(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rgbr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rgbg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rgbb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rgba(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rgar(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rgag(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rgab(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rgaa(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rbrr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rbrg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rbrb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rbra(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rbgr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rbgg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rbgb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rbga(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rbbr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rbbg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rbbb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rbba(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rbar(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rbag(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rbab(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rbaa(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rarr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rarg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rarb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_rara(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ragr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ragg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ragb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_raga(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_rabr(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_rabg(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_rabb(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_raba(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_raar(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_raag(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_raab(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_raaa(T, ...) (T ## vec4){{((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_grrr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_grrg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_grrb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_grra(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_grgr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_grgg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_grgb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_grga(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_grbr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_grbg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_grbb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_grba(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_grar(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_grag(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_grab(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_graa(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ggrr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ggrg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ggrb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ggra(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gggr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gggg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gggb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ggga(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ggbr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ggbg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ggbb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ggba(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_ggar(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_ggag(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_ggab(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_ggaa(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gbrr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gbrg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gbrb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gbra(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gbgr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gbgg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gbgb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gbga(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gbbr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gbbg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gbbb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gbba(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gbar(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gbag(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gbab(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gbaa(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_garr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_garg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_garb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gara(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gagr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gagg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gagb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gaga(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gabr(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gabg(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gabb(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gaba(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_gaar(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_gaag(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_gaab(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_gaaa(T, ...) (T ## vec4){{((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_brrr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_brrg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_brrb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_brra(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_brgr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_brgg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_brgb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_brga(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_brbr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_brbg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_brbb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_brba(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_brar(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_brag(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_brab(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_braa(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bgrr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bgrg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bgrb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bgra(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bggr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bggg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bggb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bgga(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bgbr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bgbg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bgbb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bgba(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bgar(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bgag(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bgab(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bgaa(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bbrr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bbrg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bbrb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bbra(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bbgr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bbgg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bbgb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bbga(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bbbr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bbbg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bbbb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bbba(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bbar(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bbag(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bbab(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bbaa(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_barr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_barg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_barb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_bara(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_bagr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_bagg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_bagb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_baga(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_babr(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_babg(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_babb(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_baba(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_baar(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_baag(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_baab(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_baaa(T, ...) (T ## vec4){{((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_arrr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_arrg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_arrb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_arra(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_argr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_argg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_argb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_arga(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_arbr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_arbg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_arbb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_arba(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_arar(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_arag(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_arab(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_araa(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_agrr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_agrg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_agrb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_agra(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aggr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aggg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aggb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_agga(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_agbr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_agbg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_agbb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_agba(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_agar(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_agag(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_agab(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_agaa(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_abrr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_abrg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_abrb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_abra(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_abgr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_abgg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_abgb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_abga(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_abbr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_abbg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_abbb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_abba(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_abar(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_abag(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_abab(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_abaa(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aarr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aarg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aarb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aara(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aagr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aagg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aagb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aaga(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aabr(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aabg(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aabb(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aaba(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_aaar(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).r)}} | |
#define _SWIZZLE_aaag(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).g)}} | |
#define _SWIZZLE_aaab(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).b)}} | |
#define _SWIZZLE_aaaa(T, ...) (T ## vec4){{((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a), ((__VA_ARGS__).a)}} | |
#define _SWIZZLE_s(T, ...) ((__VA_ARGS__).s) | |
#define _SWIZZLE_t(T, ...) ((__VA_ARGS__).t) | |
#define _SWIZZLE_p(T, ...) ((__VA_ARGS__).p) | |
#define _SWIZZLE_q(T, ...) ((__VA_ARGS__).q) | |
#define _SWIZZLE_ss(T, ...) (T ## vec2){{((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_st(T, ...) (T ## vec2){{((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sp(T, ...) (T ## vec2){{((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sq(T, ...) (T ## vec2){{((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ts(T, ...) (T ## vec2){{((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tt(T, ...) (T ## vec2){{((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tp(T, ...) (T ## vec2){{((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tq(T, ...) (T ## vec2){{((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ps(T, ...) (T ## vec2){{((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pt(T, ...) (T ## vec2){{((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pp(T, ...) (T ## vec2){{((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pq(T, ...) (T ## vec2){{((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qs(T, ...) (T ## vec2){{((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qt(T, ...) (T ## vec2){{((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qp(T, ...) (T ## vec2){{((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qq(T, ...) (T ## vec2){{((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sss(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sst(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ssp(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ssq(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sts(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_stt(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_stp(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_stq(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sps(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_spt(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_spp(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_spq(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sqs(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sqt(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sqp(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sqq(T, ...) (T ## vec3){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tss(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tst(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tsp(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tsq(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tts(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ttt(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ttp(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ttq(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tps(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tpt(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tpp(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tpq(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tqs(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tqt(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tqp(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tqq(T, ...) (T ## vec3){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pss(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pst(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_psp(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_psq(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pts(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ptt(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ptp(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ptq(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pps(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ppt(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ppp(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ppq(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pqs(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pqt(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pqp(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pqq(T, ...) (T ## vec3){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qss(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qst(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qsp(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qsq(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qts(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qtt(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qtp(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qtq(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qps(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qpt(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qpp(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qpq(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qqs(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qqt(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qqp(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qqq(T, ...) (T ## vec3){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ssss(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ssst(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sssp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sssq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ssts(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sstt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sstp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sstq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ssps(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sspt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sspp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sspq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ssqs(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ssqt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ssqp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ssqq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_stss(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_stst(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_stsp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_stsq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_stts(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sttt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sttp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sttq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_stps(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_stpt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_stpp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_stpq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_stqs(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_stqt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_stqp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_stqq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_spss(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_spst(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_spsp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_spsq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_spts(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sptt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sptp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sptq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_spps(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sppt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sppp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sppq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_spqs(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_spqt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_spqp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_spqq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sqss(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sqst(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sqsp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sqsq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sqts(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sqtt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sqtp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sqtq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sqps(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sqpt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sqpp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sqpq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_sqqs(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_sqqt(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_sqqp(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_sqqq(T, ...) (T ## vec4){{((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tsss(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tsst(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tssp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tssq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tsts(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tstt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tstp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tstq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tsps(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tspt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tspp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tspq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tsqs(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tsqt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tsqp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tsqq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ttss(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ttst(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ttsp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ttsq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ttts(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tttt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tttp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tttq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ttps(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ttpt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ttpp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ttpq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ttqs(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ttqt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ttqp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ttqq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tpss(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tpst(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tpsp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tpsq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tpts(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tptt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tptp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tptq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tpps(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tppt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tppp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tppq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tpqs(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tpqt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tpqp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tpqq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tqss(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tqst(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tqsp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tqsq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tqts(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tqtt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tqtp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tqtq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tqps(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tqpt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tqpp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tqpq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_tqqs(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_tqqt(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_tqqp(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_tqqq(T, ...) (T ## vec4){{((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_psss(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_psst(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pssp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pssq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_psts(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pstt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pstp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pstq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_psps(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pspt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pspp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pspq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_psqs(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_psqt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_psqp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_psqq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ptss(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ptst(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ptsp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ptsq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ptts(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pttt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pttp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pttq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ptps(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ptpt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ptpp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ptpq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ptqs(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ptqt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ptqp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ptqq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ppss(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ppst(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ppsp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ppsq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ppts(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pptt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pptp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pptq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ppps(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pppt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pppp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pppq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_ppqs(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_ppqt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_ppqp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_ppqq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pqss(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pqst(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pqsp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pqsq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pqts(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pqtt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pqtp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pqtq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pqps(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pqpt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pqpp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pqpq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_pqqs(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_pqqt(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_pqqp(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_pqqq(T, ...) (T ## vec4){{((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qsss(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qsst(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qssp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qssq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qsts(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qstt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qstp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qstq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qsps(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qspt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qspp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qspq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qsqs(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qsqt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qsqp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qsqq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qtss(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qtst(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qtsp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qtsq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qtts(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qttt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qttp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qttq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qtps(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qtpt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qtpp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qtpq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qtqs(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qtqt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qtqp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qtqq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qpss(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qpst(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qpsp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qpsq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qpts(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qptt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qptp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qptq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qpps(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qppt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qppp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qppq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qpqs(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qpqt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qpqp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qpqq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qqss(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qqst(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qqsp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qqsq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qqts(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qqtt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qqtp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qqtq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qqps(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qqpt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qqpp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qqpq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p), ((__VA_ARGS__).q)}} | |
#define _SWIZZLE_qqqs(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).s)}} | |
#define _SWIZZLE_qqqt(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).t)}} | |
#define _SWIZZLE_qqqp(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).p)}} | |
#define _SWIZZLE_qqqq(T, ...) (T ## vec4){{((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q), ((__VA_ARGS__).q)}} | |
#define swizzle(swizz, ...) _Generic(((__VA_ARGS__).x), \ | |
float: _SWIZZLE_ ## swizz (, __VA_ARGS__), int: _SWIZZLE_ ## swizz (i, __VA_ARGS__), \ | |
bool: _SWIZZLE_ ## swizz (b, __VA_ARGS__), unsigned: _SWIZZLE_ ## swizz (u, __VA_ARGS__), \ | |
double: _SWIZZLE_ ## swizz (d, __VA_ARGS__), default: (void)0 \ | |
) | |
#define MAKE_VECTORS(T, type) \ | |
typedef union{ \ | |
type xyzw[4]; \ | |
struct{ \ | |
type xy[2]; \ | |
union{ \ | |
type z; \ | |
type zw[2]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type x; \ | |
union{ \ | |
type y; \ | |
type yz[2]; \ | |
type yzw[3]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type xyz[3]; \ | |
type w; \ | |
}; \ | |
type rgba[4]; \ | |
struct{ \ | |
type rg[2]; \ | |
union{ \ | |
type b; \ | |
type ba[2]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type r; \ | |
union{ \ | |
type g; \ | |
type gb[2]; \ | |
type gba[3]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type rgb[3]; \ | |
type a; \ | |
}; \ | |
type stpq[4]; \ | |
struct{ \ | |
type st[2]; \ | |
union{ \ | |
type p; \ | |
type pq[2]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type s; \ | |
union{ \ | |
type t; \ | |
type tp[2]; \ | |
type tpq[3]; \ | |
}; \ | |
}; \ | |
struct{ \ | |
type stp[3]; \ | |
type q; \ | |
}; \ | |
}T ## vec4; \ | |
typedef union{ \ | |
type xyz[3]; \ | |
struct{ \ | |
type xy[2]; \ | |
type z; \ | |
}; \ | |
struct{ \ | |
type x; \ | |
union{ \ | |
type yz[2]; \ | |
type y; \ | |
}; \ | |
}; \ | |
type rgb[3]; \ | |
struct{ \ | |
type rg[2]; \ | |
type b; \ | |
}; \ | |
struct{ \ | |
type r; \ | |
union{ \ | |
type gb[2]; \ | |
type g; \ | |
}; \ | |
}; \ | |
type stp[3]; \ | |
struct{ \ | |
type st[2]; \ | |
type p; \ | |
}; \ | |
struct{ \ | |
type s; \ | |
union{ \ | |
type tp[2]; \ | |
type t; \ | |
}; \ | |
}; \ | |
}T ## vec3; \ | |
typedef union{ \ | |
type xy[2]; \ | |
struct{ \ | |
type x; \ | |
type y; \ | |
}; \ | |
type rg[2]; \ | |
struct{ \ | |
type r; \ | |
type g; \ | |
}; \ | |
type st[2]; \ | |
struct{ \ | |
type s; \ | |
type t; \ | |
}; \ | |
}T ## vec2; | |
MAKE_VECTORS(, float) | |
MAKE_VECTORS(b, bool) | |
MAKE_VECTORS(i, int) | |
MAKE_VECTORS(u, unsigned) | |
MAKE_VECTORS(d, double) | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment