TSDL_MouseMotionEvent = record
type_: UInt8; // SDL_MOUSEMOTION
which: UInt8; // The mouse device index
state: UInt8; // The current button state
x, y: UInt16; // The X/Y coordinates of the mouse
xrel: Sint16; // The relative motion in the X direction
yrel: Sint16; // The relative motion in the Y direction
end;
TSDL_MouseMotionEvent is a member of the TSDL_Event union and is used when an event of type SDL_MOUSEMOTION is reported.
Simply put, a SDL_MOUSEMOTION type event occurs when a user moves the mouse within the application window or when SDL_WarpMouse is called. Both the absolute ( x and y) and relative ( xrel and yrel) coordinates are reported along with the current button states ( state). The button state can be interpreted using the SDL_BUTTON macro (see SDL_GetMouseState).
If the cursor is hidden ( SDL_ShowCursor(0)) and the input is grabbed ( SDL_WM_GrabInput(SDL_GRAB_ON)), then the mouse will give relative motion events even when the cursor reaches the edge fo the screen. This is currently only implemented on Windows and Linux/Unix-a-likes.