sdl2-compat: Add SDL_GetDisplayDPI

From 6d19b02520588ed613ee47d3216b35068b2498f0 Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Thu, 9 Feb 2023 09:25:44 +0100
Subject: [PATCH] Add SDL_GetDisplayDPI

---
 src/sdl2_compat.c | 24 ++++++++++++++++++++++--
 src/sdl3_syms.h   |  1 -
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/sdl2_compat.c b/src/sdl2_compat.c
index e3e843d..1a9f8a7 100644
--- a/src/sdl2_compat.c
+++ b/src/sdl2_compat.c
@@ -3539,8 +3539,28 @@ SDL_GetNumDisplayModes(int displayIndex)
 DECLSPEC int SDLCALL
 SDL_GetDisplayDPI(int displayIndex, float *ddpi, float *hdpi, float *vdpi)
 {
-    SDL_DisplayID displayID = Display_IndexToID(displayIndex);
-    return SDL3_GetDisplayPhysicalDPI(displayID, ddpi, hdpi, vdpi);
+    const SDL_DisplayMode *dp = SDL3_GetDesktopDisplayMode(Display_IndexToID(displayIndex));
+    float val;
+    if (dp == NULL) {
+        return -1;
+    }
+
+#if defined(__ANDROID__) || defined(__IOS__)
+    val = dp->display_scale * 160.0f;
+#else
+    val = dp->display_scale * 96.0f;
+#endif
+
+    if (hdpi) {
+        *hdpi = val;
+    }
+    if (vdpi) {
+        *vdpi = val;
+    }
+    if (ddpi) {
+        *ddpi = val;
+    }
+    return 0;
 }
 
 DECLSPEC int SDLCALL
diff --git a/src/sdl3_syms.h b/src/sdl3_syms.h
index 0e466ed..a20aa4f 100644
--- a/src/sdl3_syms.h
+++ b/src/sdl3_syms.h
@@ -561,7 +561,6 @@ SDL3_SYM_PASSTHROUGH(SDL_Window*,GetGrabbedWindow,(void),(),return)
 #if defined(__WIN32__) || defined(__GDK__)
 SDL3_SYM_PASSTHROUGH(void,SetWindowsMessageHook,(SDL_WindowsMessageHook a, void *b),(a,b),)
 #endif
-SDL3_SYM(int,GetDisplayPhysicalDPI,(SDL_DisplayID, float *b, float *c, float *d),(a,b,c,d),return)
 SDL3_SYM_RENAMED(SDL_JoystickPowerLevel,JoystickCurrentPowerLevel,GetJoystickPowerLevel,(SDL_Joystick *a),(a),return)
 SDL3_SYM_RENAMED(SDL_GameController*,GameControllerFromInstanceID,GetGamepadFromInstanceID,(SDL_JoystickID a),(a),return)
 SDL3_SYM_RENAMED(SDL_Joystick*,JoystickFromInstanceID,GetJoystickFromInstanceID,(SDL_JoystickID a),(a),return)