Merge pull request #172 from Susko3/remove-some-platform-specific-defines

Update bindings and remove some platform/windows specific symbols
This commit is contained in:
Dan Balasescu 2024-10-24 15:45:24 +09:00 committed by GitHub
commit 36c251aed2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 124 additions and 108 deletions

2
External/SDL vendored

@ -1 +1 @@
Subproject commit 92520c1d9bffedcd558e8076691bc348285320df
Subproject commit d0cf2c19d1a3aa59b50198634da6854ef597de88

View File

@ -139,6 +139,7 @@ namespace SDL
SDL_EVENT_CAMERA_DEVICE_DENIED,
SDL_EVENT_RENDER_TARGETS_RESET = 0x2000,
SDL_EVENT_RENDER_DEVICE_RESET,
SDL_EVENT_RENDER_DEVICE_LOST,
SDL_EVENT_PRIVATE0 = 0x4000,
SDL_EVENT_PRIVATE1,
SDL_EVENT_PRIVATE2,

View File

@ -338,7 +338,7 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_uitoa", ExactSpelling = true)]
[return: NativeTypeName("char *")]
public static extern byte* Unsafe_SDL_uitoa([NativeTypeName("unsigned int")] uint value, [NativeTypeName("char *")] byte* str, int radix);
public static extern byte* Unsafe_SDL_uitoa(uint value, [NativeTypeName("char *")] byte* str, int radix);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_ltoa", ExactSpelling = true)]
[return: NativeTypeName("char *")]
@ -619,33 +619,6 @@ namespace SDL
[return: NativeTypeName("char *")]
public static extern byte* Unsafe_SDL_iconv_string([NativeTypeName("const char *")] byte* tocode, [NativeTypeName("const char *")] byte* fromcode, [NativeTypeName("const char *")] byte* inbuf, [NativeTypeName("size_t")] nuint inbytesleft);
[return: NativeTypeName("bool")]
public static SDLBool SDL_size_mul_check_overflow([NativeTypeName("size_t")] nuint a, [NativeTypeName("size_t")] nuint b, [NativeTypeName("size_t *")] nuint* ret)
{
if (a != 0 && b > 0xffffffffffffffffUL / a)
{
return false;
}
*ret = a * b;
return true;
}
[return: NativeTypeName("bool")]
public static SDLBool SDL_size_add_check_overflow([NativeTypeName("size_t")] nuint a, [NativeTypeName("size_t")] nuint b, [NativeTypeName("size_t *")] nuint* ret)
{
if (b > 0xffffffffffffffffUL - a)
{
return false;
}
*ret = a + b;
return true;
}
[NativeTypeName("#define SDL_SIZE_MAX SIZE_MAX")]
public const ulong SDL_SIZE_MAX = 0xffffffffffffffffUL;
[NativeTypeName("#define SDL_MAX_SINT8 ((Sint8)0x7F)")]
public const sbyte SDL_MAX_SINT8 = ((sbyte)(0x7F));
@ -683,38 +656,26 @@ namespace SDL
public const uint SDL_MIN_UINT32 = ((uint)(0x00000000));
[NativeTypeName("#define SDL_MAX_SINT64 SDL_SINT64_C(0x7FFFFFFFFFFFFFFF)")]
public const long SDL_MAX_SINT64 = (0x7FFFFFFFFFFFFFFFL);
public const long SDL_MAX_SINT64 = 0x7FFFFFFFFFFFFFFFL;
[NativeTypeName("#define SDL_MIN_SINT64 ~SDL_SINT64_C(0x7FFFFFFFFFFFFFFF)")]
public const long SDL_MIN_SINT64 = ~(0x7FFFFFFFFFFFFFFFL);
public const long SDL_MIN_SINT64 = ~0x7FFFFFFFFFFFFFFFL;
[NativeTypeName("#define SDL_MAX_UINT64 SDL_UINT64_C(0xFFFFFFFFFFFFFFFF)")]
public const ulong SDL_MAX_UINT64 = (0xFFFFFFFFFFFFFFFFUL);
public const ulong SDL_MAX_UINT64 = 0xFFFFFFFFFFFFFFFFUL;
[NativeTypeName("#define SDL_MIN_UINT64 SDL_UINT64_C(0x0000000000000000)")]
public const ulong SDL_MIN_UINT64 = (0x0000000000000000UL);
public const ulong SDL_MIN_UINT64 = 0x0000000000000000UL;
[NativeTypeName("#define SDL_MAX_TIME SDL_MAX_SINT64")]
public const long SDL_MAX_TIME = (0x7FFFFFFFFFFFFFFFL);
public const long SDL_MAX_TIME = 0x7FFFFFFFFFFFFFFFL;
[NativeTypeName("#define SDL_MIN_TIME SDL_MIN_SINT64")]
public const long SDL_MIN_TIME = ~(0x7FFFFFFFFFFFFFFFL);
public const long SDL_MIN_TIME = ~0x7FFFFFFFFFFFFFFFL;
[NativeTypeName("#define SDL_FLT_EPSILON 1.1920928955078125e-07F")]
public const float SDL_FLT_EPSILON = 1.1920928955078125e-07F;
[NativeTypeName("#define SDL_PRIs64 \"lld\"")]
public static ReadOnlySpan<byte> SDL_PRIs64 => "lld"u8;
[NativeTypeName("#define SDL_PRIu64 \"llu\"")]
public static ReadOnlySpan<byte> SDL_PRIu64 => "llu"u8;
[NativeTypeName("#define SDL_PRIx64 \"llx\"")]
public static ReadOnlySpan<byte> SDL_PRIx64 => "llx"u8;
[NativeTypeName("#define SDL_PRIX64 \"llX\"")]
public static ReadOnlySpan<byte> SDL_PRIX64 => "llX"u8;
[NativeTypeName("#define SDL_PRIs32 \"d\"")]
public static ReadOnlySpan<byte> SDL_PRIs32 => "d"u8;

