skia2/resources/sksl/runtime/ArrayIndexing.rts
Brian Osman 552fcb9a1b Remove flexible runtime effects entirely
All internal usage has migrated to MakeFor..., this removes the old
program kind, and updates some tests.

Bug: skia:11813
Change-Id: I56733b071270e1ae3fab5d851e23acf6c02e3361
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/402536
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
2021-04-29 16:02:27 +00:00

42 lines
778 B
Plaintext

uniform float u1[4];
float index_by_literal() {
return u1[0];
}
uniform float u2[4];
float index_by_loop() {
float sum = 0;
for (int i = 3; i >= 0; --i) {
sum += u2[i];
}
return sum;
}
uniform float u3[4];
float index_by_complex_loop() {
float prod = 1;
for (int i = 0; i < 4; ++i) {
prod *= u3[i < 2 ? 0 : i];
}
return prod;
}
uniform float u4[16];
float index_out_of_bounds_checked() {
float sum = 0;
for (float f = -2.3; f < 17.0; f += 3.7) {
if (f > 0 && f < 16) {
sum -= u4[int(f)];
}
}
return sum;
}
float4 main(float2 xy) {
return float4(
index_by_literal(),
index_by_loop(),
index_by_complex_loop(),
index_out_of_bounds_checked());
}