Skip to content

Commit

Permalink
Implement Windows GetAbsoluteMouseState().
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Jun 11, 2014
1 parent c8c55a0 commit 4676705
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/video/windows/SDL_windowsmouse.c
Expand Up @@ -260,6 +260,24 @@ WIN_CaptureMouse(SDL_Window *window)
return ToggleRawInput(window != NULL);
}

static Uint32
WIN_GetAbsoluteMouseState(int *x, int *y)
{
Uint32 retval = 0;
POINT pt = { 0, 0 };
GetCursorPos(&pt);
*x = (int) pt.x;
*y = (int) pt.y;

retval |= GetAsyncKeyState(VK_LBUTTON) & 0x8000 ? SDL_BUTTON_LMASK : 0;
retval |= GetAsyncKeyState(VK_RBUTTON) & 0x8000 ? SDL_BUTTON_RMASK : 0;
retval |= GetAsyncKeyState(VK_MBUTTON) & 0x8000 ? SDL_BUTTON_MMASK : 0;
retval |= GetAsyncKeyState(VK_X1BUTTON) & 0x8000 ? SDL_BUTTON_X1MASK : 0;
retval |= GetAsyncKeyState(VK_X2BUTTON) & 0x8000 ? SDL_BUTTON_X2MASK : 0;

return retval;
}

void
WIN_InitMouse(_THIS)
{
Expand All @@ -272,6 +290,7 @@ WIN_InitMouse(_THIS)
mouse->WarpMouse = WIN_WarpMouse;
mouse->SetRelativeMouseMode = WIN_SetRelativeMouseMode;
mouse->CaptureMouse = WIN_CaptureMouse;
mouse->GetAbsoluteMouseState = WIN_GetAbsoluteMouseState;

SDL_SetDefaultCursor(WIN_CreateDefaultCursor());

Expand Down

0 comments on commit 4676705

Please sign in to comment.