summaryrefslogtreecommitdiff
path: root/engine/src/ui/imgui.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-07-10 15:37:09 +0200
committerHampusM <hampus@hampusmat.com>2026-07-10 15:37:09 +0200
commit62771c4e3714e068a85427e40f33b279afa49c17 (patch)
treed9149df74c62d518a130f7413b6ba0d7888ea288 /engine/src/ui/imgui.rs
parentd91156a08ea9f65d1e2660c50581a10603f29f58 (diff)
refactor(engine): use new Single get* fns
Diffstat (limited to 'engine/src/ui/imgui.rs')
-rw-r--r--engine/src/ui/imgui.rs49
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)]