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();
}
}
|