diff options
| author | LLLL Colonq <llll@colonq> | 2026-06-12 16:04:11 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-06-12 16:04:20 -0400 |
| commit | f06acba9390f3f579dd551c49dd61b8575ea342b (patch) | |
| tree | 3e6d1ea797ee7df4e0716e57285259aa6ce80a04 /crates | |
| parent | fa51e545ba60ba6e020f67b0aae6f045a4c4c820 (diff) | |
Update
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/teleia/src/assets/shaders/bitmap/frag.glsl | 9 | ||||
| -rw-r--r-- | crates/teleia/src/font.rs | 4 |
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", ¶ms.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); |
