Files
wschod/game/res/shaders/uiwidget.vert
T
2025-06-15 08:50:09 +02:00

35 lines
678 B
GLSL

#version 100
attribute vec3 position;
attribute vec2 uv;
uniform mat3 model;
uniform mat4 projection;
uniform float icon_index;
varying vec2 f_uv;
varying vec2 f_icon_uv;
void
main ()
{
float tex_w = 40.0;
float tex_h = 80.0;
float icon_w = 20.0;
float icon_h = 20.0;
float icons_per_row = tex_w / icon_w;
float x = mod (icon_index, icons_per_row);
float y = floor (icon_index / icons_per_row);
vec2 icon_offset = vec2 (x * icon_w / tex_w, y * icon_h / tex_h);
vec2 icon_size = vec2 (icon_w / tex_w, icon_h / tex_h);
f_icon_uv = icon_offset + uv * icon_size;
f_uv = uv;
gl_Position = projection * vec4 (model * vec3 (position.xy, 1.0), 1.0);
}