littlewood (fp32)
[maximus:littlewood.git] / fp32_draw.vert
1 #version 330 core
2 precision highp float;
3
4 #define POSITION        0
5 #define COLOR           3
6 #define FRAG_COLOR      0
7
8 uniform mat4 MVP;
9
10 layout(location = POSITION) in vec4 Position;
11 layout(location = COLOR) in vec4 Color;
12
13 out block {
14   vec4 Color;
15 } Out;
16
17 void main() {
18   gl_Position = MVP * vec4(Position.xy, 0.0, 1.0);
19   float h = Color.z;
20   float y = 0.5;
21   float u = 0.25 * cos(h);
22   float v = 0.25 * sin(h);
23   vec3 rgb = vec3(y + 1.28033 * v, y - 0.21482 * u - 0.38059 * v, y + 2.12798 * u);
24   Out.Color = vec4(clamp(rgb, 0.0, 1.0), 1.0 / 256.0);
25 }