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