#ifdef DESC [program] type: graphics vertex: main fragment: main [binding] name: verts rate: vertex [attribute] name: position type: vec2 [attribute] name: colour type: vec3 [attribute] name: uv type: vec2 [interpolator] name: colour type: vec3 [interpolator] name: uv type: vec2 [target] name: colour type: vec4 [texture] name: colour_texture stage: fragment dimension: 2 [struct] name: Config [variable] name: offset type: vec2 [cbuffer] name: config_buffer type: Config stage: vertex #endif #ifdef VERTEX_SHADER void main() { interpolator.colour = colour; interpolator.uv = uv; gl_Position = vec4(position + config_buffer.offset, 0.0, 1.0); } #endif #ifdef FRAGMENT_SHADER void main() { vec3 c = texture(colour_texture, interpolator.uv).rgb; c *= interpolator.colour; colour = vec4(c, 1.0); } #endif