summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-07-14 16:12:28 +0200
committerHampusM <hampus@hampusmat.com>2026-07-14 16:12:28 +0200
commit5be7004d96560b4a452b063c410637006083f34a (patch)
tree57833b067084c7f98e1d66fc7dfe0a4221578bfa /engine
parentd3e678fa6112ac82b59e638c41cde8b9c4b0035e (diff)
fix(engine): make UpdateTexture rendering command take Image, not TextureHEADmaster
Diffstat (limited to 'engine')
-rw-r--r--engine/src/rendering.rs3
-rw-r--r--engine/src/rendering/backend/opengl.rs22
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(),
)?;