summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-06-12 16:04:11 -0400
committerLLLL Colonq <llll@colonq>2026-06-12 16:04:20 -0400
commitf06acba9390f3f579dd551c49dd61b8575ea342b (patch)
tree3e6d1ea797ee7df4e0716e57285259aa6ce80a04
parentfa51e545ba60ba6e020f67b0aae6f045a4c4c820 (diff)
Update
-rw-r--r--crates/teleia/src/assets/shaders/bitmap/frag.glsl9
-rw-r--r--crates/teleia/src/font.rs4
2 files changed, 12 insertions, 1 deletions
diff --git a/crates/teleia/src/assets/shaders/bitmap/frag.glsl b/crates/teleia/src/assets/shaders/bitmap/frag.glsl
index 8b71985..30ee1c4 100644
--- a/crates/teleia/src/assets/shaders/bitmap/frag.glsl
+++ b/crates/teleia/src/assets/shaders/bitmap/frag.glsl
@@ -2,6 +2,7 @@
precision highp float;
uniform sampler2D texture_data;
+uniform vec4 background;
in vec2 vertex_texcoord;
in vec3 vertex_color;
@@ -9,7 +10,13 @@ out vec4 frag_color;
void main() {
vec4 texel = texture(texture_data, vertex_texcoord);
- if (texel.rgb == vec3(0.0, 0.0, 0.0)) discard;
+ if (vertex_color == vec3(0.0, 0.0, 0.0)) {
+ discard;
+ }
+ if (texel.rgb == vec3(0.0, 0.0, 0.0)) {
+ frag_color = background;
+ return;
+ }
texel.rgb = vertex_color;
frag_color = texel;
}
diff --git a/crates/teleia/src/font.rs b/crates/teleia/src/font.rs
index 822705c..d069176 100644
--- a/crates/teleia/src/font.rs
+++ b/crates/teleia/src/font.rs
@@ -5,6 +5,7 @@ pub struct BitmapParams<'color> {
pub color: &'color [glam::Vec3],
pub scale: glam::Vec2,
pub offset: glam::Vec2,
+ pub background: glam::Vec4,
}
impl<'color> Default for BitmapParams<'color> {
fn default() -> Self {
@@ -12,6 +13,7 @@ impl<'color> Default for BitmapParams<'color> {
color: &[],
scale: glam::Vec2::ONE,
offset: glam::Vec2::ZERO,
+ background: glam::Vec4::ZERO,
}
}
}
@@ -169,6 +171,7 @@ impl Bitmap {
color,
scale: glam::Vec2::ONE,
offset: glam::Vec2::ZERO,
+ background: glam::Vec4::ZERO,
}
)
}
@@ -186,6 +189,7 @@ impl Bitmap {
params: BitmapParams,
) {
st.bind_2d(ctx, &st.shader_text_bitmap);
+ st.shader_text_bitmap.set_vec4(ctx, "background", &params.background);
let dims = glam::Vec2::new(self.char_width as f32, self.char_height as f32);
let fpos = pos + glam::Vec2::new(-dims.x / 2.0, dims.y / 2.0);
st.shader_text_bitmap.set_position_text_bitmap(ctx, st, self, &fpos);