diff options
| author | HampusM <hampus@hampusmat.com> | 2026-07-10 15:37:09 +0200 |
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2026-07-10 15:37:09 +0200 |
| commit | 62771c4e3714e068a85427e40f33b279afa49c17 (patch) | |
| tree | d9149df74c62d518a130f7413b6ba0d7888ea288 /engine/src/ui | |
| parent | d91156a08ea9f65d1e2660c50581a10603f29f58 (diff) | |
refactor(engine): use new Single get* fns
Diffstat (limited to 'engine/src/ui')
| -rw-r--r-- | engine/src/ui/imgui.rs | 49 |
1 files changed, 34 insertions, 15 deletions
diff --git a/engine/src/ui/imgui.rs b/engine/src/ui/imgui.rs index 45efc6d..1cb3b98 100644 --- a/engine/src/ui/imgui.rs +++ b/engine/src/ui/imgui.rs @@ -170,6 +170,10 @@ fn handle_window_changed( mut context: Single<Context>, ) { + let Ok(context) = context.get_mut() else { + unreachable!(); + }; + let Some(event_match) = observe .iter() .find(|event_match| event_match.get_entity().has_component(TargetWindow::id())) @@ -204,16 +208,29 @@ fn update( delta_time: Single<DeltaTime>, mut assets: Single<Assets>, mut render_passes: Single<RenderPasses>, - renderer_object_store: Single<RenderingObjectStore>, + rendering_object_store: Single<RenderingObjectStore>, shader_context: Single<ShaderContext>, keyboard: Single<Keyboard>, mouse: Single<Mouse>, mouse_buttons: Single<MouseButtons>, mut state: Local<State>, -) +) -> Result<(), crate::Error> { + let Ok(context) = context.get_mut() else { + unreachable!(); + }; + + let delta_time = delta_time.get()?; + let assets = assets.get_mut()?; + let render_passes = render_passes.get_mut()?; + let rendering_object_store = rendering_object_store.get()?; + let shader_context = shader_context.get()?; + let keyboard = keyboard.get()?; + let mouse = mouse.get()?; + let mouse_buttons = mouse_buttons.get()?; + let Some((window, window_surface_spec)) = target_window_query.iter().next() else { - return; + return Ok(()); }; let curr_state = std::mem::replace(&mut *state, State::Unreachable); @@ -222,16 +239,16 @@ fn update( State::NotInitialized => { let Some((font_texture_asset, shader_asset, mesh_obj_id, mesh)) = initialize_context( - &mut context, + context, &window, window_surface_spec.id, - &mut assets, - &mut render_passes, - &shader_context, + assets, + render_passes, + shader_context, ) else { *state = State::NotInitialized; - return; + return Ok(()); }; *state = State::Initializing { @@ -247,7 +264,7 @@ fn update( mesh_obj_id, mesh, } => { - let Some(font_texture_obj) = renderer_object_store + let Some(font_texture_obj) = rendering_object_store .get_obj(&RenderingObjectId::Asset(font_texture_asset.id())) else { *state = State::Initializing { @@ -256,7 +273,7 @@ fn update( mesh_obj_id, mesh, }; - return; + return Ok(()); }; context @@ -291,7 +308,7 @@ fn update( mesh_obj_id, mesh, }; - return; + return Ok(()); } context @@ -299,12 +316,12 @@ fn update( .get_io_mut() .set_delta_time(delta_time.duration.as_secs_f32()); - update_inputs(&mut context, &window, &keyboard, &mouse, &mouse_buttons); + update_inputs(context, &window, keyboard, mouse, mouse_buttons); add_drawing_render_pass( - &mut context, - &mut render_passes, - &shader_context, + context, + render_passes, + shader_context, window_surface_spec.id, font_texture_asset.clone(), shader_asset.clone(), @@ -323,6 +340,8 @@ fn update( } State::Unreachable => unreachable!(), } + + Ok(()) } #[derive(Debug, Component)] |
