@vs vs in vec2 pos; out vec2 apos; uniform mpara { uniform vec2 offset; uniform vec2 dimen; }; void main() { apos = ((pos*0.5)*dimen) + offset; gl_Position = vec4(pos, 0.f, 1.f); } @end @fs fs out vec4 frag_color; in vec2 apos; uniform fs_params { uniform float thickness; uniform float span; uniform vec4 color; }; void main() { float t = thickness / span; t /= 2.0; vec2 bpos; bpos.x = mod(apos.x, span) / span; bpos.y = mod(apos.y, span) / span; bpos.x -= t; bpos.y -= t; float comp = min(bpos.x, bpos.y); if (comp > t) discard; comp += t; frag_color = color; } @end @program grid vs fs