From 27744952d12913913bf18450bed04e863fe6ec4a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 5 Dec 2025 08:46:58 -0800
Subject: [PATCH] testyuv: respect the --renderer parameter with --all
Also fixed a memory leak at shutdown
---
test/testyuv.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/test/testyuv.c b/test/testyuv.c
index 14af3aa5d8619..8c8f3346d8dbb 100644
--- a/test/testyuv.c
+++ b/test/testyuv.c
@@ -581,7 +581,7 @@ static bool run_single_format_test(SDL_Renderer *renderer, SDL_Surface *original
return result;
}
-static bool run_all_format_test(SDL_Window *window, SDL_Surface *original)
+static bool run_all_format_test(SDL_Window *window, const char *requested_renderer, SDL_Surface *original)
{
const SDL_PixelFormat yuv_formats[] = {
SDL_PIXELFORMAT_YV12,
@@ -615,6 +615,10 @@ static bool run_all_format_test(SDL_Window *window, SDL_Surface *original)
for (int i = 0; i < SDL_GetNumRenderDrivers() && !quit; ++i) {
const char *renderer_name = SDL_GetRenderDriver(i);
+ if (requested_renderer && SDL_strcmp(renderer_name, requested_renderer) != 0) {
+ continue;
+ }
+
SDL_Renderer *renderer = SDL_CreateRenderer(window, renderer_name);
if (!renderer) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't create %s renderer: %s", renderer_name, SDL_GetError());
@@ -964,7 +968,7 @@ int main(int argc, char **argv)
}
if (should_test_all_formats) {
- if (!run_all_format_test(window, original)) {
+ if (!run_all_format_test(window, renderer_name, original)) {
result = 5;
}
} else {
@@ -974,6 +978,7 @@ int main(int argc, char **argv)
}
done:
+ SDL_free(filename);
SDL_DestroySurface(original);
SDL_DestroyWindow(window);
SDL_Quit();