SDL: Merge commit '0da24479da05f5410a8583efce7194c074f0522d' into main

https://github.com/libsdl-org/SDL/commit/d3d14ff61dc44b9e515d42eebb4df13e37335821

From 0da24479da05f5410a8583efce7194c074f0522d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Thu, 12 Jan 2023 15:51:52 -0800
Subject: [PATCH] Fixed building Vivante video driver

---
 src/video/vivante/SDL_vivantevideo.c | 41 ++++++++++++----------------
 1 file changed, 17 insertions(+), 24 deletions(-)

diff --git a/src/video/vivante/SDL_vivantevideo.c b/src/video/vivante/SDL_vivantevideo.c
index 81ab247085b5..9178d55cde75 100644
--- a/src/video/vivante/SDL_vivantevideo.c
+++ b/src/video/vivante/SDL_vivantevideo.c
@@ -184,20 +184,20 @@ int VIVANTE_VideoInit(_THIS)
             return -1;
         }
     }
-#define LOAD_FUNC(NAME)                                               \
-    videodata->NAME = SDL_LoadFunction(videodata->egl_handle, #NAME); \
-    if (!videodata->NAME)                                             \
+#define LOAD_FUNC(TYPE, NAME)                                               \
+    videodata->NAME = (TYPE)SDL_LoadFunction(videodata->egl_handle, #NAME); \
+    if (!videodata->NAME)                                                   \
         return -1;
 
-    LOAD_FUNC(fbGetDisplay);
-    LOAD_FUNC(fbGetDisplayByIndex);
-    LOAD_FUNC(fbGetDisplayGeometry);
-    LOAD_FUNC(fbGetDisplayInfo);
-    LOAD_FUNC(fbDestroyDisplay);
-    LOAD_FUNC(fbCreateWindow);
-    LOAD_FUNC(fbGetWindowGeometry);
-    LOAD_FUNC(fbGetWindowInfo);
-    LOAD_FUNC(fbDestroyWindow);
+    LOAD_FUNC(EGLNativeDisplayType (EGLAPIENTRY *)(void *), fbGetDisplay);
+    LOAD_FUNC(EGLNativeDisplayType (EGLAPIENTRY *)(int), fbGetDisplayByIndex);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeDisplayType, int *, int *), fbGetDisplayGeometry);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeDisplayType, int *, int *, unsigned long *, int *, int *), fbGetDisplayInfo);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeDisplayType), fbDestroyDisplay);
+    LOAD_FUNC(EGLNativeWindowType (EGLAPIENTRY *)(EGLNativeDisplayType, int, int, int, int), fbCreateWindow);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeWindowType, int *, int *, int *, int *), fbGetWindowGeometry);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeWindowType, int *, int *, int *, int *, int *, unsigned int *), fbGetWindowInfo);
+    LOAD_FUNC(void (EGLAPIENTRY *)(EGLNativeWindowType), fbDestroyWindow);
 #endif
 
     if (VIVANTE_SetupPlatform(_this) < 0) {
@@ -359,22 +359,15 @@ void VIVANTE_HideWindow(_THIS, SDL_Window *window)
 /*****************************************************************************/
 /* SDL Window Manager function                                               */
 /*****************************************************************************/
-SDL_bool
-VIVANTE_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
+int VIVANTE_GetWindowWMInfo(_THIS, SDL_Window *window, struct SDL_SysWMinfo *info)
 {
     SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
     SDL_DisplayData *displaydata = SDL_GetDisplayDriverData(0);
 
-    if (info->version.major == SDL_MAJOR_VERSION) {
-        info->subsystem = SDL_SYSWM_VIVANTE;
-        info->info.vivante.display = displaydata->native_display;
-        info->info.vivante.window = data->native_window;
-        return SDL_TRUE;
-    } else {
-        SDL_SetError("Application not compiled with SDL %d",
-                     SDL_MAJOR_VERSION);
-        return SDL_FALSE;
-    }
+    info->subsystem = SDL_SYSWM_VIVANTE;
+    info->info.vivante.display = displaydata->native_display;
+    info->info.vivante.window = data->native_window;
+    return 0;
 }
 
 /*****************************************************************************/