// Runtime color filters require specific main signatures. Test that older signatures, or those
// intended for shaders don't work.

// Expect 4 errors

half4 main() { return half(1); }
half4 main(float2 coord) { return half4(1); }
half4 main(float2 coord, half4 color) { return color; }
half4 main(half4 color, half4 bonusColor) { return color; }

half4 main(half4 color) { return color; }  // the correct signature is allowed

/*%%*
'main' parameter must be 'vec4', 'float4', or 'half4'
'main' parameter must be 'vec4', 'float4', or 'half4'
'main' parameter must be 'vec4', 'float4', or 'half4'
unknown identifier 'color'
'main' parameter must be 'vec4', 'float4', or 'half4'
unknown identifier 'color'
*%%*/
