diff options
Diffstat (limited to 'engine/src')
| -rw-r--r-- | engine/src/rendering.rs | 3 | ||||
| -rw-r--r-- | 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<Texture>, + image: Image, offset: Vec2<u32>, }, 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>, + texture_image: Image, offset: Vec2<u32>, ) -> 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(), )?; |
