sdl12-compat: video: Support SDL_ANYFORMAT.

From ffd1c00d9d19577c5b8723787e9ee18eceac8152 Mon Sep 17 00:00:00 2001
From: "Ryan C. Gordon" <[EMAIL REDACTED]>
Date: Fri, 19 Aug 2022 15:15:35 -0400
Subject: [PATCH] video: Support SDL_ANYFORMAT.

Reference Issue #143.
---
 src/SDL12_compat.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/SDL12_compat.c b/src/SDL12_compat.c
index f539e603..9a90bf65 100644
--- a/src/SDL12_compat.c
+++ b/src/SDL12_compat.c
@@ -5621,8 +5621,6 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags12)
         }
     }
 
-    FIXME("handle SDL_ANYFORMAT");
-
     if ((width < 0) || (height < 0)) {
         SDL20_SetError("Invalid width or height");
         return NULL;
@@ -5641,9 +5639,19 @@ SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags12)
     }
 
     if (bpp == 0) {
+        flags12 |= SDL12_ANYFORMAT;
         bpp = SDL_BITSPERPIXEL(dmode.format);
     }
 
+    if ((bpp != 8) && (bpp != 16) && (bpp != 24) && (bpp != 32)) {
+        if (flags12 & SDL12_ANYFORMAT) {
+            bpp = 32;
+        } else {
+            SDL20_SetError("Unsupported bits-per-pixel");
+            return NULL;
+        }
+    }
+
     #if !SDL_VERSION_ATLEAST(2,0,14)
     #define SDL_PIXELFORMAT_XRGB8888 SDL_PIXELFORMAT_RGB888
     #endif