summaryrefslogtreecommitdiff
path: root/themes/src/shaders
diff options
context:
space:
mode:
Diffstat (limited to 'themes/src/shaders')
-rw-r--r--themes/src/shaders/sun_frag.cpp51
-rw-r--r--themes/src/shaders/sun_frag.h4
-rw-r--r--themes/src/shaders/sun_vert.cpp15
3 files changed, 69 insertions, 1 deletions
diff --git a/themes/src/shaders/sun_frag.cpp b/themes/src/shaders/sun_frag.cpp
new file mode 100644
index 0000000..d5af4be
--- /dev/null
+++ b/themes/src/shaders/sun_frag.cpp
@@ -0,0 +1,51 @@
+#include "sun_frag.h"
+
+const char* shader_sun_frag = "varying lowp vec4 VertexColor; \n"
+" \n"
+"#ifdef GL_ES \n"
+"precision mediump float; \n"
+"#endif \n"
+" \n"
+"uniform vec2 u_resolution; \n"
+" \n"
+"vec2 skew (vec2 st) { \n"
+" vec2 r = vec2(0.0); \n"
+" r.x = 1.1547*st.x; \n"
+" r.y = st.y+0.5*r.x; \n"
+" return r; \n"
+"} \n"
+" \n"
+"vec3 simplexGrid (vec2 st) { \n"
+" vec3 xyz = vec3(0.0); \n"
+" \n"
+" vec2 p = fract(skew(st)); \n"
+" if (p.x > p.y) { \n"
+" xyz.xy = 1.0-vec2(p.x,p.y-p.x); \n"
+" xyz.z = p.y; \n"
+" } else { \n"
+" xyz.yz = 1.0-vec2(p.x-p.y,p.y); \n"
+" xyz.x = p.x; \n"
+" } \n"
+" \n"
+" return fract(xyz); \n"
+"} \n"
+" \n"
+"void main() { \n"
+" vec2 st = gl_FragCoord.xy/u_resolution.xy; \n"
+" vec3 color = VertexColor.xyz \n"
+" \n"
+" // Scale the space to see the grid \n"
+" st *= 10.; \n"
+" \n"
+" // Show the 2D grid \n"
+" color.rg = fract(st); \n"
+" \n"
+" // Skew the 2D grid \n"
+" // color.rg = fract(skew(st)); \n"
+" \n"
+" // Subdivide the grid into to equilateral triangles \n"
+" // color = simplexGrid(st); \n"
+" \n"
+" gl_FragColor = vec4(color,1.0); \n"
+"} \n"
+" \n";
diff --git a/themes/src/shaders/sun_frag.h b/themes/src/shaders/sun_frag.h
new file mode 100644
index 0000000..e657cf6
--- /dev/null
+++ b/themes/src/shaders/sun_frag.h
@@ -0,0 +1,4 @@
+#ifndef SHADER_SUN_FRAG
+#define SHADER_SUN_FRAG
+extern const char* shader_sun_frag;
+#endif
diff --git a/themes/src/shaders/sun_vert.cpp b/themes/src/shaders/sun_vert.cpp
index 0049bfd..ca617c0 100644
--- a/themes/src/shaders/sun_vert.cpp
+++ b/themes/src/shaders/sun_vert.cpp
@@ -1,3 +1,16 @@
#include "sun_vert.h"
-const char* shader_sun_vert = " \n";
+const char* shader_sun_vert = " \n"
+"attribute vec2 position; \n"
+"attribute vec4 color; \n"
+"attribute mat4 vMatrix; \n"
+"uniform mat4 projection; \n"
+"uniform mat4 model; \n"
+"varying lowp vec4 VertexColor; \n"
+" \n"
+"void main() { \n"
+" vec4 fragmentPosition = projection * model * vMatrix * vec4(position.x, position.y, 0, 1); \n"
+" gl_Position = fragmentPosition; \n"
+" VertexColor = color; \n"
+"} \n"
+" \n";