From 4bfc8f84f7b867180590dd858e7feda38cda712f Mon Sep 17 00:00:00 2001 From: Frank Praznik 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 a0e4b7b828..d2d4ea2344 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;