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