littlewood (fp32)
[maximus:littlewood.git] / fp32_step.geom
1 #version 330 core
2 #extension GL_ARB_separate_shader_objects : enable
3 precision highp float;
4
5 #define POSITION        0
6 #define COLOR           3
7 #define FRAG_COLOR      0
8
9 layout(points) in;
10 layout(points, max_vertices = 1) out;
11
12 layout(location = POSITION) in vec4 OutPosition[1];
13 layout(location = COLOR) in vec4 OutColor[1];
14
15 uniform float pixelSpacing;
16
17 out block {
18 layout(location = POSITION)     vec4 Position;
19 layout(location = COLOR)        vec4 Color;
20 } Out;
21
22 void main() {
23   vec2 z = OutPosition[0].xy;
24   vec2 zn = OutPosition[0].zw;
25   vec2 p = OutColor[0].xy;
26   float r = length(z);
27   float rn = length(zn);
28   if (r <= 0.8 && length(p) <= rn / (1.0 - r) + pixelSpacing) {
29     Out.Position = OutPosition[0];
30     Out.Color = OutColor[0];
31     EmitVertex();
32     EndPrimitive();
33   }
34 }