skia2/resources/sksl/intrinsics/UintBitsToFloat.sksl

21 lines
938 B
Plaintext
Raw Normal View History

uniform float testInput;
uniform float2x2 testMatrix2x2;
uniform half4 colorGreen, colorRed;
half4 main(float2 coords) {
const float4 constVal = float4(-1, 0, 1, 2);
const uint4 expectedA = uint4(0xBF800000, 0x00000000, 0x3F800000, 0x40000000);
float4 inputVal = float4(testMatrix2x2) * float4(1, 1, -1, -1);
uint4 expectedB = uint4(0x3F800000, 0x40000000, 0xC0400000, 0xC0800000);
return (constVal.x == uintBitsToFloat(expectedA.x) &&
constVal.xy == uintBitsToFloat(expectedA.xy) &&
constVal.xyz == uintBitsToFloat(expectedA.xyz) &&
constVal.xyzw == uintBitsToFloat(expectedA.xyzw) &&
inputVal.x == uintBitsToFloat(expectedB.x) &&
inputVal.xy == uintBitsToFloat(expectedB.xy) &&
inputVal.xyz == uintBitsToFloat(expectedB.xyz) &&
inputVal.xyzw == uintBitsToFloat(expectedB.xyzw)) ? colorGreen : colorRed;
}