aboutsummaryrefslogtreecommitdiff
path: root/resources/shaders/anchorPoint.geom
blob: ccb6b84a42b1e06f64a2e755d55552d19e2c819d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#version 330 core

layout(points) in;
layout (triangle_strip, max_vertices = 4) out;

in vec4 vColor[];
out vec4  fColor;
out vec2  fPoint;
out float fRadius;

uniform int width;
uniform int height;
uniform float vSize;

void main() {
    vec4 offset = vec4(vSize, -vSize, 0.0, 0.0);

    int i;
    for (i = 0; i < gl_in.length(); i ++) {
        vec4 p = gl_in[i].gl_Position;

        fColor = vColor[i];
        fPoint = vec2((p.x * 0.5 + 0.5) * width,
                      (p.y * 0.5 + 0.5) * height);
        fRadius = vSize;

        gl_Position = p + offset.yxzw;
        EmitVertex();

        gl_Position = p + offset.yyzw;
        EmitVertex();

        gl_Position = p + offset.xxzw;
        EmitVertex();

        gl_Position = p + offset.xyzw;
        EmitVertex();

        EndPrimitive();
    }
}