20 FrameTimingCategory category = FrameTimingCategory::FocusedSteadyState;
21 bool presented =
false;
22 bool successful_present_interval_valid =
false;
23 bool swapchain_recreated =
false;
24 std::uint32_t window_move_callback_count = 0;
25 std::uint32_t window_resize_callback_count = 0;
26 std::uint32_t focus_callback_count = 0;
27 double successful_present_interval_milliseconds = 0.0;
28 double application_loop_interval_milliseconds = 0.0;
29 double event_poll_and_input_milliseconds = 0.0;
30 double layer_update_milliseconds = 0.0;
31 double graphics_resource_update_milliseconds = 0.0;
32 double render_preparation_milliseconds = 0.0;
33 double swapchain_acquire_milliseconds = 0.0;
34 double queue_submission_milliseconds = 0.0;
35 double present_milliseconds = 0.0;
36 double fence_wait_milliseconds = 0.0;
37 double swapchain_recreation_milliseconds = 0.0;
38 double device_idle_wait_milliseconds = 0.0;
40 [[nodiscard]]
constexpr bool operator==(
const FrameTimingSample&)
const noexcept =
default;
61 explicit Layer(
const std::string& name =
"layer");
62 virtual ~Layer() =
default;
64 virtual void OnAttach()
67 virtual void OnDetach()
70 virtual void OnUpdate([[maybe_unused]]
Duration ts)
73 virtual void OnUiFrame()
81 return pixelbullet::core::EventResult::Ignored;
83 virtual EventPhase GetEventPhase()
const
85 return EventPhase::Normal;
88 const std::string& GetName()
const
94 std::string debug_name_;