diff --git a/Scripts/generate-sdl3-shim.sh b/Scripts/generate-sdl3-shim.sh new file mode 100755 index 0000000..7083304 --- /dev/null +++ b/Scripts/generate-sdl3-shim.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +cd "$(dirname "${0}")/.." + +echo "#pragma once" +echo "" +echo "#include " +echo "" +grep -r 'UINT64_C' Frameworks/SDL3.xcframework/macos-arm64_x86_64/SDL3.framework/Versions/A/Headers | awk -F ':' '{print $2}' | grep -F '#define' | grep "UINT64_C(0x" | while read -r LINE +do + MACRO_NAME="$(echo "${LINE}" | awk '{print $2}')" + ACTUAL_STUFF="$(echo "${LINE}" | awk -F 'SDL_UINT64_C\\(' '{print $2}' | sed 's/)/UL/')" + echo "#undef ${MACRO_NAME}" + echo "#define ${MACRO_NAME} ${ACTUAL_STUFF}" +done diff --git a/Sources/SDLSwift/shim.h b/Sources/SDLSwift/shim.h index 3771e11..d2e0a6f 100644 --- a/Sources/SDLSwift/shim.h +++ b/Sources/SDLSwift/shim.h @@ -1,3 +1,56 @@ #pragma once #include + +#undef SDL_MAX_UINT64 +#define SDL_MAX_UINT64 0xFFFFFFFFFFFFFFFFUL /* 18446744073709551615 */ +#undef SDL_MIN_UINT64 +#define SDL_MIN_UINT64 0x0000000000000000UL /* 0 */ +#undef SDL_WINDOW_FULLSCREEN +#define SDL_WINDOW_FULLSCREEN 0x0000000000000001UL /**< window is in fullscreen mode */ +#undef SDL_WINDOW_OPENGL +#define SDL_WINDOW_OPENGL 0x0000000000000002UL /**< window usable with OpenGL context */ +#undef SDL_WINDOW_OCCLUDED +#define SDL_WINDOW_OCCLUDED 0x0000000000000004UL /**< window is occluded */ +#undef SDL_WINDOW_HIDDEN +#define SDL_WINDOW_HIDDEN 0x0000000000000008UL /**< window is neither mapped onto the desktop nor shown in the taskbar/dock/window list; SDL_ShowWindow() is required for it to become visible */ +#undef SDL_WINDOW_BORDERLESS +#define SDL_WINDOW_BORDERLESS 0x0000000000000010UL /**< no window decoration */ +#undef SDL_WINDOW_RESIZABLE +#define SDL_WINDOW_RESIZABLE 0x0000000000000020UL /**< window can be resized */ +#undef SDL_WINDOW_MINIMIZED +#define SDL_WINDOW_MINIMIZED 0x0000000000000040UL /**< window is minimized */ +#undef SDL_WINDOW_MAXIMIZED +#define SDL_WINDOW_MAXIMIZED 0x0000000000000080UL /**< window is maximized */ +#undef SDL_WINDOW_MOUSE_GRABBED +#define SDL_WINDOW_MOUSE_GRABBED 0x0000000000000100UL /**< window has grabbed mouse input */ +#undef SDL_WINDOW_INPUT_FOCUS +#define SDL_WINDOW_INPUT_FOCUS 0x0000000000000200UL /**< window has input focus */ +#undef SDL_WINDOW_MOUSE_FOCUS +#define SDL_WINDOW_MOUSE_FOCUS 0x0000000000000400UL /**< window has mouse focus */ +#undef SDL_WINDOW_EXTERNAL +#define SDL_WINDOW_EXTERNAL 0x0000000000000800UL /**< window not created by SDL */ +#undef SDL_WINDOW_MODAL +#define SDL_WINDOW_MODAL 0x0000000000001000UL /**< window is modal */ +#undef SDL_WINDOW_HIGH_PIXEL_DENSITY +#define SDL_WINDOW_HIGH_PIXEL_DENSITY 0x0000000000002000UL /**< window uses high pixel density back buffer if possible */ +#undef SDL_WINDOW_MOUSE_CAPTURE +#define SDL_WINDOW_MOUSE_CAPTURE 0x0000000000004000UL /**< window has mouse captured (unrelated to MOUSE_GRABBED) */ +#undef SDL_WINDOW_ALWAYS_ON_TOP +#define SDL_WINDOW_ALWAYS_ON_TOP 0x0000000000008000UL /**< window should always be above others */ +#undef SDL_WINDOW_UTILITY +#define SDL_WINDOW_UTILITY 0x0000000000020000UL /**< window should be treated as a utility window, not showing in the task bar and window list */ +#undef SDL_WINDOW_TOOLTIP +#define SDL_WINDOW_TOOLTIP 0x0000000000040000UL /**< window should be treated as a tooltip and does not get mouse or keyboard focus, requires a parent window */ +#undef SDL_WINDOW_POPUP_MENU +#define SDL_WINDOW_POPUP_MENU 0x0000000000080000UL /**< window should be treated as a popup menu, requires a parent window */ +#undef SDL_WINDOW_KEYBOARD_GRABBED +#define SDL_WINDOW_KEYBOARD_GRABBED 0x0000000000100000UL /**< window has grabbed keyboard input */ +#undef SDL_WINDOW_VULKAN +#define SDL_WINDOW_VULKAN 0x0000000010000000UL /**< window usable for Vulkan surface */ +#undef SDL_WINDOW_METAL +#define SDL_WINDOW_METAL 0x0000000020000000UL /**< window usable for Metal view */ +#undef SDL_WINDOW_TRANSPARENT +#define SDL_WINDOW_TRANSPARENT 0x0000000040000000UL /**< window with transparent buffer */ +#undef SDL_WINDOW_NOT_FOCUSABLE +#define SDL_WINDOW_NOT_FOCUSABLE 0x0000000080000000UL /**< window should not be focusable */