From 4bfc8f84f7b867180590dd858e7feda38cda712f Mon Sep 17 00:00:00 2001
From: Frank Praznik <[EMAIL REDACTED]>
Date: Thu, 19 Dec 2024 13:35:20 -0500
Subject: [PATCH] tests: Add a raw event mode to testrelative
Add a code path to test raw motion events (activated by '--raw').
---
test/testrelative.c | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/test/testrelative.c b/test/testrelative.c
index a0e4b7b828da8..d2d4ea234495d 100644
--- a/test/testrelative.c
+++ b/test/testrelative.c
@@ -25,6 +25,7 @@ static int i, done;
static SDL_FRect rect;
static SDL_Event event;
static bool warp;
+static bool raw;
static void DrawRects(SDL_Renderer *renderer)
{
@@ -88,13 +89,20 @@ static void loop(void)
break;
case SDL_EVENT_MOUSE_MOTION:
{
- rect.x += event.motion.xrel;
- rect.y += event.motion.yrel;
+ if (!raw) {
+ rect.x += event.motion.xrel;
+ rect.y += event.motion.yrel;
- if (warp) {
- CenterMouse();
+ if (warp) {
+ CenterMouse();
+ }
}
} break;
+ case SDL_EVENT_MOUSE_RAW_MOTION:
+ {
+ rect.x += event.maxis.dx / event.maxis.ux;
+ rect.y += event.maxis.dy / event.maxis.uy;
+ } break;
default:
break;
}
@@ -154,12 +162,16 @@ int main(int argc, char *argv[])
if (SDL_strcasecmp(argv[i], "--warp") == 0) {
warp = true;
consumed = 1;
+ } else if (SDL_strcasecmp(argv[i], "--raw") == 0) {
+ raw = true;
+ consumed = 1;
}
}
if (consumed < 0) {
static const char *options[] = {
"[--warp]",
+ "[--raw]",
NULL
};
SDLTest_CommonLogUsage(state, argv[0], options);
@@ -195,6 +207,10 @@ int main(int argc, char *argv[])
}
}
+ if (raw) {
+ SDL_SetEventEnabled(SDL_EVENT_MOUSE_RAW_MOTION, true);
+ }
+
rect.x = DEFAULT_WINDOW_WIDTH / 2;
rect.y = DEFAULT_WINDOW_HEIGHT / 2;
rect.w = 10;