From 61cd8d99e6a3475eaf2bd28bc24892cf1aae0398 Mon Sep 17 00:00:00 2001 From: Matthew Kosarek Date: Tue, 15 Aug 2023 07:29:58 -0400 Subject: WIP on the summer theme --- themes/src/shaders/sun_frag.cpp | 51 +++++++++++++++++++++++++++++++++++++++++ themes/src/shaders/sun_frag.h | 4 ++++ themes/src/shaders/sun_vert.cpp | 15 +++++++++++- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 themes/src/shaders/sun_frag.cpp create mode 100644 themes/src/shaders/sun_frag.h (limited to 'themes/src/shaders') 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"; -- cgit v1.2.1