From be94cec078e86e643f52f0f3041a98b36e43ec8b Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 28 Aug 2026 18:32:58 +0200 Subject: feat(engine): add ability to create textures without images --- engine/src/rendering.rs | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'engine/src/rendering.rs') diff --git a/engine/src/rendering.rs b/engine/src/rendering.rs index 5219d0a..cb6ec08 100644 --- a/engine/src/rendering.rs +++ b/engine/src/rendering.rs @@ -25,7 +25,7 @@ use crate::rendering::blending::Config as BlendingConfig; use crate::rendering::object::{Id as ObjectId, Store as ObjectStore}; use crate::rendering::shader::cursor::Binding as ShaderBinding; use crate::rendering::shader::Program as ShaderProgram; -use crate::texture::{CubeMapFace, Texture}; +use crate::texture::{CubeMapFace, Properties as TextureProperties}; use crate::vector::Vec2; use crate::windowing::dpi::PhysicalSize; use crate::windowing::window::Window; @@ -77,7 +77,12 @@ impl crate::ecs::extension::Extension for Extension let _ = collector.add_sole(self.graphics_props); - collector.add_system(*PRE_RENDER_PHASE, main_render_pass::add_main_render_pass); + collector.add_system( + *PRE_RENDER_PHASE, + main_render_pass::add_main_render_pass + .into_system() + .initialize(Default::default()), + ); collector.add_system( *RENDER_PHASE, @@ -215,7 +220,13 @@ pub enum Command CreateShaderProgram(ObjectId, ShaderProgram), ActivateShader(ObjectId), SetShaderBinding(ShaderBinding), - CreateTexture(ObjectId, AssetOrValue), + CreateTexture + { + obj_id: ObjectId, + pixel_data_format: TexturePixelDataFormat, + creation: TextureCreation, + properties: TextureProperties, + }, UpdateTexture { obj_id: ObjectId, @@ -399,6 +410,22 @@ bitflags! { } } +#[derive(Debug, Clone)] +#[non_exhaustive] +pub enum TextureCreation +{ + Texture2D + { + size: Dimens, + image: Option>, + }, + CubeMap + { + size: Dimens, + images: Option<[(CubeMapFace, Box<[u8]>); 6]>, + }, +} + #[derive(Debug, Clone)] #[non_exhaustive] pub enum TextureUpdate -- cgit v1.2.3-18-g5258