Fix Font name conflict (#6094)

This commit is contained in:
Alexandre Almeida 2026-08-26 13:38:45 -03:00 • committed by GitHub
commit b7d7e70ac5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -56,12 +56,13 @@
#include "SDL3/SDL.h" #include "SDL3/SDL.h"
#elif defined(USING_SDL2_PROJECT) #elif defined(USING_SDL2_PROJECT)
#include "SDL2/SDL.h" #include "SDL2/SDL.h"
#if !defined(__linux__)
// WARNING: On Linux this header includes Xlib.h that defines Font and // WARNING: On Linux, this header includes Xlib.h, which defines Font
// conflicts with raylib Font, as it is only used on GetWindowHandle() and // To prevent a conflict with raylib's own Font type, we temporarily
// most users do not need that function, just commenting for that case // rename it to FontX11
#include "SDL2/SDL_syswm.h" // Required to get window handlers #define Font FontX11
#endif #include "SDL2/SDL_syswm.h" // Required to get window handlers
#undef Font
#else #else
#include "SDL.h" #include "SDL.h"
#endif #endif
@ -960,17 +961,13 @@ void *GetWindowHandle(void)
#elif defined(__APPLE__) #elif defined(__APPLE__)
handle = (void *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, NULL); // Type: NSWindow* handle = (void *)SDL_GetPointerProperty(props, SDL_PROP_WINDOW_COCOA_WINDOW_POINTER, NULL); // Type: NSWindow*
#endif #endif
#elif defined(USING_SDL2_PROJECT) && !defined(__linux__) #elif defined(USING_SDL2_PROJECT)
// WARNING: On linux the inclusion of SDL_syswm.h also includes Xlib.h and
// generates a symbol conflict with raylib due to Font, as this function is not
// required by most users, just avoiding that use case
SDL_SysWMinfo wmInfo = { 0 }; SDL_SysWMinfo wmInfo = { 0 };
SDL_VERSION(&wmInfo.version); SDL_VERSION(&wmInfo.version);
if (SDL_GetWindowWMInfo(platform.window, &wmInfo)) if (SDL_GetWindowWMInfo(platform.window, &wmInfo))
{ {
#if defined(_WIN32) #if defined(_WIN32)
handle = (void *)wmInfo.info.win.window; // Type: HWND handle = (void *)wmInfo.info.win.window; // Type: HWND
/*
#elif defined(__linux__) #elif defined(__linux__)
if (wmInfo.subsystem == SDL_SYSWM_X11) if (wmInfo.subsystem == SDL_SYSWM_X11)
{ {
@ -984,7 +981,6 @@ void *GetWindowHandle(void)
// NOTE: Alternative: wmInfo.info.wl.display // NOTE: Alternative: wmInfo.info.wl.display
handle = (void *)wmInfo.info.wl.surface; // Type: struct wl_surface* handle = (void *)wmInfo.info.wl.surface; // Type: struct wl_surface*
} }
*/
#elif defined(__APPLE__) #elif defined(__APPLE__)
handle = (void *)wmInfo.info.cocoa.window; // Type: NSWindow* handle = (void *)wmInfo.info.cocoa.window; // Type: NSWindow*
#endif #endif