| uniform half4 colorWhite, colorGreen, colorRed; |
| uniform float2x2 testMatrix2x2; |
| uniform float3x3 testMatrix3x3; |
| uniform float4x4 testMatrix4x4; |
| |
| bool test_fscalar() { |
| float x = colorWhite.r; |
| x = +x; |
| x = -x; |
| return x == -1; |
| } |
| |
| bool test_iscalar() { |
| int x = int(colorWhite.r); |
| x = +x; |
| x = -x; |
| return x == -1; |
| } |
| |
| bool test_fvec() { |
| half2 x = colorWhite.rg; |
| x = +x; |
| x = -x; |
| return x == half2(-1); |
| } |
| |
| bool test_ivec() { |
| int2 x = int2(colorWhite.r); |
| x = +x; |
| x = -x; |
| return x == int2(-1); |
| } |
| |
| bool test_mat2() { |
| const float2x2 negated = float2x2(-1, -2, |
| -3, -4); |
| float2x2 x = testMatrix2x2; |
| x = +x; |
| x = -x; |
| return x == negated; |
| } |
| |
| bool test_mat3() { |
| const float3x3 negated = float3x3(-1, -2, -3, |
| -4, -5, -6, |
| -7, -8, -9); |
| float3x3 x = testMatrix3x3; |
| x = +x; |
| x = -x; |
| return x == negated; |
| } |
| |
| bool test_mat4() { |
| const float4x4 negated = float4x4(-1, -2, -3, -4, |
| -5, -6, -7, -8, |
| -9, -10, -11, -12, |
| -13, -14, -15, -16); |
| float4x4 x = testMatrix4x4; |
| x = +x; |
| x = -x; |
| return x == negated; |
| } |
| |
| half4 main(float2 coords) { |
| return test_fscalar() |
| && test_iscalar() |
| && test_fvec() |
| && test_ivec() |
| && test_mat2() |
| && test_mat3() |
| && test_mat4() ? colorGreen : colorRed; |
| } |