diff options
| author | LLLL Colonq <llll@colonq> | 2026-07-17 03:32:57 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2026-07-17 03:32:57 -0400 |
| commit | 0ae09d768ba07d571cea564f90ca0a8ecdb73022 (patch) | |
| tree | 5cadce3a1639e1539fdee339036b27d5713b1186 /crates | |
| parent | ae649d8616ccd53a848de47f49cf35747f5c9227 (diff) | |
Alpha on font rendering
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/teleia/src/assets/shaders/bitmap/frag.glsl | 4 | ||||
| -rw-r--r-- | crates/teleia/src/assets/shaders/bitmap/vert.glsl | 4 | ||||
| -rw-r--r-- | crates/teleia/src/assets/shaders/uber/frag.glsl | 4 | ||||
| -rw-r--r-- | crates/teleia/src/assets/shaders/uber/vert.glsl | 4 | ||||
| -rw-r--r-- | crates/teleia/src/font.rs | 10 | ||||
| -rw-r--r-- | crates/teleia/src/renderer.rs | 6 |
6 files changed, 16 insertions, 16 deletions
diff --git a/crates/teleia/src/assets/shaders/bitmap/frag.glsl b/crates/teleia/src/assets/shaders/bitmap/frag.glsl index b79e8d0..abb4e96 100644 --- a/crates/teleia/src/assets/shaders/bitmap/frag.glsl +++ b/crates/teleia/src/assets/shaders/bitmap/frag.glsl @@ -5,7 +5,7 @@ uniform sampler2D texture_data; uniform vec4 background; in vec2 vertex_texcoord; -in vec3 vertex_color; +in vec4 vertex_color; out vec4 frag_color; void main() { @@ -17,6 +17,6 @@ void main() { frag_color = background; return; } - texel.rgb = vertex_color; + texel = vertex_color; frag_color = texel; } diff --git a/crates/teleia/src/assets/shaders/bitmap/vert.glsl b/crates/teleia/src/assets/shaders/bitmap/vert.glsl index 6a9870a..126bc81 100644 --- a/crates/teleia/src/assets/shaders/bitmap/vert.glsl +++ b/crates/teleia/src/assets/shaders/bitmap/vert.glsl @@ -3,14 +3,14 @@ precision highp float; in vec3 vertex; in vec2 texcoord; -in vec3 color; +in vec4 color; uniform mat4 view; uniform mat4 position; uniform mat4 projection; out vec2 vertex_texcoord; -out vec3 vertex_color; +out vec4 vertex_color; void main() { vertex_texcoord = texcoord; diff --git a/crates/teleia/src/assets/shaders/uber/frag.glsl b/crates/teleia/src/assets/shaders/uber/frag.glsl index 639ad59..467872c 100644 --- a/crates/teleia/src/assets/shaders/uber/frag.glsl +++ b/crates/teleia/src/assets/shaders/uber/frag.glsl @@ -34,7 +34,7 @@ uniform float hue_scale; uniform float opacity; // flag(VERTEX_COLOR) -in vec3 vertex_color; +in vec4 vertex_color; // flag(SPRITE) uniform vec2 sprite_offset; @@ -208,7 +208,7 @@ void main() { discard; } if (flag(VERTEX_COLOR)) { - frag_color.rgb = vertex_color; + frag_color = vertex_color; } if (flag(OPACITY)) { frag_color.a *= opacity; diff --git a/crates/teleia/src/assets/shaders/uber/vert.glsl b/crates/teleia/src/assets/shaders/uber/vert.glsl index 8b4ef21..6de65aa 100644 --- a/crates/teleia/src/assets/shaders/uber/vert.glsl +++ b/crates/teleia/src/assets/shaders/uber/vert.glsl @@ -3,7 +3,7 @@ uniform highp int flags; in vec3 vertex; in vec3 normal; in vec2 texcoord; -in vec3 color; +in vec4 color; uniform mat4 view; uniform mat4 position; @@ -15,7 +15,7 @@ uniform vec3 offset; uniform float yskew; out vec2 vertex_texcoord; -out vec3 vertex_color; +out vec4 vertex_color; out vec3 vertex_normal; out vec3 vertex_fragpos; out vec4 vertex_fragpos_shadow_dir; diff --git a/crates/teleia/src/font.rs b/crates/teleia/src/font.rs index 822705c..d97e96c 100644 --- a/crates/teleia/src/font.rs +++ b/crates/teleia/src/font.rs @@ -2,7 +2,7 @@ use crate::{context, mesh, state, texture}; use glow::HasContext; pub struct BitmapParams<'color> { - pub color: &'color [glam::Vec3], + pub color: &'color [glam::Vec4], pub scale: glam::Vec2, pub offset: glam::Vec2, } @@ -49,7 +49,7 @@ impl Bitmap { ctx.gl.enable_vertex_attrib_array(mesh::ATTRIB_TEXCOORD); let colors_buf = ctx.gl.create_buffer().expect("failed to create buffer object"); ctx.gl.bind_buffer(glow::ARRAY_BUFFER, Some(colors_buf)); - ctx.gl.vertex_attrib_pointer_f32(mesh::ATTRIB_COLOR, 3, glow::FLOAT, false, 0, 0); + ctx.gl.vertex_attrib_pointer_f32(mesh::ATTRIB_COLOR, 4, glow::FLOAT, false, 0, 0); ctx.gl.enable_vertex_attrib_array(mesh::ATTRIB_COLOR); let index_buf = ctx.gl.create_buffer().expect("failed to create buffer object"); ctx.gl.bind_buffer(glow::ELEMENT_ARRAY_BUFFER, Some(index_buf)); @@ -109,7 +109,7 @@ impl Bitmap { let c = if let Some(c) = params.color.get(if params.color.is_empty() { 0 } else { i % params.color.len() }) { *c } else { - glam::Vec3::new(1.0, 1.0, 1.0) + glam::Vec4::new(1.0, 1.0, 1.0, 1.0) }; colors.push(c); colors.push(c); colors.push(c); colors.push(c); indices.push(idx); indices.push(idx + 1); indices.push(idx + 2); @@ -144,7 +144,7 @@ impl Bitmap { glow::ARRAY_BUFFER, std::slice::from_raw_parts( colors.as_ptr() as _, - colors.len() * std::mem::size_of::<f32>() * 3, + colors.len() * std::mem::size_of::<f32>() * 4, ), glow::STATIC_DRAW, ); @@ -160,7 +160,7 @@ impl Bitmap { pub fn render_text_helper(&self, ctx: &context::Context, st: &state::State, - text: &str, color: &[glam::Vec3] + text: &str, color: &[glam::Vec4] ) { self.render_text_parameterized( ctx, st, diff --git a/crates/teleia/src/renderer.rs b/crates/teleia/src/renderer.rs index 299baf2..7384f0d 100644 --- a/crates/teleia/src/renderer.rs +++ b/crates/teleia/src/renderer.rs @@ -179,7 +179,7 @@ pub struct RenderTextScreen<'c, 's, 'r, 'str, 'f, A: Assets> { pos: glam::Vec2, font: Option<&'f font::Bitmap>, centered: bool, - col: Option<glam::Vec3>, + col: Option<glam::Vec4>, scale: Option<glam::Vec2>, offset: Option<glam::Vec2>, } @@ -200,7 +200,7 @@ impl<'c, 's, 'r, 'str, 'f, A: Assets> RenderTextScreen<'c, 's, 'r, 'str, 'f, A> self.pos + glam::Vec2::new(-dims.x / 2.0, dims.y / 2.0) }; self.renderer.set_position_2d(self.ctx, self.st, fpos, dims); - let color: &[glam::Vec3] = if let Some(col) = self.col { &[col] } else { &[] }; + let color: &[glam::Vec4] = if let Some(col) = self.col { &[col] } else { &[] }; font.render_text_parameterized(self.ctx, self.st, self.text, font::BitmapParams { color, scale: if let Some(scale) = self.scale { scale } else { glam::Vec2::ONE }, @@ -209,7 +209,7 @@ impl<'c, 's, 'r, 'str, 'f, A: Assets> RenderTextScreen<'c, 's, 'r, 'str, 'f, A> } pub fn font(mut self, font: &'f font::Bitmap) -> Self { self.font = Some(font); self } pub fn centered(mut self) -> Self { self.centered = true; self } - pub fn color(mut self, col: glam::Vec3) -> Self { self.col = Some(col); self } + pub fn color(mut self, col: glam::Vec4) -> Self { self.col = Some(col); self } pub fn scale(mut self, scale: glam::Vec2) -> Self { self.scale = Some(scale); self } pub fn offset(mut self, offset: glam::Vec2) -> Self { self.offset = Some(offset); self } } |
