diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-02 21:56:01 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:07 -0300 |
| commit | 589269c0b3ca74a29f5889fa6e781e59cef7efdb (patch) | |
| tree | ecd2ce3060d06353f3b6302e70abf784295ff40f /shaders | |
| parent | 81992cc92743a98066ee1a9025bc74f91cf0e967 (diff) | |
| download | pardes-589269c0b3ca74a29f5889fa6e781e59cef7efdb.tar.gz pardes-589269c0b3ca74a29f5889fa6e781e59cef7efdb.zip | |
wasm replay ui
Diffstat (limited to 'shaders')
| -rw-r--r-- | shaders/ui.frag.es.glsl | 16 | ||||
| -rw-r--r-- | shaders/ui.vert.es.glsl | 41 |
2 files changed, 57 insertions, 0 deletions
diff --git a/shaders/ui.frag.es.glsl b/shaders/ui.frag.es.glsl new file mode 100644 index 00000000..736e48f5 --- /dev/null +++ b/shaders/ui.frag.es.glsl @@ -0,0 +1,16 @@ +#version 300 es + +precision mediump float; + +uniform sampler2D u_atlas; + +in vec2 v_uv; +in vec3 v_fg; +in vec3 v_bg; + +out vec4 o_col; + +void main() { + float a = texture(u_atlas, v_uv).r; + o_col = vec4(mix(v_bg, v_fg, a), 1.0); +} diff --git a/shaders/ui.vert.es.glsl b/shaders/ui.vert.es.glsl new file mode 100644 index 00000000..271524be --- /dev/null +++ b/shaders/ui.vert.es.glsl @@ -0,0 +1,41 @@ +#version 300 es + +precision mediump float; + +layout(location = 0) in vec4 a_rect; +layout(location = 1) in vec4 a_uv_rect; +layout(location = 2) in vec3 a_fg; +layout(location = 3) in vec3 a_bg; + +out vec2 v_uv; +out vec3 v_fg; +out vec3 v_bg; + +void main() { + vec2 pos; + vec2 uv; + int corner = gl_VertexID % 6; + if (corner == 0) { + pos = vec2(a_rect.x, a_rect.y); + uv = vec2(a_uv_rect.x, a_uv_rect.y); + } else if (corner == 1) { + pos = vec2(a_rect.z, a_rect.y); + uv = vec2(a_uv_rect.z, a_uv_rect.y); + } else if (corner == 2) { + pos = vec2(a_rect.z, a_rect.w); + uv = vec2(a_uv_rect.z, a_uv_rect.w); + } else if (corner == 3) { + pos = vec2(a_rect.x, a_rect.y); + uv = vec2(a_uv_rect.x, a_uv_rect.y); + } else if (corner == 4) { + pos = vec2(a_rect.z, a_rect.w); + uv = vec2(a_uv_rect.z, a_uv_rect.w); + } else { + pos = vec2(a_rect.x, a_rect.w); + uv = vec2(a_uv_rect.x, a_uv_rect.w); + } + v_uv = uv; + v_fg = a_fg; + v_bg = a_bg; + gl_Position = vec4(pos, 0.0, 1.0); +} |
