littlewood (fp32)
[maximus:littlewood.git] / fp32_step.vert
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(location = POSITION) in vec4 Position;
10 layout(location = COLOR) in vec4 Color;
11
12 out block {
13 layout(location = POSITION)   vec4 Position;
14 layout(location = COLOR)   vec4 Color;
15 } Out;
16
17 uniform float plusMinus;
18 uniform float hueShift;
19
20 void main() {
21   vec2 z = Position.xy;
22   vec2 zn = Position.zw;
23   vec2 p = Color.xy;
24   float h = Color.z;
25   p += plusMinus * zn;
26   h += hueShift;
27   zn = vec2(z.x * zn.x - z.y * zn.y, z.x * zn.y + z.y * zn.x);
28   Out.Position = vec4(z, zn);
29   Out.Color = vec4(p, h, 0.0);
30 }