From 5be7004d96560b4a452b063c410637006083f34a Mon Sep 17 00:00:00 2001 From: HampusM Date: Tue, 14 Jul 2026 16:12:28 +0200 Subject: fix(engine): make UpdateTexture rendering command take Image, not Texture --- engine/src/rendering.rs | 3 ++- engine/src/rendering/backend/opengl.rs | 22 ++++++---------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/engine/src/rendering.rs b/engine/src/rendering.rs index 9a6350e..87c3b6f 100644 --- a/engine/src/rendering.rs +++ b/engine/src/rendering.rs @@ -19,6 +19,7 @@ use crate::ecs::system::initializable::Initializable; use crate::ecs::system::observer::Observe; use crate::ecs::system::Into; use crate::ecs::{declare_entity, Component, Query, Sole}; +use crate::image::Image; use crate::mesh::Mesh; use crate::rendering::blending::Config as BlendingConfig; use crate::rendering::object::{Id as ObjectId, Store as ObjectStore}; @@ -241,7 +242,7 @@ pub enum Command UpdateTexture { obj_id: ObjectId, - texture: AssetOrValue, + image: Image, offset: Vec2, }, RemoveTexture(ObjectId), diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 0fbfb37..95aef27 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -709,15 +709,10 @@ fn handle_commands( tracing::error!("Failed to create texture object: {err}"); } } - Command::UpdateTexture { obj_id, texture, offset } => { - if let Err(err) = update_texture_object( - gl_context, - object_store, - assets, - obj_id, - texture, - offset, - ) { + Command::UpdateTexture { obj_id, image, offset } => { + if let Err(err) = + update_texture_object(gl_context, object_store, obj_id, image, offset) + { tracing::error!("Failed to update texture object: {err}"); } } @@ -1174,16 +1169,11 @@ fn create_texture_object( fn update_texture_object( curr_gl_ctx: &MaybeCurrentContextWithFns, object_store: &mut ObjectStore, - assets: &Assets, texture_object_id: ObjectId, - texture: AssetOrValue, + texture_image: Image, offset: Vec2, ) -> Result<(), GlTextureError> { - let Some((texture_image, _)) = retrieve_texture(assets, &texture) else { - return Ok(()); - }; - let Some(texture_obj) = object_store.get_obj(&texture_object_id) else { tracing::error!( texture_object_id=?texture_object_id, @@ -1207,7 +1197,7 @@ fn update_texture_object( 0, offset.into(), texture_image.dimensions().into(), - get_image_pixel_data_format(&*texture_image), + get_image_pixel_data_format(&texture_image), texture_image.as_bytes(), )?; -- cgit v1.2.3-18-g5258