aboutsummaryrefslogtreecommitdiff
path: root/web/pw-visualizer/assets/shaders/vert/image.glsl
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2021-12-29 22:54:30 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2021-12-29 22:54:30 +0100
commit71ee6c99e963d96286cae8d0bfc2f20a9c9c920b (patch)
treec4d290c4a658853436477cb07cd469684c64f8e3 /web/pw-visualizer/assets/shaders/vert/image.glsl
parent0c6d978442b244ca3f29c1ffdd44b5007ae7ad93 (diff)
downloadplanetwars.dev-71ee6c99e963d96286cae8d0bfc2f20a9c9c920b.tar.xz
planetwars.dev-71ee6c99e963d96286cae8d0bfc2f20a9c9c920b.zip
move assets to visualizer package
Diffstat (limited to 'web/pw-visualizer/assets/shaders/vert/image.glsl')
-rw-r--r--web/pw-visualizer/assets/shaders/vert/image.glsl33
1 files changed, 33 insertions, 0 deletions
diff --git a/web/pw-visualizer/assets/shaders/vert/image.glsl b/web/pw-visualizer/assets/shaders/vert/image.glsl
new file mode 100644
index 0000000..5dd3f56
--- /dev/null
+++ b/web/pw-visualizer/assets/shaders/vert/image.glsl
@@ -0,0 +1,33 @@
+#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;
+
+varying vec2 v_pos;
+varying vec2 v_texCoord;
+
+void main() {
+ vec3 pos = vec3(a_position, 1.0);
+
+ pos = u_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;
+}