diff options
author | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-22 13:59:13 +0100 |
---|---|---|
committer | Ilion Beyst <ilion.beyst@gmail.com> | 2021-12-22 13:59:13 +0100 |
commit | 96ee00242f350b391dcc1cf4d72a442c969f565e (patch) | |
tree | a9c57feb105200556c76559b3c775d159c98aef9 /web/pw-frontend/public/static/shaders/vert/simple.glsl | |
parent | 218ebc3b8f5024a0813f8378b83d91dbb9aa7db2 (diff) | |
download | planetwars.dev-96ee00242f350b391dcc1cf4d72a442c969f565e.tar.xz planetwars.dev-96ee00242f350b391dcc1cf4d72a442c969f565e.zip |
add pw-frontend
Diffstat (limited to 'web/pw-frontend/public/static/shaders/vert/simple.glsl')
-rw-r--r-- | web/pw-frontend/public/static/shaders/vert/simple.glsl | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/web/pw-frontend/public/static/shaders/vert/simple.glsl b/web/pw-frontend/public/static/shaders/vert/simple.glsl new file mode 100644 index 0000000..935decf --- /dev/null +++ b/web/pw-frontend/public/static/shaders/vert/simple.glsl @@ -0,0 +1,36 @@ +#ifdef GL_ES +precision mediump float; +#endif + +attribute vec2 a_position; +attribute vec2 a_texCoord; + +uniform float u_time; + +uniform vec4 u_viewbox; // [x, y, width, height] +uniform vec2 u_resolution; +uniform mat3 u_trans; +uniform mat3 u_trans_next; + +varying vec2 v_pos; +varying vec2 v_texCoord; + +void main() { + vec3 pos = vec3(a_position, 1.0); + + mat3 trans = (u_trans_next * (1.0 - u_time)) + (u_trans * u_time); + + pos = trans * pos; + + vec2 uv = pos.xy; + + // Viewbox's center is top left, a_position's is in the center to the screen + // So translate and scale the viewbox** + uv -= u_viewbox.xy + (u_viewbox.zw * 0.5); + uv /= u_viewbox.zw * 0.5; + + v_pos = (uv.xy + 1.0) * 0.5; + + gl_Position = vec4(uv.xy, 0.0, 1.0); + v_texCoord = a_texCoord; +} |