diff options
Diffstat (limited to 'src/assets')
| -rw-r--r-- | src/assets/shaders/bitmap/frag.glsl | 46 | ||||
| -rw-r--r-- | src/assets/shaders/bitmap/vert.glsl | 24 |
2 files changed, 8 insertions, 62 deletions
diff --git a/src/assets/shaders/bitmap/frag.glsl b/src/assets/shaders/bitmap/frag.glsl index 94d27c9..470a7b8 100644 --- a/src/assets/shaders/bitmap/frag.glsl +++ b/src/assets/shaders/bitmap/frag.glsl @@ -2,55 +2,13 @@ precision highp float; uniform sampler2D texture_data; -uniform int text_length; -uniform int text[256]; -uniform int char_width; -uniform int char_height; -uniform int font_width; -uniform int font_height; -uniform int text_width; -uniform int text_height; uniform vec3 text_color; in vec2 vertex_texcoord; out vec4 frag_color; -void main() -{ - vec2 inverted_texcoord = vec2(vertex_texcoord.x, 1.0 - vertex_texcoord.y); - vec2 texcoord_pixels = inverted_texcoord * vec2(float(text_width), float(text_height)); - int texcoord_char_x = int(floor(texcoord_pixels.x)) / char_width; - int texcoord_char_y = int(floor(texcoord_pixels.y)) / char_height; - - int x = 0; - int y = 0; - int i = 0; - for (; i < text_length; ++i) { - if (x == texcoord_char_x && y == texcoord_char_y) { - break; - } - if (text[i] == 10) { - x = 0; - y += 1; - } else { - x += 1; - } - } - if (i == text_length || text[i] == 10) discard; - - int entry = text[i] - 32; - vec2 texcoord_base = vec2( - float(entry % (font_width / char_width)) * float(char_width), - float(entry / (font_width / char_width)) * float(char_height) - ); - // vec2 texcoord_base = vec2(8.0, 0.0); - vec2 texcoord_off = vec2( - mod(texcoord_pixels.x, float(char_width)), - mod(texcoord_pixels.y, float(char_height)) - ); - vec2 texcoord_final = (texcoord_base + texcoord_off) / vec2(float(font_width), float(font_height)); - - vec4 texel = texture(texture_data, texcoord_final); +void main() { + vec4 texel = texture(texture_data, vertex_texcoord); if (texel.rgb == vec3(0.0, 0.0, 0.0)) discard; texel.r = text_color.r; texel.g = text_color.g; diff --git a/src/assets/shaders/bitmap/vert.glsl b/src/assets/shaders/bitmap/vert.glsl index 4005d75..4ff9865 100644 --- a/src/assets/shaders/bitmap/vert.glsl +++ b/src/assets/shaders/bitmap/vert.glsl @@ -1,26 +1,14 @@ #version 300 es precision highp float; -uniform mat4 view; -uniform mat4 position; +in vec2 vertex; +in vec2 texcoord; + +uniform mat4 transform; out vec2 vertex_texcoord; void main() { - const vec2 positions[4] = vec2[]( - vec2(-1, -1), - vec2(+1, -1), - vec2(-1, +1), - vec2(+1, +1) - ); - const vec2 coords[4] = vec2[]( - vec2(0, 0), - vec2(1, 0), - vec2(0, 1), - vec2(1, 1) - ); - vec4 vertex = vec4(positions[gl_VertexID], 0.0, 1.0); - - vertex_texcoord = coords[gl_VertexID]; - gl_Position = view * position * vertex; + vertex_texcoord = texcoord; + gl_Position = transform * vec4(vertex, 0.0, 1.0); } |
