# This is the raw input file that (along with GrSharedEnums.h) is used to generate
# sksl_fp.sksl.

// defines built-in interfaces supported by SkiaSL fragment shaders

layout(builtin=15) in float4 sk_FragCoord;

// 9999 is a sentinel value that causes us to ignore these declarations, beyond adding them to the
// symbol table.
layout(builtin=9999) float4 gl_LastFragData[1];
layout(builtin=9999) half4 gl_LastFragColor;
layout(builtin=9999) half4 gl_LastFragColorARM;
layout(builtin=9999) half4 gl_SecondaryFragColorEXT;

half4 sample(fragmentProcessor fp);
half4 sample(fragmentProcessor fp, float3x3 transform);
half4 sample(fragmentProcessor fp, float2 coords);

half4 sample(fragmentProcessor fp, half4 input);
half4 sample(fragmentProcessor fp, float3x3 transform, half4 input);
half4 sample(fragmentProcessor fp, float2 coords, half4 input);
