summaryrefslogtreecommitdiff
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/shaders/bitmap/frag.glsl46
-rw-r--r--src/assets/shaders/bitmap/vert.glsl24
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);
}