View File

@ -79,12 +79,6 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void SDL_CleanupTLS();
[NativeTypeName("#define SDL_BeginThreadFunction NULL")]
public const int SDL_BeginThreadFunction = 0;
[NativeTypeName("#define SDL_EndThreadFunction NULL")]
public const int SDL_EndThreadFunction = 0;
[NativeTypeName("#define SDL_PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER \"SDL.thread.create.entry_function\"")]
public static ReadOnlySpan<byte> SDL_PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER => "SDL.thread.create.entry_function"u8;

View File

@ -84,7 +84,7 @@ namespace SDL
{
}
public enum SDL_GLattr
public enum SDL_GLAttr
{
SDL_GL_RED_SIZE,
SDL_GL_GREEN_SIZE,
@ -116,33 +116,6 @@ namespace SDL
SDL_GL_EGL_PLATFORM,
}
public enum SDL_GLprofile
{
SDL_GL_CONTEXT_PROFILE_CORE = 0x0001,
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002,
SDL_GL_CONTEXT_PROFILE_ES = 0x0004,
}
public enum SDL_GLcontextFlag
{
SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001,
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002,
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004,
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008,
}
public enum SDL_GLcontextReleaseFlag
{
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000,
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001,
}
public enum SDL_GLContextResetNotification
{
SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000,
SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001,
}
public enum SDL_HitTestResult
{
SDL_HITTEST_NORMAL,
@ -511,11 +484,11 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool SDL_GL_SetAttribute(SDL_GLattr attr, int value);
public static extern SDLBool SDL_GL_SetAttribute(SDL_GLAttr attr, int value);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("bool")]
public static extern SDLBool SDL_GL_GetAttribute(SDL_GLattr attr, int* value);
public static extern SDLBool SDL_GL_GetAttribute(SDL_GLAttr attr, int* value);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("SDL_GLContext")]
@ -567,79 +540,79 @@ namespace SDL
public static ReadOnlySpan<byte> SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER => "SDL.video.wayland.wl_display"u8;
[NativeTypeName("#define SDL_WINDOW_FULLSCREEN SDL_UINT64_C(0x0000000000000001)")]
public const ulong SDL_WINDOW_FULLSCREEN = (0x0000000000000001UL);
public const ulong SDL_WINDOW_FULLSCREEN = 0x0000000000000001UL;
[NativeTypeName("#define SDL_WINDOW_OPENGL SDL_UINT64_C(0x0000000000000002)")]
public const ulong SDL_WINDOW_OPENGL = (0x0000000000000002UL);
public const ulong SDL_WINDOW_OPENGL = 0x0000000000000002UL;
[NativeTypeName("#define SDL_WINDOW_OCCLUDED SDL_UINT64_C(0x0000000000000004)")]
public const ulong SDL_WINDOW_OCCLUDED = (0x0000000000000004UL);
public const ulong SDL_WINDOW_OCCLUDED = 0x0000000000000004UL;
[NativeTypeName("#define SDL_WINDOW_HIDDEN SDL_UINT64_C(0x0000000000000008)")]
public const ulong SDL_WINDOW_HIDDEN = (0x0000000000000008UL);
public const ulong SDL_WINDOW_HIDDEN = 0x0000000000000008UL;
[NativeTypeName("#define SDL_WINDOW_BORDERLESS SDL_UINT64_C(0x0000000000000010)")]
public const ulong SDL_WINDOW_BORDERLESS = (0x0000000000000010UL);
public const ulong SDL_WINDOW_BORDERLESS = 0x0000000000000010UL;
[NativeTypeName("#define SDL_WINDOW_RESIZABLE SDL_UINT64_C(0x0000000000000020)")]
public const ulong SDL_WINDOW_RESIZABLE = (0x0000000000000020UL);
public const ulong SDL_WINDOW_RESIZABLE = 0x0000000000000020UL;
[NativeTypeName("#define SDL_WINDOW_MINIMIZED SDL_UINT64_C(0x0000000000000040)")]
public const ulong SDL_WINDOW_MINIMIZED = (0x0000000000000040UL);
public const ulong SDL_WINDOW_MINIMIZED = 0x0000000000000040UL;
[NativeTypeName("#define SDL_WINDOW_MAXIMIZED SDL_UINT64_C(0x0000000000000080)")]
public const ulong SDL_WINDOW_MAXIMIZED = (0x0000000000000080UL);
public const ulong SDL_WINDOW_MAXIMIZED = 0x0000000000000080UL;
[NativeTypeName("#define SDL_WINDOW_MOUSE_GRABBED SDL_UINT64_C(0x0000000000000100)")]
public const ulong SDL_WINDOW_MOUSE_GRABBED = (0x0000000000000100UL);
public const ulong SDL_WINDOW_MOUSE_GRABBED = 0x0000000000000100UL;
[NativeTypeName("#define SDL_WINDOW_INPUT_FOCUS SDL_UINT64_C(0x0000000000000200)")]
public const ulong SDL_WINDOW_INPUT_FOCUS = (0x0000000000000200UL);
public const ulong SDL_WINDOW_INPUT_FOCUS = 0x0000000000000200UL;
[NativeTypeName("#define SDL_WINDOW_MOUSE_FOCUS SDL_UINT64_C(0x0000000000000400)")]
public const ulong SDL_WINDOW_MOUSE_FOCUS = (0x0000000000000400UL);
public const ulong SDL_WINDOW_MOUSE_FOCUS = 0x0000000000000400UL;
[NativeTypeName("#define SDL_WINDOW_EXTERNAL SDL_UINT64_C(0x0000000000000800)")]
public const ulong SDL_WINDOW_EXTERNAL = (0x0000000000000800UL);
public const ulong SDL_WINDOW_EXTERNAL = 0x0000000000000800UL;
[NativeTypeName("#define SDL_WINDOW_MODAL SDL_UINT64_C(0x0000000000001000)")]
public const ulong SDL_WINDOW_MODAL = (0x0000000000001000UL);
public const ulong SDL_WINDOW_MODAL = 0x0000000000001000UL;
[NativeTypeName("#define SDL_WINDOW_HIGH_PIXEL_DENSITY SDL_UINT64_C(0x0000000000002000)")]
public const ulong SDL_WINDOW_HIGH_PIXEL_DENSITY = (0x0000000000002000UL);
public const ulong SDL_WINDOW_HIGH_PIXEL_DENSITY = 0x0000000000002000UL;
[NativeTypeName("#define SDL_WINDOW_MOUSE_CAPTURE SDL_UINT64_C(0x0000000000004000)")]
public const ulong SDL_WINDOW_MOUSE_CAPTURE = (0x0000000000004000UL);
public const ulong SDL_WINDOW_MOUSE_CAPTURE = 0x0000000000004000UL;
[NativeTypeName("#define SDL_WINDOW_MOUSE_RELATIVE_MODE SDL_UINT64_C(0x0000000000008000)")]
public const ulong SDL_WINDOW_MOUSE_RELATIVE_MODE = (0x0000000000008000UL);
public const ulong SDL_WINDOW_MOUSE_RELATIVE_MODE = 0x0000000000008000UL;
[NativeTypeName("#define SDL_WINDOW_ALWAYS_ON_TOP SDL_UINT64_C(0x0000000000010000)")]
public const ulong SDL_WINDOW_ALWAYS_ON_TOP = (0x0000000000010000UL);
public const ulong SDL_WINDOW_ALWAYS_ON_TOP = 0x0000000000010000UL;
[NativeTypeName("#define SDL_WINDOW_UTILITY SDL_UINT64_C(0x0000000000020000)")]
public const ulong SDL_WINDOW_UTILITY = (0x0000000000020000UL);
public const ulong SDL_WINDOW_UTILITY = 0x0000000000020000UL;
[NativeTypeName("#define SDL_WINDOW_TOOLTIP SDL_UINT64_C(0x0000000000040000)")]
public const ulong SDL_WINDOW_TOOLTIP = (0x0000000000040000UL);
public const ulong SDL_WINDOW_TOOLTIP = 0x0000000000040000UL;
[NativeTypeName("#define SDL_WINDOW_POPUP_MENU SDL_UINT64_C(0x0000000000080000)")]
public const ulong SDL_WINDOW_POPUP_MENU = (0x0000000000080000UL);
public const ulong SDL_WINDOW_POPUP_MENU = 0x0000000000080000UL;
[NativeTypeName("#define SDL_WINDOW_KEYBOARD_GRABBED SDL_UINT64_C(0x0000000000100000)")]
public const ulong SDL_WINDOW_KEYBOARD_GRABBED = (0x0000000000100000UL);
public const ulong SDL_WINDOW_KEYBOARD_GRABBED = 0x0000000000100000UL;
[NativeTypeName("#define SDL_WINDOW_VULKAN SDL_UINT64_C(0x0000000010000000)")]
public const ulong SDL_WINDOW_VULKAN = (0x0000000010000000UL);
public const ulong SDL_WINDOW_VULKAN = 0x0000000010000000UL;
[NativeTypeName("#define SDL_WINDOW_METAL SDL_UINT64_C(0x0000000020000000)")]
public const ulong SDL_WINDOW_METAL = (0x0000000020000000UL);
public const ulong SDL_WINDOW_METAL = 0x0000000020000000UL;
[NativeTypeName("#define SDL_WINDOW_TRANSPARENT SDL_UINT64_C(0x0000000040000000)")]
public const ulong SDL_WINDOW_TRANSPARENT = (0x0000000040000000UL);
public const ulong SDL_WINDOW_TRANSPARENT = 0x0000000040000000UL;
[NativeTypeName("#define SDL_WINDOW_NOT_FOCUSABLE SDL_UINT64_C(0x0000000080000000)")]
public const ulong SDL_WINDOW_NOT_FOCUSABLE = (0x0000000080000000UL);
public const ulong SDL_WINDOW_NOT_FOCUSABLE = 0x0000000080000000UL;
[NativeTypeName("#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u")]
public const uint SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000U;
@ -653,6 +626,39 @@ namespace SDL
[NativeTypeName("#define SDL_WINDOWPOS_CENTERED SDL_WINDOWPOS_CENTERED_DISPLAY(0)")]
public const uint SDL_WINDOWPOS_CENTERED = (0x2FFF0000U | (0));
[NativeTypeName("#define SDL_GL_CONTEXT_PROFILE_CORE 0x0001")]
public const int SDL_GL_CONTEXT_PROFILE_CORE = 0x0001;
[NativeTypeName("#define SDL_GL_CONTEXT_PROFILE_COMPATIBILITY 0x0002")]
public const int SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002;
[NativeTypeName("#define SDL_GL_CONTEXT_PROFILE_ES 0x0004")]
public const int SDL_GL_CONTEXT_PROFILE_ES = 0x0004;
[NativeTypeName("#define SDL_GL_CONTEXT_DEBUG_FLAG 0x0001")]
public const int SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001;
[NativeTypeName("#define SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG 0x0002")]
public const int SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002;
[NativeTypeName("#define SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG 0x0004")]
public const int SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004;
[NativeTypeName("#define SDL_GL_CONTEXT_RESET_ISOLATION_FLAG 0x0008")]
public const int SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008;
[NativeTypeName("#define SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE 0x0000")]
public const int SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000;
[NativeTypeName("#define SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x0001")]
public const int SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001;
[NativeTypeName("#define SDL_GL_CONTEXT_RESET_NO_NOTIFICATION 0x0000")]
public const int SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000;
[NativeTypeName("#define SDL_GL_CONTEXT_RESET_LOSE_CONTEXT 0x0001")]
public const int SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001;
[NativeTypeName("#define SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN \"SDL.display.HDR_enabled\"")]
public static ReadOnlySpan<byte> SDL_PROP_DISPLAY_HDR_ENABLED_BOOLEAN => "SDL.display.HDR_enabled"u8;

