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(FreeLibrary);
#endif
if (!libhandle) return 0;
#endif
if (!libhandle) return 0;
return SDL_LoadFunction(libhandle, func);
}

View file

@ -240,7 +240,7 @@ MKXP_FindWindowEx(HWND hWnd,
return wm.info.win.window;
}
#else
NOP_VAL(DUMMY_VAL)
NOP_VAL((HWND)DUMMY_VAL)
#endif
PREFABI DWORD
@ -340,7 +340,7 @@ MKXP_GetKeyboardState(PBYTE lpKeyState)
bool rc = GetKeyboardState(lpKeyState);
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_RSHIFT] = sdlkeystate[SDL_SCANCODE_RSHIFT] << 7;
lpKeyState[VK_SHIFT] = (lpKeyState[VK_LSHIFT] || lpKeyState[VK_RSHIFT]) ? 0x80 : 0;

View file

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