Inject GLFW shell and move Win32 key map

This commit is contained in:
2026-06-17 10:53:51 +02:00
parent 59a9074109
commit 0a7961d8b3
10 changed files with 95 additions and 60 deletions

View File

@@ -3,6 +3,7 @@
#include "platform_windows/windows_lifecycle_shell.h"
#include "platform_windows/windows_platform_services.h"
#include "platform_windows/windows_runtime_shell.h"
#include "keymap.h"
#include "platform_windows/windows_stylus_input.h"
#include "platform_windows/windows_window_shell.h"
@@ -104,6 +105,36 @@ void win32_save_window_state()
namespace pp::platform::windows {
[[nodiscard]] std::map<kKey, int>& retained_virtual_key_map()
{
static std::map<kKey, int> vkey_map;
return vkey_map;
}
void initialize_retained_input_state()
{
auto& vkey_map = retained_virtual_key_map();
for (int k = 1; k < 256; ++k) // ignore kKey::Unknown = 0
{
for (int vk = 0; vk < 256; ++vk)
{
if (k != (int)convert_key(vk))
continue;
auto key = (kKey)k;
if (vkey_map.find(key) == vkey_map.end())
{
vkey_map.insert({ key, vk });
}
else
{
LOG("KEY MAP COLLISION %d and %d maps to %d",
vk, vkey_map[key], k);
}
}
}
}
VrShellState& platform_vr_state() noexcept
{
return retained_vr_shell_state();