1cb93a386Sopenharmony_ci
2cb93a386Sopenharmony_ciout vec4 sk_FragColor;
3cb93a386Sopenharmony_ciuniform vec4 colorGreen;
4cb93a386Sopenharmony_ciuniform vec4 colorRed;
5cb93a386Sopenharmony_ciuniform vec4 colorWhite;
6cb93a386Sopenharmony_civoid out_half_vh(out float v) {
7cb93a386Sopenharmony_ci    v = colorWhite.x;
8cb93a386Sopenharmony_ci}
9cb93a386Sopenharmony_civoid out_half2_vh2(out vec2 v) {
10cb93a386Sopenharmony_ci    v = vec2(colorWhite.y);
11cb93a386Sopenharmony_ci}
12cb93a386Sopenharmony_civoid out_half3_vh3(out vec3 v) {
13cb93a386Sopenharmony_ci    v = vec3(colorWhite.z);
14cb93a386Sopenharmony_ci}
15cb93a386Sopenharmony_civoid out_half4_vh4(out vec4 v) {
16cb93a386Sopenharmony_ci    v = vec4(colorWhite.w);
17cb93a386Sopenharmony_ci}
18cb93a386Sopenharmony_civoid out_half2x2_vh22(out mat2 v) {
19cb93a386Sopenharmony_ci    v = mat2(colorWhite.x);
20cb93a386Sopenharmony_ci}
21cb93a386Sopenharmony_civoid out_half3x3_vh33(out mat3 v) {
22cb93a386Sopenharmony_ci    v = mat3(colorWhite.y);
23cb93a386Sopenharmony_ci}
24cb93a386Sopenharmony_civoid out_half4x4_vh44(out mat4 v) {
25cb93a386Sopenharmony_ci    v = mat4(colorWhite.z);
26cb93a386Sopenharmony_ci}
27cb93a386Sopenharmony_civoid out_int_vi(out int v) {
28cb93a386Sopenharmony_ci    v = int(colorWhite.x);
29cb93a386Sopenharmony_ci}
30cb93a386Sopenharmony_civoid out_int2_vi2(out ivec2 v) {
31cb93a386Sopenharmony_ci    v = ivec2(int(colorWhite.y));
32cb93a386Sopenharmony_ci}
33cb93a386Sopenharmony_civoid out_int3_vi3(out ivec3 v) {
34cb93a386Sopenharmony_ci    v = ivec3(int(colorWhite.z));
35cb93a386Sopenharmony_ci}
36cb93a386Sopenharmony_civoid out_int4_vi4(out ivec4 v) {
37cb93a386Sopenharmony_ci    v = ivec4(int(colorWhite.w));
38cb93a386Sopenharmony_ci}
39cb93a386Sopenharmony_civoid out_float_vf(out float v) {
40cb93a386Sopenharmony_ci    v = colorWhite.x;
41cb93a386Sopenharmony_ci}
42cb93a386Sopenharmony_civoid out_float2_vf2(out vec2 v) {
43cb93a386Sopenharmony_ci    v = vec2(colorWhite.y);
44cb93a386Sopenharmony_ci}
45cb93a386Sopenharmony_civoid out_float3_vf3(out vec3 v) {
46cb93a386Sopenharmony_ci    v = vec3(colorWhite.z);
47cb93a386Sopenharmony_ci}
48cb93a386Sopenharmony_civoid out_float4_vf4(out vec4 v) {
49cb93a386Sopenharmony_ci    v = vec4(colorWhite.w);
50cb93a386Sopenharmony_ci}
51cb93a386Sopenharmony_civoid out_float2x2_vf22(out mat2 v) {
52cb93a386Sopenharmony_ci    v = mat2(colorWhite.x);
53cb93a386Sopenharmony_ci}
54cb93a386Sopenharmony_civoid out_float3x3_vf33(out mat3 v) {
55cb93a386Sopenharmony_ci    v = mat3(colorWhite.y);
56cb93a386Sopenharmony_ci}
57cb93a386Sopenharmony_civoid out_float4x4_vf44(out mat4 v) {
58cb93a386Sopenharmony_ci    v = mat4(colorWhite.z);
59cb93a386Sopenharmony_ci}
60cb93a386Sopenharmony_civoid out_bool_vb(out bool v) {
61cb93a386Sopenharmony_ci    v = bool(colorWhite.x);
62cb93a386Sopenharmony_ci}
63cb93a386Sopenharmony_civoid out_bool2_vb2(out bvec2 v) {
64cb93a386Sopenharmony_ci    v = bvec2(bool(colorWhite.y));
65cb93a386Sopenharmony_ci}
66cb93a386Sopenharmony_civoid out_bool3_vb3(out bvec3 v) {
67cb93a386Sopenharmony_ci    v = bvec3(bool(colorWhite.z));
68cb93a386Sopenharmony_ci}
69cb93a386Sopenharmony_civoid out_bool4_vb4(out bvec4 v) {
70cb93a386Sopenharmony_ci    v = bvec4(bool(colorWhite.w));
71cb93a386Sopenharmony_ci}
72cb93a386Sopenharmony_civec4 main() {
73cb93a386Sopenharmony_ci    float h;
74cb93a386Sopenharmony_ci    out_half_vh(h);
75cb93a386Sopenharmony_ci    vec2 h2;
76cb93a386Sopenharmony_ci    out_half2_vh2(h2);
77cb93a386Sopenharmony_ci    vec3 h3;
78cb93a386Sopenharmony_ci    out_half3_vh3(h3);
79cb93a386Sopenharmony_ci    vec4 h4;
80cb93a386Sopenharmony_ci    out_half4_vh4(h4);
81cb93a386Sopenharmony_ci    out_half_vh(h3.y);
82cb93a386Sopenharmony_ci    out_half2_vh2(h3.xz);
83cb93a386Sopenharmony_ci    out_half4_vh4(h4.zwxy);
84cb93a386Sopenharmony_ci    mat2 h2x2;
85cb93a386Sopenharmony_ci    out_half2x2_vh22(h2x2);
86cb93a386Sopenharmony_ci    mat3 h3x3;
87cb93a386Sopenharmony_ci    out_half3x3_vh33(h3x3);
88cb93a386Sopenharmony_ci    mat4 h4x4;
89cb93a386Sopenharmony_ci    out_half4x4_vh44(h4x4);
90cb93a386Sopenharmony_ci    out_half3_vh3(h3x3[1]);
91cb93a386Sopenharmony_ci    out_half_vh(h4x4[3].w);
92cb93a386Sopenharmony_ci    out_half_vh(h2x2[0].x);
93cb93a386Sopenharmony_ci    int i;
94cb93a386Sopenharmony_ci    out_int_vi(i);
95cb93a386Sopenharmony_ci    ivec2 i2;
96cb93a386Sopenharmony_ci    out_int2_vi2(i2);
97cb93a386Sopenharmony_ci    ivec3 i3;
98cb93a386Sopenharmony_ci    out_int3_vi3(i3);
99cb93a386Sopenharmony_ci    ivec4 i4;
100cb93a386Sopenharmony_ci    out_int4_vi4(i4);
101cb93a386Sopenharmony_ci    out_int3_vi3(i4.xyz);
102cb93a386Sopenharmony_ci    out_int_vi(i2.y);
103cb93a386Sopenharmony_ci    float f;
104cb93a386Sopenharmony_ci    out_float_vf(f);
105cb93a386Sopenharmony_ci    vec2 f2;
106cb93a386Sopenharmony_ci    out_float2_vf2(f2);
107cb93a386Sopenharmony_ci    vec3 f3;
108cb93a386Sopenharmony_ci    out_float3_vf3(f3);
109cb93a386Sopenharmony_ci    vec4 f4;
110cb93a386Sopenharmony_ci    out_float4_vf4(f4);
111cb93a386Sopenharmony_ci    out_float2_vf2(f3.xy);
112cb93a386Sopenharmony_ci    out_float_vf(f2.x);
113cb93a386Sopenharmony_ci    mat2 f2x2;
114cb93a386Sopenharmony_ci    out_float2x2_vf22(f2x2);
115cb93a386Sopenharmony_ci    mat3 f3x3;
116cb93a386Sopenharmony_ci    out_float3x3_vf33(f3x3);
117cb93a386Sopenharmony_ci    mat4 f4x4;
118cb93a386Sopenharmony_ci    out_float4x4_vf44(f4x4);
119cb93a386Sopenharmony_ci    out_float_vf(f2x2[0].x);
120cb93a386Sopenharmony_ci    bool b;
121cb93a386Sopenharmony_ci    out_bool_vb(b);
122cb93a386Sopenharmony_ci    bvec2 b2;
123cb93a386Sopenharmony_ci    out_bool2_vb2(b2);
124cb93a386Sopenharmony_ci    bvec3 b3;
125cb93a386Sopenharmony_ci    out_bool3_vb3(b3);
126cb93a386Sopenharmony_ci    bvec4 b4;
127cb93a386Sopenharmony_ci    out_bool4_vb4(b4);
128cb93a386Sopenharmony_ci    out_bool2_vb2(b4.xw);
129cb93a386Sopenharmony_ci    out_bool_vb(b3.z);
130cb93a386Sopenharmony_ci    bool ok = true;
131cb93a386Sopenharmony_ci    ok = ok && 1.0 == (((((h * h2.x) * h3.x) * h4.x) * h2x2[0].x) * h3x3[0].x) * h4x4[0].x;
132cb93a386Sopenharmony_ci    ok = ok && 1.0 == (((((f * f2.x) * f3.x) * f4.x) * f2x2[0].x) * f3x3[0].x) * f4x4[0].x;
133cb93a386Sopenharmony_ci    ok = ok && 1 == ((i * i2.x) * i3.x) * i4.x;
134cb93a386Sopenharmony_ci    ok = ok && (((b && b2.x) && b3.x) && b4.x);
135cb93a386Sopenharmony_ci    return ok ? colorGreen : colorRed;
136cb93a386Sopenharmony_ci}
137