1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#version 420
struct S
{
vec3 color;
};
layout(location = 0) out vec3 OutColor;
flat in int u;
void GetColor1(const S i)
{
OutColor += i.color.x;
}
void GetColor2(const S i, int comp)
{
OutColor += i.color[comp];
}
void GetColor3(const S i, int comp)
{
OutColor += i.color[comp].x;
}
void GetColor4(const S i, int comp)
{
OutColor += i.color[comp].x;
}
void GetColor5(const S i, int comp)
{
OutColor += i.color;
}
void GetColor6(const S i, int comp)
{
OutColor += i.color.yx[comp];
}
void GetColor7(const S i, int comp)
{
OutColor.xy += i.color.yxz.yx;
}
void GetColor8(const S i, int comp)
{
OutColor += i.color.yzx.yx.x.x;
}
void GetColor9(const S i, int comp)
{
OutColor.zxy += i.color;
}
void GetColor10(const S i, int comp)
{
OutColor.zy += i.color.xy;
}
void GetColor11(const S i, int comp)
{
OutColor.zxy.yx += i.color.xy;
}
void GetColor12(const S i, int comp)
{
OutColor[comp] += i.color.x;
}
void GetColor13(const S i, int comp)
{
OutColor.zy[comp] += i.color.x;
}
void GetColor14(const S i, int comp)
{
OutColor.zyx[comp] = i.color.x;
}
void main()
{
S s;
OutColor = vec3(0.0);
GetColor1(s);
GetColor2(s, u);
GetColor3(s, u);
GetColor4(s, u);
GetColor5(s, u);
GetColor6(s, u);
GetColor7(s, u);
GetColor8(s, u);
GetColor9(s, u);
GetColor10(s, u);
GetColor11(s, u);
GetColor12(s, u);
GetColor13(s, u);
GetColor14(s, u);
}
|