Added SDL_HINT_X11_XCB_LIBRARY

This commit is contained in:
Sam Lantinga 2024-08-03 09:54:06 -07:00
parent 175f28f59f
commit 997df06320
2 changed files with 13 additions and 2 deletions

View File

@ -3862,6 +3862,17 @@ extern "C" {
*/
#define SDL_HINT_X11_WINDOW_TYPE "SDL_X11_WINDOW_TYPE"
/**
* Specify the XCB library to load for the X11 driver.
*
* This defaults to "libX11-xcb.so"
*
* This hint should be set before initializing the video subsystem.
*
* \since This hint is available since SDL 3.0.0.
*/
#define SDL_HINT_X11_XCB_LIBRARY "SDL_X11_XCB_LIBRARY"
/**
* A variable controlling whether XInput should be used for controller
* handling.

View File

@ -107,8 +107,8 @@ int X11_Vulkan_LoadLibrary(SDL_VideoDevice *_this, const char *path)
SDL_SetError("Installed Vulkan doesn't implement either the " VK_KHR_XCB_SURFACE_EXTENSION_NAME "extension or the " VK_KHR_XLIB_SURFACE_EXTENSION_NAME " extension");
goto fail;
} else {
const char *libX11XCBLibraryName = SDL_getenv("SDL_X11_XCB_LIBRARY");
if (!libX11XCBLibraryName) {
const char *libX11XCBLibraryName = SDL_GetHint(SDL_HINT_X11_XCB_LIBRARY);
if (!libX11XCBLibraryName || !*libX11XCBLibraryName) {
libX11XCBLibraryName = "libX11-xcb.so";
}
videoData->vulkan_xlib_xcb_library = SDL_LoadObject(libX11XCBLibraryName);