wayland: Check that all required dynamic symbols have been successfully resolved at init time

Ensure that all hard dependencies are resolved when dynamically loading the libraries required for the Wayland backend and fail gracefully if a required module was not initialized successfully.
This commit is contained in:
Frank Praznik 2023-01-29 12:45:48 -05:00 committed by Sam Lantinga
parent 90795291e4
commit e22f5ed7d3

View file

@ -152,8 +152,11 @@ int SDL_WAYLAND_LoadSymbols(void)
#define SDL_WAYLAND_INTERFACE(iface) WAYLAND_##iface = (struct wl_interface *)WAYLAND_GetSym(#iface, thismod, SDL_TRUE);
#include "SDL_waylandsym.h"
if (SDL_WAYLAND_HAVE_WAYLAND_CLIENT) {
/* all required symbols loaded. */
if (SDL_WAYLAND_HAVE_WAYLAND_CLIENT &&
SDL_WAYLAND_HAVE_WAYLAND_CURSOR &&
SDL_WAYLAND_HAVE_WAYLAND_EGL &&
SDL_WAYLAND_HAVE_WAYLAND_XKB) {
/* All required symbols loaded, only libdecor is optional. */
SDL_ClearError();
} else {
/* in case something got loaded... */