From c275adc57454051aa915bb7f470ff9dac3427dd6 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 10 Jul 2026 16:33:23 +0200 Subject: feat(engine): add RemoveTexture rendering command --- engine/src/rendering.rs | 1 + engine/src/rendering/backend/opengl.rs | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/engine/src/rendering.rs b/engine/src/rendering.rs index 94c619f..8ce48fc 100644 --- a/engine/src/rendering.rs +++ b/engine/src/rendering.rs @@ -238,6 +238,7 @@ pub enum Command ActivateShader(ObjectId), SetShaderBinding(ShaderBindingLocation, ShaderBindingValue), CreateTexture(ObjectId, AssetOrValue), + RemoveTexture(ObjectId), CreateMesh { obj_id: ObjectId, diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index 0323f29..2394acf 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -708,6 +708,21 @@ fn handle_commands( tracing::error!("Failed to create texture object: {err}"); } } + Command::RemoveTexture(texture_object_id) => { + let Some(texture_object) = + object_store.remove(&texture_object_id).flatten() + else { + tracing::error!( + object_id=?texture_object_id, + "Object store does not contain a texture object with this ID" + ); + continue; + }; + + let gl_texture = GlTexture::from_raw(texture_object.as_raw()); + + gl_texture.delete(gl_context); + } Command::CreateMesh { obj_id: mesh_object_id, mesh, -- cgit v1.2.3-18-g5258