From c811a94503f18a6a4ce35f6ab8d4f089d0157221 Mon Sep 17 00:00:00 2001 From: "kingstom.chen" Date: Wed, 25 Mar 2026 20:31:54 +0800 Subject: [PATCH] refactor(ui): inline ImGuiLayer callback type aliases --- filter-chain | 2 +- src/ui/imgui_layer.cpp | 19 ++++---- src/ui/imgui_layer.hpp | 45 ++++++++----------- .../render/test_filter_boundary_contracts.cpp | 6 --- 4 files changed, 30 insertions(+), 42 deletions(-) diff --git a/filter-chain b/filter-chain index 6d96a36..d053e43 160000 --- a/filter-chain +++ b/filter-chain @@ -1 +1 @@ -Subproject commit 6d96a36e2cf9a1f39d643fd6c1049fb41aed0391 +Subproject commit d053e43fdd7f55ebe68edb04975fcd3d1eefa541 diff --git a/src/ui/imgui_layer.cpp b/src/ui/imgui_layer.cpp index d1bf7a8..d8926f2 100644 --- a/src/ui/imgui_layer.cpp +++ b/src/ui/imgui_layer.cpp @@ -400,15 +400,16 @@ void ImGuiLayer::set_parameters(std::vector params) { m_state.parameters = std::move(params); } -void ImGuiLayer::set_parameter_change_callback(ParameterChangeCallback callback) { +void ImGuiLayer::set_parameter_change_callback( + std::function callback) { m_on_parameter_change = std::move(callback); } -void ImGuiLayer::set_parameter_reset_callback(ParameterResetCallback callback) { +void ImGuiLayer::set_parameter_reset_callback(std::function callback) { m_on_parameter_reset = std::move(callback); } -void ImGuiLayer::set_prechain_change_callback(PreChainChangeCallback callback) { +void ImGuiLayer::set_prechain_change_callback(std::function callback) { m_on_prechain_change = std::move(callback); } @@ -442,11 +443,13 @@ void ImGuiLayer::set_prechain_parameters(std::vector callback) { m_on_prechain_parameter = std::move(callback); } -void ImGuiLayer::set_prechain_scale_mode_callback(PreChainScaleModeCallback callback) { +void ImGuiLayer::set_prechain_scale_mode_callback( + std::function callback) { m_on_prechain_scale_mode = std::move(callback); } @@ -461,7 +464,7 @@ void ImGuiLayer::set_target_fps(uint32_t target_fps) { } } -void ImGuiLayer::set_target_fps_change_callback(TargetFpsChangeCallback callback) { +void ImGuiLayer::set_target_fps_change_callback(std::function callback) { m_on_target_fps_change = std::move(callback); } @@ -469,11 +472,11 @@ void ImGuiLayer::set_surfaces(std::vector surfaces) { m_surfaces = std::move(surfaces); } -void ImGuiLayer::set_surface_select_callback(SurfaceSelectCallback callback) { +void ImGuiLayer::set_surface_select_callback(std::function callback) { m_on_surface_select = std::move(callback); } -void ImGuiLayer::set_surface_filter_toggle_callback(SurfaceFilterToggleCallback callback) { +void ImGuiLayer::set_surface_filter_toggle_callback(std::function callback) { m_on_surface_filter_toggle = std::move(callback); } diff --git a/src/ui/imgui_layer.hpp b/src/ui/imgui_layer.hpp index fda67e3..47d8ae8 100644 --- a/src/ui/imgui_layer.hpp +++ b/src/ui/imgui_layer.hpp @@ -79,17 +79,6 @@ struct ShaderControlState { PreChainState prechain; }; -using ParameterChangeCallback = - std::function; -using ParameterResetCallback = std::function; -using PreChainChangeCallback = std::function; -using PreChainParameterCallback = - std::function; -using PreChainScaleModeCallback = std::function; -using SurfaceSelectCallback = std::function; -using SurfaceFilterToggleCallback = std::function; -using TargetFpsChangeCallback = std::function; - class ImGuiLayer { public: [[nodiscard]] static auto create(SDL_Window* window, const ImGuiConfig& config, @@ -113,16 +102,18 @@ class ImGuiLayer { void set_current_preset(const std::filesystem::path& path); void set_parameters(std::vector params); - void set_parameter_change_callback(ParameterChangeCallback callback); - void set_parameter_reset_callback(ParameterResetCallback callback); - void set_prechain_change_callback(PreChainChangeCallback callback); + void set_parameter_change_callback( + std::function callback); + void set_parameter_reset_callback(std::function callback); + void set_prechain_change_callback(std::function callback); void set_prechain_state(vk::Extent2D resolution, ScaleMode scale_mode, uint32_t integer_scale); void set_prechain_parameters(std::vector params); - void set_prechain_parameter_callback(PreChainParameterCallback callback); - void set_prechain_scale_mode_callback(PreChainScaleModeCallback callback); + void set_prechain_parameter_callback( + std::function callback); + void set_prechain_scale_mode_callback(std::function callback); void set_runtime_metrics(util::CompositorRuntimeMetricsSnapshot metrics); void set_target_fps(uint32_t target_fps); - void set_target_fps_change_callback(TargetFpsChangeCallback callback); + void set_target_fps_change_callback(std::function callback); [[nodiscard]] auto state() -> ShaderControlState& { return m_state; } [[nodiscard]] auto state() const -> const ShaderControlState& { return m_state; } @@ -133,8 +124,8 @@ class ImGuiLayer { [[nodiscard]] auto is_globally_visible() const -> bool { return m_global_visible; } void set_surfaces(std::vector surfaces); - void set_surface_select_callback(SurfaceSelectCallback callback); - void set_surface_filter_toggle_callback(SurfaceFilterToggleCallback callback); + void set_surface_select_callback(std::function callback); + void set_surface_filter_toggle_callback(std::function callback); void rebuild_for_format(vk::Format new_format); @@ -168,14 +159,14 @@ class ImGuiLayer { ShaderControlState m_state; PresetTreeNode m_preset_tree; - ParameterChangeCallback m_on_parameter_change; - ParameterResetCallback m_on_parameter_reset; - PreChainChangeCallback m_on_prechain_change; - PreChainParameterCallback m_on_prechain_parameter; - PreChainScaleModeCallback m_on_prechain_scale_mode; - SurfaceSelectCallback m_on_surface_select; - SurfaceFilterToggleCallback m_on_surface_filter_toggle; - TargetFpsChangeCallback m_on_target_fps_change; + std::function m_on_parameter_change; + std::function m_on_parameter_reset; + std::function m_on_prechain_change; + std::function m_on_prechain_parameter; + std::function m_on_prechain_scale_mode; + std::function m_on_surface_select; + std::function m_on_surface_filter_toggle; + std::function m_on_target_fps_change; std::vector m_surfaces; util::CompositorRuntimeMetricsSnapshot m_runtime_metrics; uint32_t m_target_fps = 60; diff --git a/tests/render/test_filter_boundary_contracts.cpp b/tests/render/test_filter_boundary_contracts.cpp index 94a0cb0..72dbb62 100644 --- a/tests/render/test_filter_boundary_contracts.cpp +++ b/tests/render/test_filter_boundary_contracts.cpp @@ -84,12 +84,6 @@ TEST_CASE("Filter chain boundary control contract coverage", "[filter_chain][bou static_assert(std::is_same_v); static_assert(std::is_same_v); - static_assert(std::is_same_v>); - static_assert(std::is_same_v>); - static_assert( - std::is_same_v>); static_assert(std::is_same_v); static_assert(std::is_same_v