@vs vs
uniform vs_params {
    float rotation;
};

in vec4 position;
in vec4 color0;

out vec4 color;

void main() {
    gl_Position = position * vec4(rotation, 1, 1, 1);
    color = color0;
}
@end

@fs fs
in vec4 color;
out vec4 frag_color;

void main() {
    frag_color = color;
}
@end

@program triangle vs fs