diff --git a/src/she/skia/she.cpp b/src/she/skia/she.cpp index cb5480e50..25d439766 100644 --- a/src/she/skia/she.cpp +++ b/src/she/skia/she.cpp @@ -34,11 +34,12 @@ void error_message(const char* msg) // TODO } +#ifndef _WIN32 bool is_key_pressed(KeyScancode scancode) { - // TODO - return false; + return false; // Do nothing } +#endif void clear_keyboard_buffer() { diff --git a/src/she/win/vk.cpp b/src/she/win/vk.cpp index a4bffbc63..b624202a1 100644 --- a/src/she/win/vk.cpp +++ b/src/she/win/vk.cpp @@ -294,4 +294,34 @@ KeyScancode win32vk_to_scancode(int vk) { return keymap[vk]; } +static int scancode_to_win32vk(KeyScancode scancode) { + static int initialized = false; + static int keymap[kKeyScancodes]; + + if (!initialized) { + initialized = true; + for (int i=0; i kKeyScancodes) + scancode = kKeyNil; + + return keymap[scancode]; +} + +bool is_key_pressed(KeyScancode scancode) +{ + int vk = scancode_to_win32vk(scancode); + if (vk) + return (GetKeyState(vk) & 0xf000 ? true: false); + else + return false; +} + } // namespace she