Trim Win32 runtime and VR retained state

This commit is contained in:
2026-06-17 10:40:24 +02:00
parent f45fc8226c
commit 3941c54d90
6 changed files with 21 additions and 12 deletions

View File

@@ -70,6 +70,12 @@ What is already real:
- `pp_app_core` - `pp_app_core`
Latest slice: Latest slice:
- `src/platform_windows/windows_runtime_shell.cpp` no longer keeps a second
retained `App*` copy alongside `App::I`; the runtime shell now reads the
bound app directly from the singleton composition edge.
- `src/platform_windows/windows_window_shell.*` and
`src/platform_windows/windows_platform_services.cpp` now keep Win32 VR state
outside the generic retained input-state bundle.
- `src/platform_legacy/legacy_platform_state.*` no longer carries the dead - `src/platform_legacy/legacy_platform_state.*` no longer carries the dead
generic storage-path singleton for the current runtime matrix. generic storage-path singleton for the current runtime matrix.
- `src/platform_legacy/legacy_platform_services.cpp` now drops the dead generic - `src/platform_legacy/legacy_platform_services.cpp` now drops the dead generic

View File

@@ -78,6 +78,11 @@ Completed, blocked, and superseded task history moved to
the queue is now ordered by code movement instead. the queue is now ordered by code movement instead.
Current slice: Current slice:
- `src/platform_windows/windows_runtime_shell.cpp` no longer stores a second
retained `App*` alongside `App::I`.
- `src/platform_windows/windows_window_shell.*` plus
`src/platform_windows/windows_platform_services.cpp` now separate Win32 VR
state from the generic retained input-state bundle.
- `src/platform_legacy/legacy_platform_state.*` no longer keeps the dead - `src/platform_legacy/legacy_platform_state.*` no longer keeps the dead
generic storage-path singleton for the current platform matrix. generic storage-path singleton for the current platform matrix.
- `src/platform_legacy/legacy_platform_services.cpp` now returns only - `src/platform_legacy/legacy_platform_services.cpp` now returns only

View File

@@ -106,7 +106,7 @@ namespace pp::platform::windows {
VrShellState& platform_vr_state() noexcept VrShellState& platform_vr_state() noexcept
{ {
return retained_state().vr; return retained_vr_shell_state();
} }
} }

View File

@@ -24,7 +24,6 @@ struct RetainedMainWindowSessionState final {
struct RetainedWindowsRuntimeState final { struct RetainedWindowsRuntimeState final {
std::unique_ptr<App> owned_app; std::unique_ptr<App> owned_app;
App* app = nullptr;
WacomTablet tablet; WacomTablet tablet;
}; };
@@ -131,20 +130,18 @@ void shutdown_main_window_runtime(const MainWindowStartupState& startup, HINSTAN
void bind_app(App* app) noexcept void bind_app(App* app) noexcept
{ {
retained_runtime_state().app = app;
App::I = app; App::I = app;
} }
App* bound_app() noexcept App* bound_app() noexcept
{ {
return retained_runtime_state().app; return App::I;
} }
void release_bound_app() noexcept void release_bound_app() noexcept
{ {
auto& state = retained_runtime_state();
bind_app(nullptr); bind_app(nullptr);
state.owned_app.reset(); retained_runtime_state().owned_app.reset();
} }
WacomTablet* bound_wacom_tablet() noexcept WacomTablet* bound_wacom_tablet() noexcept

View File

@@ -39,11 +39,6 @@ namespace {
return retained_state().vkey_map; return retained_state().vkey_map;
} }
[[nodiscard]] pp::platform::windows::VrShellState& retained_vr_shell_state()
{
return retained_state().vr;
}
void synchronize_app_key_state_from_keyboard(App& app) void synchronize_app_key_state_from_keyboard(App& app)
{ {
static BYTE keys[256]; static BYTE keys[256];
@@ -98,6 +93,12 @@ RetainedState& retained_state()
return state; return state;
} }
pp::platform::windows::VrShellState& pp::platform::windows::retained_vr_shell_state() noexcept
{
static pp::platform::windows::VrShellState state;
return state;
}
LRESULT CALLBACK main_window_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) LRESULT CALLBACK main_window_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
{ {
auto* app = bound_app(); auto* app = bound_app();

View File

@@ -10,13 +10,13 @@ struct RetainedState
{ {
bool keys[256]{}; bool keys[256]{};
std::map<kKey, int> vkey_map; std::map<kKey, int> vkey_map;
pp::platform::windows::VrShellState vr;
}; };
namespace pp::platform::windows { namespace pp::platform::windows {
void initialize_retained_input_state(); void initialize_retained_input_state();
RetainedState& retained_state(); RetainedState& retained_state();
pp::platform::windows::VrShellState& retained_vr_shell_state() noexcept;
LRESULT CALLBACK main_window_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp); LRESULT CALLBACK main_window_proc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp);
} }