skia2/tests/sksl/shared/golden/NumberCasts.glsl
John Stiles ba4b0e93e3 Add support for number(boolean) and boolean(number) casts in SkSL.
Previously `number(boolean)` casts were converted to a ternary during
IR generation, and `boolean(number)` casts caused an error.

Metal and GLSL should support this cast as written. SPIR-V needed a
little bit of logic to handle converting the boolean to a number via
OpSelect.

Change-Id: I0069781e2b5a26a25c8625ab41c2392342bfd10d
Bug: skia:11131
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349066
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
2021-01-05 21:19:45 +00:00

23 lines
454 B
GLSL

out vec4 sk_FragColor;
bool BF = true;
bool BI = true;
bool BB = true;
float FF = 1.2300000190734863;
float FI = 1.0;
float FB = 1.0;
int IF = 1;
int II = 1;
int IB = 1;
void main() {
sk_FragColor.x = float(BF);
sk_FragColor.x = float(BI);
sk_FragColor.x = float(BB);
sk_FragColor.x = FF;
sk_FragColor.x = FI;
sk_FragColor.x = FB;
sk_FragColor.x = float(IF);
sk_FragColor.x = float(II);
sk_FragColor.x = float(IB);
}