# 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, float2 coords);

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