Move GLSL shaders to external files and use include_str!() to load them.
[mandelwow.git] / mandelwow.frag
diff --git a/mandelwow.frag b/mandelwow.frag
new file mode 100644 (file)
index 0000000..3795fd4
--- /dev/null
@@ -0,0 +1,28 @@
+#version 140
+precision highp float;
+in vec2 c;
+in vec2 z;
+out vec4 f_color;
+
+void main() {
+    float zx = z.x;
+    float zy = z.y;
+    int maxiter = 64;
+    int iter = maxiter;
+    while (iter > 0) {
+        float zx2 = zx * zx;
+        float zy2 = zy * zy;
+        if (zx2 * zy2 > 4.0) {
+          float index = float(iter) / float(maxiter);
+          f_color = vec4(index, 0.1, 0.5 - index / 2, 0.8 - index);
+          return;
+        }
+        zy = zx * zy * 2.0 + c.y;
+        zx = zx2 - zy2 + c.x;
+        iter -= 1;
+    }
+    f_color = vec4((sin(z.y) + 1.0) / 2,
+                   (sin(c.y) + 1.0) / 2,
+                   (sin(c.x) + 1.0) / 2,
+                   1.0);
+}