Introduce window::Id to timing::Stage in iced_sentinel

This commit is contained in:
Héctor Ramón Jiménez 2024-02-28 15:25:45 +01:00
parent caecbf20ef
commit 8591e5a148
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
8 changed files with 97 additions and 62 deletions

View file

@ -379,7 +379,7 @@ async fn run_instance<A, E, C>(
if viewport_version != current_viewport_version {
let logical_size = state.logical_size();
let layout_timer = debug::layout_time();
let layout_timer = debug::layout_time(window::Id::MAIN);
user_interface = ManuallyDrop::new(
ManuallyDrop::into_inner(user_interface)
.relayout(logical_size, &mut renderer),
@ -431,7 +431,7 @@ async fn run_instance<A, E, C>(
runtime.broadcast(redraw_event, core::event::Status::Ignored);
let draw_timer = debug::draw_time();
let draw_timer = debug::draw_time(window::Id::MAIN);
let new_mouse_interaction = user_interface.draw(
&mut renderer,
state.theme(),
@ -451,7 +451,7 @@ async fn run_instance<A, E, C>(
mouse_interaction = new_mouse_interaction;
}
let render_timer = debug::render_time();
let render_timer = debug::render_time(window::Id::MAIN);
match compositor.present(
&mut renderer,
&mut surface,
@ -499,7 +499,7 @@ async fn run_instance<A, E, C>(
continue;
}
let interact_timer = debug::interact_time();
let interact_timer = debug::interact_time(window::Id::MAIN);
let (interface_state, statuses) = user_interface.update(
&events,
state.cursor(),
@ -600,11 +600,11 @@ pub fn build_user_interface<'a, A: Application>(
where
A::Theme: StyleSheet,
{
let view_timer = debug::view_time();
let view_timer = debug::view_time(window::Id::MAIN);
let view = application.view();
view_timer.finish();
let layout_timer = debug::layout_time();
let layout_timer = debug::layout_time(window::Id::MAIN);
let user_interface = UserInterface::build(view, size, cache, renderer);
layout_timer.finish();

View file

@ -509,7 +509,7 @@ async fn run_instance<A, E, C>(
&mut messages,
);
let draw_timer = debug::draw_time();
let draw_timer = debug::draw_time(id);
let new_mouse_interaction = ui.draw(
&mut window.renderer,
window.state.theme(),
@ -565,7 +565,7 @@ async fn run_instance<A, E, C>(
{
let logical_size = window.state.logical_size();
let layout_time = debug::layout_time();
let layout_time = debug::layout_time(id);
let ui = user_interfaces
.remove(&id)
.expect("Remove user interface");
@ -576,7 +576,7 @@ async fn run_instance<A, E, C>(
);
layout_time.finish();
let draw_time = debug::draw_time();
let draw_time = debug::draw_time(id);
let new_mouse_interaction = user_interfaces
.get_mut(&id)
.expect("Get user interface")
@ -612,7 +612,7 @@ async fn run_instance<A, E, C>(
window.state.viewport_version();
}
let render_time = debug::render_time();
let render_time = debug::render_time(id);
match compositor.present(
&mut window.renderer,
&mut window.surface,
@ -691,10 +691,10 @@ async fn run_instance<A, E, C>(
continue;
}
let interact_time = debug::interact_time();
let mut uis_stale = false;
for (id, window) in window_manager.iter_mut() {
let interact_time = debug::interact_time(id);
let mut window_events = vec![];
events.retain(|(window_id, event)| {
@ -737,8 +737,8 @@ async fn run_instance<A, E, C>(
{
runtime.broadcast(event, status);
}
interact_time.finish();
}
interact_time.finish();
// TODO mw application update returns which window IDs to update
if !messages.is_empty() || uis_stale {
@ -806,11 +806,11 @@ fn build_user_interface<'a, A: Application>(
where
A::Theme: StyleSheet,
{
let view_timer = debug::view_time();
let view_timer = debug::view_time(id);
let view = application.view(id);
view_timer.finish();
let layout_timer = debug::layout_time();
let layout_timer = debug::layout_time(id);
let user_interface = UserInterface::build(view, size, cache, renderer);
layout_timer.finish();