SPIRV-Cross/shaders-msl-no-opt/frag/struct-bool-edge-cases.frag
2023-06-06 15:17:23 +02:00

59 lines
1.1 KiB
JavaScript

#version 450
layout(location = 0) out float FragColor;
struct Test
{
bool a;
bvec2 b;
bvec3 c;
bvec4 d;
};
struct Test2
{
bool a[2];
bvec2 b[2];
bvec3 c[2];
bvec4 d[2];
Test e;
};
void main()
{
Test t;
Test2 t2;
t.a = true;
t.b = bvec2(true, false);
t.c = bvec3(true, false, true);
t.d = bvec4(true, false, true, false);
t2.a = bool[](true, false);
t2.b = bvec2[](bvec2(true, false), bvec2(false, true));
t2.c = bvec3[](bvec3(true, false, true), bvec3(false, true, false));
t2.d = bvec4[](bvec4(true, false, true, false), bvec4(false, true, false, true));
bool a = t.a;
bvec2 b = t.b;
bvec3 c = t.c;
bvec4 d = t.d;
bool a2[2] = t2.a;
bvec2 b2[2] = t2.b;
bvec3 c2[2] = t2.c;
bvec4 d2[2] = t2.d;
t = Test(true, bvec2(true, false), bvec3(true), bvec4(false));
t2 = Test2(
bool[](true, true),
bvec2[](bvec2(true), bvec2(false)),
bvec3[](bvec3(true), bvec3(false)),
bvec4[](bvec4(true), bvec4(false)),
Test(true, bvec2(true, false), bvec3(true), bvec4(false)));
Test t3[2] = Test[](
Test(true, bvec2(true, false), bvec3(true), bvec4(false)),
Test(false, bvec2(false, true), bvec3(false), bvec4(true)));
}