skia2/resources/sksl/shared/OutParams.sksl
Brian Osman 169c8903be Reland "Add coords parameter to all .sksl test files used as runtime effects"
This is a reland of 22dcb5fd7e

Original change's description:
> Add coords parameter to all .sksl test files used as runtime effects
>
> Convert to use the newer MakeForShader factory, which requires this.
>
> Change-Id: Ifaf6054054027c78f3f3fe15596e435e0f79b877
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/399336
> Commit-Queue: Brian Osman <brianosman@google.com>
> Reviewed-by: John Stiles <johnstiles@google.com>

Bug: skia:11919
Change-Id: I5f745c54b2bc3712f2281db6e067345903e81931
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/401836
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
2021-04-27 20:47:31 +00:00

83 lines
2.9 KiB
Plaintext

uniform half4 colorGreen, colorRed, colorWhite;
void out_half (out half v) { v = colorWhite.r; }
void out_half2(out half2 v) { v = half2(colorWhite.g); }
void out_half3(out half3 v) { v = half3(colorWhite.b); }
void out_half4(out half4 v) { v = half4(colorWhite.a); }
void out_half2x2(out half2x2 v) { v = half2x2(colorWhite.r); }
void out_half3x3(out half3x3 v) { v = half3x3(colorWhite.g); }
void out_half4x4(out half4x4 v) { v = half4x4(colorWhite.b); }
void out_int (out int v) { v = int(colorWhite.r); }
void out_int2(out int2 v) { v = int2(colorWhite.g); }
void out_int3(out int3 v) { v = int3(colorWhite.b); }
void out_int4(out int4 v) { v = int4(colorWhite.a); }
void out_float (out float v) { v = float(colorWhite.r); }
void out_float2(out float2 v) { v = float2(colorWhite.g); }
void out_float3(out float3 v) { v = float3(colorWhite.b); }
void out_float4(out float4 v) { v = float4(colorWhite.a); }
void out_float2x2(out float2x2 v) { v = float2x2(colorWhite.r); }
void out_float3x3(out float3x3 v) { v = float3x3(colorWhite.g); }
void out_float4x4(out float4x4 v) { v = float4x4(colorWhite.b); }
void out_bool (out bool v) { v = bool(colorWhite.r); }
void out_bool2(out bool2 v) { v = bool2(colorWhite.g); }
void out_bool3(out bool3 v) { v = bool3(colorWhite.b); }
void out_bool4(out bool4 v) { v = bool4(colorWhite.a); }
half4 main(float2 coords) {
half4 result;
half h; out_half (h);
half2 h2; out_half2(h2);
half3 h3; out_half3(h3);
half4 h4; out_half4(h4);
out_half(h3[1]);
out_half2(h3.xz);
out_half4(h4.zwxy);
half2x2 h2x2; out_half2x2(h2x2);
half3x3 h3x3; out_half3x3(h3x3);
half4x4 h4x4; out_half4x4(h4x4);
out_half3(h3x3[1]);
out_half(h4x4[3].w);
out_half(h2x2[0][0]);
int i; out_int (i);
int2 i2; out_int2(i2);
int3 i3; out_int3(i3);
int4 i4; out_int4(i4);
out_int3(i4.xyz);
out_int(i2[1]);
float f; out_float (f);
float2 f2; out_float2(f2);
float3 f3; out_float3(f3);
float4 f4; out_float4(f4);
out_float2(f3.xy);
out_float(f2[0]);
float2x2 f2x2; out_float2x2(f2x2);
float3x3 f3x3; out_float3x3(f3x3);
float4x4 f4x4; out_float4x4(f4x4);
out_float(f2x2[0][0]);
bool b; out_bool (b);
bool2 b2; out_bool2(b2);
bool3 b3; out_bool3(b3);
bool4 b4; out_bool4(b4);
out_bool2(b4.xw);
out_bool(b3[2]);
bool ok = true;
ok = ok && 1 == (h * h2.x * h3.x * h4.x * h2x2[0][0] * h3x3[0][0] * h4x4[0][0]);
ok = ok && 1 == (f * f2.x * f3.x * f4.x * f2x2[0][0] * f3x3[0][0] * f4x4[0][0]);
ok = ok && 1 == (i * i2.x * i3.x * i4.x);
ok = ok && (b && b2.x && b3.x && b4.x);
return ok ? colorGreen : colorRed;
}