passage/minorGems/ui/SetMouseWin32.cpp
2025-10-03 02:19:59 -04:00

50 lines
No EOL
868 B
C++

// Jason Rohrer
// SetMouseWin32.cpp
/**
*
* implementation of SetMouse on Win32
* This uses an "official" os feature (unlike the hacked mac version
*
* Created 1-16-2000
* Mods:
* Jason Rohrer 1-18-2000 Added conversion from client to screen coords.
* GLUT tracks mouse motion relative to window
* Windows can only set the cursor position using
* screen coordinates.
*/
#include <winuser.h>
#include "SetMouse.h"
char captured = false;
void SetMouse( int x, int y ) {
POINT p;
p.x = x;
p.y = y;
HWND window = GetActiveWindow();
ClientToScreen( window, &p );
SetCursorPos( p.x, p.y );
//SetCursorPos( x, y );
}
// send all mouse movements to our window, even those outside the border
void CaptureMouse() {
HWND window = GetActiveWindow();
SetCapture( window );
}
void ReleaseMouse() {
ReleaseCapture();
}