From 9690e173f06d64d3b992b4217d1665d6cbf29394 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 10 Jul 2026 16:02:22 +0200 Subject: refactor(engine): simplify CreateMesh rendering command --- engine/src/rendering/backend/opengl.rs | 28 +++++++--------------------- engine/src/rendering/main_render_pass.rs | 3 ++- 2 files changed, 9 insertions(+), 22 deletions(-) (limited to 'engine/src/rendering') diff --git a/engine/src/rendering/backend/opengl.rs b/engine/src/rendering/backend/opengl.rs index c545ccc..b5ebd81 100644 --- a/engine/src/rendering/backend/opengl.rs +++ b/engine/src/rendering/backend/opengl.rs @@ -100,6 +100,7 @@ use crate::rendering::shader::{ Stage as ShaderStage, }; use crate::rendering::{ + AssetOrValue, BufferClearMask, Command, CommandQueue, @@ -742,34 +743,19 @@ fn handle_commands( let key = *next_graphics_ctx_object_key; - let mesh = match mesh_object_id { - ObjectId::Asset(mesh_asset_id) => match mesh.as_ref() { - Some(mesh) => mesh, - None => { - let Some(mesh) = - assets.get(&AssetHandle::from_id(mesh_asset_id)) - else { - tracing::error!( - asset_id=?mesh_asset_id, - "Mesh asset does not exist" - ); - continue; - }; - - mesh - } - }, - ObjectId::Sequential(_) => { - let Some(mesh) = mesh.as_ref() else { + let mesh = match &mesh { + AssetOrValue::Asset(mesh_asset) => { + let Some(mesh) = assets.get(&mesh_asset) else { tracing::error!( - object_id=?mesh_object_id, - "Object ID is sequential but no mesh data is given" + asset_id=?mesh_asset.id(), + "Mesh asset does not exist" ); continue; }; mesh } + AssetOrValue::Value(mesh) => mesh, }; let graphics_mesh = match GraphicsMesh::new( diff --git a/engine/src/rendering/main_render_pass.rs b/engine/src/rendering/main_render_pass.rs index 02e0ca0..d5e9163 100644 --- a/engine/src/rendering/main_render_pass.rs +++ b/engine/src/rendering/main_render_pass.rs @@ -13,6 +13,7 @@ use crate::rendering::shader::{ Shader, }; use crate::rendering::{ + AssetOrValue, BufferClearMask, Command, DrawMeshOptions, @@ -219,7 +220,7 @@ pub fn add_main_render_passes( render_pass.commands.push(Command::CreateMesh { obj_id: ObjectId::Asset(mesh_asset.id()), - mesh: None, + mesh: AssetOrValue::Asset(mesh_asset.clone()), usage: MeshUsage::Static, }); } -- cgit v1.2.3-18-g5258