From d4eb8a9af800422fec7f5d6777ce8687ca453c15 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 12 Sep 2026 13:01:14 +0200 Subject: feat(engine): add border texture property --- engine/src/rendering/backend/opengl.rs | 11 +++++++++++ engine/src/texture.rs | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 25583b5..9df21c4 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -142,6 +142,7 @@ use crate::rendering::{ RENDER_PHASE, }; use crate::texture::{ + Border as TextureBorder, CubeMapFace as CubeMapTextureFace, Filtering as TextureFiltering, Properties as TextureProperties, @@ -1771,6 +1772,16 @@ fn create_gl_texture( texture_filtering_to_gl(texture_properties.minifying_filter), ); + if let Some(border) = texture_properties.border.as_ref() { + gl_texture.set_float_border_values( + curr_gl_context, + match border { + TextureBorder::RgbaF32(color) => [color.r, color.g, color.b, color.a], + TextureBorder::Depth(depth) => [*depth, 0.0, 0.0, 0.0], + }, + ); + } + Ok(gl_texture) } diff --git a/engine/src/texture.rs b/engine/src/texture.rs index 0c3e884..8361f12 100644 --- a/engine/src/texture.rs +++ b/engine/src/texture.rs @@ -2,6 +2,7 @@ use std::path::Path; use crate::asset::{Assets, Submitter as AssetSubmitter}; use crate::builder; +use crate::color::Rgba; use crate::image::{Error as ImageError, Image}; #[derive(Debug, Clone)] @@ -46,6 +47,7 @@ pub struct Properties pub wrap: Wrapping, pub magnifying_filter: Filtering, pub minifying_filter: Filtering, + pub border: Option, } } @@ -65,6 +67,7 @@ impl Default for Properties wrap: Wrapping::Repeat, magnifying_filter: Filtering::Linear, minifying_filter: Filtering::Nearest, + border: None, } } } @@ -96,6 +99,14 @@ pub enum Wrapping ClampToBorder, } +#[derive(Debug, Clone)] +#[non_exhaustive] +pub enum Border +{ + RgbaF32(Rgba), + Depth(f32), +} + builder! { #[builder(name = ImportSettingsBuilder, derives=(Debug, Clone))] #[derive(Debug, Default, Clone)] -- cgit v1.2.3-18-g5258