diff --git a/libs/video/renderer/glsl/quakepnt.frag b/libs/video/renderer/glsl/quakepnt.frag new file mode 100644 index 000000000..3d17156dd --- /dev/null +++ b/libs/video/renderer/glsl/quakepnt.frag @@ -0,0 +1,10 @@ +//precision mediump float; +varying float color; + +void +main (void) +{ + if (color == 1.0) + discard; + gl_FragColor = texture2D (palette, vec2 (pix, 0.5)); +} diff --git a/libs/video/renderer/glsl/quakepnt.vert b/libs/video/renderer/glsl/quakepnt.vert new file mode 100644 index 000000000..0810671c6 --- /dev/null +++ b/libs/video/renderer/glsl/quakepnt.vert @@ -0,0 +1,18 @@ +uniform mat4 mvp_mat; +/** Vertex position. + + x, y, z, c + + c is the color of the point. +*/ +attribute vec4 vertex; + +varying float color; + +void +main (void) +{ + gl_Position = mvp_mat * vec4 (vertex.xyz, 1.0); + gl_PointSize = max (1, 32768.0 * abs (1.0 / gl_Position.z)); + color = vertex.w; +}