Use eventthread keystates instead of SDL_GetKeyboardState

This commit is contained in:
Inori 2019-08-22 21:33:33 -04:00 committed by Inori
parent 606975b505
commit d0b377e41f
3 changed files with 5 additions and 7 deletions

View file

@ -64,8 +64,8 @@ MiniFFI_GetFunctionHandle(void *libhandle, const char *func)
CAPTURE(LoadLibrary); CAPTURE(LoadLibrary);
CAPTURE(FreeLibrary); CAPTURE(FreeLibrary);
#endif #endif
if (!libhandle) return 0;
#endif #endif
if (!libhandle) return 0;
return SDL_LoadFunction(libhandle, func); return SDL_LoadFunction(libhandle, func);
} }

View file

@ -240,7 +240,7 @@ MKXP_FindWindowEx(HWND hWnd,
return wm.info.win.window; return wm.info.win.window;
} }
#else #else
NOP_VAL(DUMMY_VAL) NOP_VAL((HWND)DUMMY_VAL)
#endif #endif
PREFABI DWORD PREFABI DWORD
@ -340,7 +340,7 @@ MKXP_GetKeyboardState(PBYTE lpKeyState)
bool rc = GetKeyboardState(lpKeyState); bool rc = GetKeyboardState(lpKeyState);
if (rc) if (rc)
{ {
const char *sdlkeystate = (const char*)SDL_GetKeyboardState(0); const char *sdlkeystate = shState->eThread().keystates
lpKeyState[VK_LSHIFT] = sdlkeystate[SDL_SCANCODE_LSHIFT] << 7; lpKeyState[VK_LSHIFT] = sdlkeystate[SDL_SCANCODE_LSHIFT] << 7;
lpKeyState[VK_RSHIFT] = sdlkeystate[SDL_SCANCODE_RSHIFT] << 7; lpKeyState[VK_RSHIFT] = sdlkeystate[SDL_SCANCODE_RSHIFT] << 7;
lpKeyState[VK_SHIFT] = (lpKeyState[VK_LSHIFT] || lpKeyState[VK_RSHIFT]) ? 0x80 : 0; lpKeyState[VK_SHIFT] = (lpKeyState[VK_LSHIFT] || lpKeyState[VK_RSHIFT]) ? 0x80 : 0;

View file

@ -13,10 +13,8 @@
#define PREFABI #define PREFABI
#endif #endif
#ifndef __WIN32__ #ifndef __WIN32__
typedef unsigned int HWND, DWORD, UINT, *LPDWORD; typedef unsigned int DWORD, UINT, *LPDWORD;
typedef char *LPCSTR, *PBYTE; typedef char *LPCSTR, *PBYTE;
typedef int LONG; typedef int LONG;
typedef bool BOOL; typedef bool BOOL;
@ -30,7 +28,7 @@ typedef struct {
LONG right; LONG right;
LONG bottom; LONG bottom;
} RECT, *PRECT, *NPRECT, *LPRECT; } RECT, *PRECT, *NPRECT, *LPRECT;
typedef void VOID, *LPVOID, *HANDLE, *HMODULE; typedef void VOID, *LPVOID, *HANDLE, *HMODULE, *HWND;
typedef size_t SIZE_T; typedef size_t SIZE_T;
extern std::map<int, int> vKeyToScancode; extern std::map<int, int> vKeyToScancode;