STRINGIFY(

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

layout(builtin=10002) in sk_PerVertex {
  layout(builtin=0) vec4 gl_Position;
  layout(builtin=1) float gl_PointSize;
  layout(builtin=3) float sk_ClipDistance[];
} sk_in[];

out sk_PerVertex {
    layout(builtin=0) vec4 gl_Position;
    layout(builtin=1) float gl_PointSize;
    layout(builtin=3) float sk_ClipDistance[];
};

layout(builtin=8) int sk_InvocationID;

void EmitStreamVertex(int stream);
void EndStreamPrimitive(int stream);
void EmitVertex();
void EndPrimitive();

)