View File

@ -10,3 +10,13 @@ SDL_SLOW_MEMSET
# Prevent SDL from using compiler intrinsics __builtin_mul_overflow and __builtin_add_overflow.
--additional
--undefine-macro=__has_builtin
# Exclude symbols that differ on Windows and Unix
--exclude
SDL_size_mul_check_overflow
SDL_size_add_check_overflow
SDL_SIZE_MAX
SDL_PRIs64
SDL_PRIu64
SDL_PRIx64
SDL_PRIX64

View File

@ -8,3 +8,7 @@ SDL_CreateThread=System.Runtime.Versioning
--with-attribute
SDL_CreateThread=UnsupportedOSPlatform("windows")
SDL_CreateThreadWithStackSize=UnsupportedOSPlatform("windows")
--exclude
SDL_BeginThreadFunction
SDL_EndThreadFunction

View File

@ -41,6 +41,41 @@ namespace SDL
SDL_WINDOW_NOT_FOCUSABLE = SDL3.SDL_WINDOW_NOT_FOCUSABLE,
}
[Flags]
[Typedef]
public enum SDL_GLProfile
{
SDL_GL_CONTEXT_PROFILE_CORE = SDL3.SDL_GL_CONTEXT_PROFILE_CORE,
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = SDL3.SDL_GL_CONTEXT_PROFILE_COMPATIBILITY,
SDL_GL_CONTEXT_PROFILE_ES = SDL3.SDL_GL_CONTEXT_PROFILE_ES,
}
[Flags]
[Typedef]
public enum SDL_GLContextFlag
{
SDL_GL_CONTEXT_DEBUG_FLAG = SDL3.SDL_GL_CONTEXT_DEBUG_FLAG,
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = SDL3.SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG,
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = SDL3.SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG,
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = SDL3.SDL_GL_CONTEXT_RESET_ISOLATION_FLAG,
}
[Flags]
[Typedef]
public enum SDL_GLContextReleaseFlag
{
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = SDL3.SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE,
SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = SDL3.SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH,
}
[Flags]
[Typedef]
public enum SDL_GLContextResetNotification
{
SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = SDL3.SDL_GL_CONTEXT_RESET_NO_NOTIFICATION,
SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = SDL3.SDL_GL_CONTEXT_RESET_LOSE_CONTEXT,
}
public static partial class SDL3
{
[Macro]

View File

@ -261,8 +261,13 @@ base_command = [
"wchar_t *=IntPtr", # wchar_t has a platform-defined size
"bool=SDLBool", # treat bool as C# helper type
"--nativeTypeNamesToStrip",
"unsigned int",
"--define-macro",
"SDL_FUNCTION_POINTER_IS_VOID_POINTER",
"SDL_SINT64_C(c)=c ## LL",
"SDL_UINT64_C(c)=c ## ULL",
"--additional",
"--undefine-macro=_WIN32",