Merge pull request #57 from Susko3/update-bindings

Update SDL3 bindings
This commit is contained in:
Dan Balasescu 2024-05-16 04:01:02 +09:00 committed by GitHub
commit cc5178712a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
40 changed files with 1492 additions and 636 deletions

View File

@ -90,7 +90,7 @@ namespace SDL.Tests
public void Create()
{
sdlWindowHandle = SDL_CreateWindow("hello"u8, 800, 600, SDL_WindowFlags.SDL_WINDOW_RESIZABLE | SDL_WindowFlags.SDL_WINDOW_HIGH_PIXEL_DENSITY);
renderer = SDL_CreateRenderer(sdlWindowHandle, null, SDL_RendererFlags.SDL_RENDERER_PRESENTVSYNC);
renderer = SDL_CreateRenderer(sdlWindowHandle, (Utf8String)null);
}
private void handleEvent(SDL_Event e)
@ -155,7 +155,7 @@ namespace SDL.Tests
break;
case SDL_Keycode.SDLK_m:
SDL_Keymod mod = e.key.keysym.Mod;
SDL_Keymod mod = e.key.keysym.mod;
Console.WriteLine(mod);
break;
}
@ -195,7 +195,7 @@ namespace SDL.Tests
do
{
eventsRead = SDL_PeepEvents(events, SDL_eventaction.SDL_GETEVENT, SDL_EventType.SDL_EVENT_FIRST, SDL_EventType.SDL_EVENT_LAST);
eventsRead = SDL_PeepEvents(events, SDL_EventAction.SDL_GETEVENT, SDL_EventType.SDL_EVENT_FIRST, SDL_EventType.SDL_EVENT_LAST);
for (int i = 0; i < eventsRead; i++)
handleEvent(events[i]);
} while (eventsRead == events_per_peep);

View File

@ -0,0 +1,39 @@
/*
<auto-generated/>
C# bindings for Simple DirectMedia Layer.
Original copyright notice of input files:
Simple DirectMedia Layer
Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
namespace SDL
{
public static partial class SDL3
{
[NativeTypeName("#define SDL_MAJOR_VERSION 3")]
public const int SDL_MAJOR_VERSION = 3;
[NativeTypeName("#define SDL_MINOR_VERSION 1")]
public const int SDL_MINOR_VERSION = 1;
[NativeTypeName("#define SDL_MICRO_VERSION 2")]
public const int SDL_MICRO_VERSION = 2;
}
}

View File

@ -169,41 +169,41 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_GetSilenceValueForFormat(SDL_AudioFormat format);
[NativeTypeName("#define SDL_AUDIO_MASK_BITSIZE (0xFF)")]
public const int SDL_AUDIO_MASK_BITSIZE = (0xFF);
[NativeTypeName("#define SDL_AUDIO_U8 0x0008u")]
public const uint SDL_AUDIO_U8 = 0x0008U;
[NativeTypeName("#define SDL_AUDIO_MASK_FLOAT (1<<8)")]
public const int SDL_AUDIO_MASK_FLOAT = (1 << 8);
[NativeTypeName("#define SDL_AUDIO_S8 0x8008u")]
public const uint SDL_AUDIO_S8 = 0x8008U;
[NativeTypeName("#define SDL_AUDIO_MASK_BIG_ENDIAN (1<<12)")]
public const int SDL_AUDIO_MASK_BIG_ENDIAN = (1 << 12);
[NativeTypeName("#define SDL_AUDIO_S16LE 0x8010u")]
public const uint SDL_AUDIO_S16LE = 0x8010U;
[NativeTypeName("#define SDL_AUDIO_MASK_SIGNED (1<<15)")]
public const int SDL_AUDIO_MASK_SIGNED = (1 << 15);
[NativeTypeName("#define SDL_AUDIO_S16BE 0x9010u")]
public const uint SDL_AUDIO_S16BE = 0x9010U;
[NativeTypeName("#define SDL_AUDIO_U8 0x0008")]
public const int SDL_AUDIO_U8 = 0x0008;
[NativeTypeName("#define SDL_AUDIO_S32LE 0x8020u")]
public const uint SDL_AUDIO_S32LE = 0x8020U;
[NativeTypeName("#define SDL_AUDIO_S8 0x8008")]
public const int SDL_AUDIO_S8 = 0x8008;
[NativeTypeName("#define SDL_AUDIO_S32BE 0x9020u")]
public const uint SDL_AUDIO_S32BE = 0x9020U;
[NativeTypeName("#define SDL_AUDIO_S16LE 0x8010")]
public const int SDL_AUDIO_S16LE = 0x8010;
[NativeTypeName("#define SDL_AUDIO_F32LE 0x8120u")]
public const uint SDL_AUDIO_F32LE = 0x8120U;
[NativeTypeName("#define SDL_AUDIO_S16BE 0x9010")]
public const int SDL_AUDIO_S16BE = 0x9010;
[NativeTypeName("#define SDL_AUDIO_F32BE 0x9120u")]
public const uint SDL_AUDIO_F32BE = 0x9120U;
[NativeTypeName("#define SDL_AUDIO_S32LE 0x8020")]
public const int SDL_AUDIO_S32LE = 0x8020;
[NativeTypeName("#define SDL_AUDIO_MASK_BITSIZE (0xFFu)")]
public const uint SDL_AUDIO_MASK_BITSIZE = (0xFFU);
[NativeTypeName("#define SDL_AUDIO_S32BE 0x9020")]
public const int SDL_AUDIO_S32BE = 0x9020;
[NativeTypeName("#define SDL_AUDIO_MASK_FLOAT (1u<<8)")]
public const uint SDL_AUDIO_MASK_FLOAT = (1U << 8);
[NativeTypeName("#define SDL_AUDIO_F32LE 0x8120")]
public const int SDL_AUDIO_F32LE = 0x8120;
[NativeTypeName("#define SDL_AUDIO_MASK_BIG_ENDIAN (1u<<12)")]
public const uint SDL_AUDIO_MASK_BIG_ENDIAN = (1U << 12);
[NativeTypeName("#define SDL_AUDIO_F32BE 0x9120")]
public const int SDL_AUDIO_F32BE = 0x9120;
[NativeTypeName("#define SDL_AUDIO_MASK_SIGNED (1u<<15)")]
public const uint SDL_AUDIO_MASK_SIGNED = (1U << 15);
[NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_OUTPUT ((SDL_AudioDeviceID) 0xFFFFFFFF)")]
public const SDL_AudioDeviceID SDL_AUDIO_DEVICE_DEFAULT_OUTPUT = ((SDL_AudioDeviceID)(0xFFFFFFFF));

View File

@ -27,16 +27,6 @@ using System.Runtime.InteropServices;
namespace SDL
{
public enum SDL_BlendMode
{
SDL_BLENDMODE_NONE = 0x00000000,
SDL_BLENDMODE_BLEND = 0x00000001,
SDL_BLENDMODE_ADD = 0x00000002,
SDL_BLENDMODE_MOD = 0x00000004,
SDL_BLENDMODE_MUL = 0x00000008,
SDL_BLENDMODE_INVALID = 0x7FFFFFFF,
}
public enum SDL_BlendOperation
{
SDL_BLENDOPERATION_ADD = 0x1,
@ -64,5 +54,23 @@ namespace SDL
{
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, SDL_BlendFactor dstColorFactor, SDL_BlendOperation colorOperation, SDL_BlendFactor srcAlphaFactor, SDL_BlendFactor dstAlphaFactor, SDL_BlendOperation alphaOperation);
[NativeTypeName("#define SDL_BLENDMODE_NONE 0x00000000u")]
public const uint SDL_BLENDMODE_NONE = 0x00000000U;
[NativeTypeName("#define SDL_BLENDMODE_BLEND 0x00000001u")]
public const uint SDL_BLENDMODE_BLEND = 0x00000001U;
[NativeTypeName("#define SDL_BLENDMODE_ADD 0x00000002u")]
public const uint SDL_BLENDMODE_ADD = 0x00000002U;
[NativeTypeName("#define SDL_BLENDMODE_MOD 0x00000004u")]
public const uint SDL_BLENDMODE_MOD = 0x00000004U;
[NativeTypeName("#define SDL_BLENDMODE_MUL 0x00000008u")]
public const uint SDL_BLENDMODE_MUL = 0x00000008U;
[NativeTypeName("#define SDL_BLENDMODE_INVALID 0x7FFFFFFFu")]
public const uint SDL_BLENDMODE_INVALID = 0x7FFFFFFFU;
}
}

View File

@ -27,29 +27,19 @@ using System.Runtime.InteropServices;
namespace SDL
{
public enum SDL_errorcode
{
SDL_ENOMEM,
SDL_EFREAD,
SDL_EFWRITE,
SDL_EFSEEK,
SDL_UNSUPPORTED,
SDL_LASTERROR,
}
public static unsafe partial class SDL3
{
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetError([NativeTypeName("const char *")] byte* fmt, __arglist);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_OutOfMemory();
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetError", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
public static extern byte* Unsafe_SDL_GetError();
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void SDL_ClearError();
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_Error(SDL_errorcode code);
public static extern int SDL_ClearError();
}
}

View File

@ -1012,7 +1012,7 @@ namespace SDL
}
}
public enum SDL_eventaction
public enum SDL_EventAction
{
SDL_ADDEVENT,
SDL_PEEKEVENT,
@ -1025,7 +1025,7 @@ namespace SDL
public static extern void SDL_PumpEvents();
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_PeepEvents(SDL_Event* events, int numevents, SDL_eventaction action, [NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
public static extern int SDL_PeepEvents(SDL_Event* events, int numevents, SDL_EventAction action, [NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_bool SDL_HasEvent([NativeTypeName("Uint32")] uint type);
@ -1085,11 +1085,5 @@ namespace SDL
[NativeTypeName("#define SDL_PRESSED 1")]
public const int SDL_PRESSED = 1;
[NativeTypeName("#define SDL_TEXTEDITINGEVENT_TEXT_SIZE 64")]
public const int SDL_TEXTEDITINGEVENT_TEXT_SIZE = 64;
[NativeTypeName("#define SDL_DROPEVENT_DATA_SIZE 64")]
public const int SDL_DROPEVENT_DATA_SIZE = 64;
}
}

View File

@ -96,9 +96,9 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("char **")]
public static extern byte** SDL_GlobDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, [NativeTypeName("Uint32")] uint flags, int* count);
public static extern byte** SDL_GlobDirectory([NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, SDL_GlobFlags flags, int* count);
[NativeTypeName("#define SDL_GLOB_CASEINSENSITIVE (1 << 0)")]
public const int SDL_GLOB_CASEINSENSITIVE = (1 << 0);
[NativeTypeName("#define SDL_GLOB_CASEINSENSITIVE (1u << 0)")]
public const uint SDL_GLOB_CASEINSENSITIVE = (1U << 0);
}
}

View File

@ -117,12 +117,12 @@ namespace SDL
{
public SDL_GamepadBindingType input_type;
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L196_C5")]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L229_C5")]
public _input_e__Union input;
public SDL_GamepadBindingType output_type;
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L216_C5")]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L249_C5")]
public _output_e__Union output;
[StructLayout(LayoutKind.Explicit)]
@ -132,11 +132,11 @@ namespace SDL
public int button;
[FieldOffset(0)]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L200_C9")]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L233_C9")]
public _axis_e__Struct axis;
[FieldOffset(0)]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L207_C9")]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L240_C9")]
public _hat_e__Struct hat;
public partial struct _axis_e__Struct
@ -163,7 +163,7 @@ namespace SDL
public SDL_GamepadButton button;
[FieldOffset(0)]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L220_C9")]
[NativeTypeName("__AnonymousRecord_SDL_gamepad_L253_C9")]
public _axis_e__Struct axis;
public partial struct _axis_e__Struct

View File

@ -427,8 +427,8 @@ namespace SDL
[NativeTypeName("#define SDL_HAPTIC_SINE (1u<<1)")]
public const uint SDL_HAPTIC_SINE = (1U << 1);
[NativeTypeName("#define SDL_HAPTIC_SQUARE (1<<2)")]
public const int SDL_HAPTIC_SQUARE = (1 << 2);
[NativeTypeName("#define SDL_HAPTIC_SQUARE (1u<<2)")]
public const uint SDL_HAPTIC_SQUARE = (1U << 2);
[NativeTypeName("#define SDL_HAPTIC_TRIANGLE (1u<<3)")]
public const uint SDL_HAPTIC_TRIANGLE = (1U << 3);

View File

@ -95,6 +95,9 @@ namespace SDL
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_APP_NAME \"SDL_AUDIO_DEVICE_APP_NAME\"")]
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_APP_NAME => "SDL_AUDIO_DEVICE_APP_NAME"u8;
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME \"SDL_AUDIO_DEVICE_APP_ICON_NAME\"")]
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_APP_ICON_NAME => "SDL_AUDIO_DEVICE_APP_ICON_NAME"u8;
[NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES \"SDL_AUDIO_DEVICE_SAMPLE_FRAMES\"")]
public static ReadOnlySpan<byte> SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES => "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"u8;
@ -434,8 +437,8 @@ namespace SDL
[NativeTypeName("#define SDL_HINT_OPENGL_ES_DRIVER \"SDL_OPENGL_ES_DRIVER\"")]
public static ReadOnlySpan<byte> SDL_HINT_OPENGL_ES_DRIVER => "SDL_OPENGL_ES_DRIVER"u8;
[NativeTypeName("#define SDL_HINT_ORIENTATIONS \"SDL_IOS_ORIENTATIONS\"")]
public static ReadOnlySpan<byte> SDL_HINT_ORIENTATIONS => "SDL_IOS_ORIENTATIONS"u8;
[NativeTypeName("#define SDL_HINT_ORIENTATIONS \"SDL_ORIENTATIONS\"")]
public static ReadOnlySpan<byte> SDL_HINT_ORIENTATIONS => "SDL_ORIENTATIONS"u8;
[NativeTypeName("#define SDL_HINT_PEN_DELAY_MOUSE_BUTTON \"SDL_PEN_DELAY_MOUSE_BUTTON\"")]
public static ReadOnlySpan<byte> SDL_HINT_PEN_DELAY_MOUSE_BUTTON => "SDL_PEN_DELAY_MOUSE_BUTTON"u8;
@ -470,9 +473,6 @@ namespace SDL
[NativeTypeName("#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE \"SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE\"")]
public static ReadOnlySpan<byte> SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE => "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE"u8;
[NativeTypeName("#define SDL_HINT_RENDER_PS2_DYNAMIC_VSYNC \"SDL_RENDER_PS2_DYNAMIC_VSYNC\"")]
public static ReadOnlySpan<byte> SDL_HINT_RENDER_PS2_DYNAMIC_VSYNC => "SDL_RENDER_PS2_DYNAMIC_VSYNC"u8;
[NativeTypeName("#define SDL_HINT_RENDER_VSYNC \"SDL_RENDER_VSYNC\"")]
public static ReadOnlySpan<byte> SDL_HINT_RENDER_VSYNC => "SDL_RENDER_VSYNC"u8;
@ -527,8 +527,8 @@ namespace SDL
[NativeTypeName("#define SDL_HINT_VIDEO_DRIVER \"SDL_VIDEO_DRIVER\"")]
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_DRIVER => "SDL_VIDEO_DRIVER"u8;
[NativeTypeName("#define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK \"SDL_VIDEO_EGL_GETDISPLAY_FALLBACK\"")]
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK => "SDL_VIDEO_EGL_GETDISPLAY_FALLBACK"u8;
[NativeTypeName("#define SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK \"SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK\"")]
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK => "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK"u8;
[NativeTypeName("#define SDL_HINT_VIDEO_FORCE_EGL \"SDL_VIDEO_FORCE_EGL\"")]
public static ReadOnlySpan<byte> SDL_HINT_VIDEO_FORCE_EGL => "SDL_VIDEO_FORCE_EGL"u8;

View File

@ -23,41 +23,52 @@
3. This notice may not be removed or altered from any source distribution.
*/
using System;
using System.Runtime.InteropServices;
namespace SDL
{
[Flags]
public enum SDL_InitFlags
{
SDL_INIT_TIMER = 0x00000001,
SDL_INIT_AUDIO = 0x00000010,
SDL_INIT_VIDEO = 0x00000020,
SDL_INIT_JOYSTICK = 0x00000200,
SDL_INIT_HAPTIC = 0x00001000,
SDL_INIT_GAMEPAD = 0x00002000,
SDL_INIT_EVENTS = 0x00004000,
SDL_INIT_SENSOR = 0x00008000,
SDL_INIT_CAMERA = 0x00010000,
}
public static partial class SDL3
{
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_Init([NativeTypeName("Uint32")] uint flags);
public static extern int SDL_Init(SDL_InitFlags flags);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_InitSubSystem([NativeTypeName("Uint32")] uint flags);
public static extern int SDL_InitSubSystem(SDL_InitFlags flags);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void SDL_QuitSubSystem([NativeTypeName("Uint32")] uint flags);
public static extern void SDL_QuitSubSystem(SDL_InitFlags flags);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("Uint32")]
public static extern uint SDL_WasInit([NativeTypeName("Uint32")] uint flags);
public static extern SDL_InitFlags SDL_WasInit(SDL_InitFlags flags);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern void SDL_Quit();
[NativeTypeName("#define SDL_INIT_TIMER 0x00000001u")]
public const uint SDL_INIT_TIMER = 0x00000001U;
[NativeTypeName("#define SDL_INIT_AUDIO 0x00000010u")]
public const uint SDL_INIT_AUDIO = 0x00000010U;
[NativeTypeName("#define SDL_INIT_VIDEO 0x00000020u")]
public const uint SDL_INIT_VIDEO = 0x00000020U;
[NativeTypeName("#define SDL_INIT_JOYSTICK 0x00000200u")]
public const uint SDL_INIT_JOYSTICK = 0x00000200U;
[NativeTypeName("#define SDL_INIT_HAPTIC 0x00001000u")]
public const uint SDL_INIT_HAPTIC = 0x00001000U;
[NativeTypeName("#define SDL_INIT_GAMEPAD 0x00002000u")]
public const uint SDL_INIT_GAMEPAD = 0x00002000U;
[NativeTypeName("#define SDL_INIT_EVENTS 0x00004000u")]
public const uint SDL_INIT_EVENTS = 0x00004000U;
[NativeTypeName("#define SDL_INIT_SENSOR 0x00008000u")]
public const uint SDL_INIT_SENSOR = 0x00008000U;
[NativeTypeName("#define SDL_INIT_CAMERA 0x00010000u")]
public const uint SDL_INIT_CAMERA = 0x00010000U;
}
}

View File

@ -24,6 +24,7 @@
*/
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SDL
@ -54,19 +55,35 @@ namespace SDL
SDL_JOYSTICK_CONNECTION_WIRELESS,
}
public partial struct SDL_VirtualJoystickTouchpadDesc
{
[NativeTypeName("Uint16")]
public ushort nfingers;
[NativeTypeName("Uint16[3]")]
public _padding_e__FixedBuffer padding;
[InlineArray(3)]
public partial struct _padding_e__FixedBuffer
{
public ushort e0;
}
}
public partial struct SDL_VirtualJoystickSensorDesc
{
public SDL_SensorType type;
public float rate;
}
public unsafe partial struct SDL_VirtualJoystickDesc
{
[NativeTypeName("Uint16")]
public ushort type;
[NativeTypeName("Uint16")]
public ushort naxes;
[NativeTypeName("Uint16")]
public ushort nbuttons;
[NativeTypeName("Uint16")]
public ushort nhats;
public ushort padding;
[NativeTypeName("Uint16")]
public ushort vendor_id;
@ -75,7 +92,25 @@ namespace SDL
public ushort product_id;
[NativeTypeName("Uint16")]
public ushort padding;
public ushort naxes;
[NativeTypeName("Uint16")]
public ushort nbuttons;
[NativeTypeName("Uint16")]
public ushort nballs;
[NativeTypeName("Uint16")]
public ushort nhats;
[NativeTypeName("Uint16")]
public ushort ntouchpads;
[NativeTypeName("Uint16")]
public ushort nsensors;
[NativeTypeName("Uint16[2]")]
public _padding2_e__FixedBuffer padding2;
[NativeTypeName("Uint32")]
public uint button_mask;
@ -86,6 +121,12 @@ namespace SDL
[NativeTypeName("const char *")]
public byte* name;
[NativeTypeName("const SDL_VirtualJoystickTouchpadDesc *")]
public SDL_VirtualJoystickTouchpadDesc* touchpads;
[NativeTypeName("const SDL_VirtualJoystickSensorDesc *")]
public SDL_VirtualJoystickSensorDesc* sensors;
[NativeTypeName("void*")]
public IntPtr userdata;
@ -106,6 +147,15 @@ namespace SDL
[NativeTypeName("int (*)(void *, const void *, int)")]
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int> SendEffect;
[NativeTypeName("int (*)(void *, SDL_bool)")]
public delegate* unmanaged[Cdecl]<IntPtr, SDL_bool, int> SetSensorsEnabled;
[InlineArray(2)]
public partial struct _padding2_e__FixedBuffer
{
public ushort e0;
}
}
public static unsafe partial class SDL3
@ -162,10 +212,7 @@ namespace SDL
public static extern SDL_Joystick* SDL_GetJoystickFromPlayerIndex(int player_index);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_JoystickID SDL_AttachVirtualJoystick(SDL_JoystickType type, int naxes, int nbuttons, int nhats);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_JoystickID SDL_AttachVirtualJoystickEx([NativeTypeName("const SDL_VirtualJoystickDesc *")] SDL_VirtualJoystickDesc* desc);
public static extern SDL_JoystickID SDL_AttachVirtualJoystick([NativeTypeName("const SDL_VirtualJoystickDesc *")] SDL_VirtualJoystickDesc* desc);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_DetachVirtualJoystick(SDL_JoystickID instance_id);
@ -176,12 +223,21 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetJoystickVirtualAxis(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16")] short value);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetJoystickVirtualBall(SDL_Joystick* joystick, int ball, [NativeTypeName("Sint16")] short xrel, [NativeTypeName("Sint16")] short yrel);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetJoystickVirtualButton(SDL_Joystick* joystick, int button, [NativeTypeName("Uint8")] byte value);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetJoystickVirtualHat(SDL_Joystick* joystick, int hat, [NativeTypeName("Uint8")] byte value);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SetJoystickVirtualTouchpad(SDL_Joystick* joystick, int touchpad, int finger, [NativeTypeName("Uint8")] byte state, float x, float y, float pressure);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_SendJoystickVirtualSensorData(SDL_Joystick* joystick, SDL_SensorType type, [NativeTypeName("Uint64")] ulong sensor_timestamp, [NativeTypeName("const float *")] float* data, int num_values);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_PropertiesID SDL_GetJoystickProperties(SDL_Joystick* joystick);
@ -326,31 +382,31 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN \"SDL.joystick.cap.trigger_rumble\"")]
public static ReadOnlySpan<byte> SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN => "SDL.joystick.cap.trigger_rumble"u8;
[NativeTypeName("#define SDL_HAT_CENTERED 0x00")]
public const int SDL_HAT_CENTERED = 0x00;
[NativeTypeName("#define SDL_HAT_CENTERED 0x00u")]
public const uint SDL_HAT_CENTERED = 0x00U;
[NativeTypeName("#define SDL_HAT_UP 0x01")]
public const int SDL_HAT_UP = 0x01;
[NativeTypeName("#define SDL_HAT_UP 0x01u")]
public const uint SDL_HAT_UP = 0x01U;
[NativeTypeName("#define SDL_HAT_RIGHT 0x02")]
public const int SDL_HAT_RIGHT = 0x02;
[NativeTypeName("#define SDL_HAT_RIGHT 0x02u")]
public const uint SDL_HAT_RIGHT = 0x02U;
[NativeTypeName("#define SDL_HAT_DOWN 0x04")]
public const int SDL_HAT_DOWN = 0x04;
[NativeTypeName("#define SDL_HAT_DOWN 0x04u")]
public const uint SDL_HAT_DOWN = 0x04U;
[NativeTypeName("#define SDL_HAT_LEFT 0x08")]
public const int SDL_HAT_LEFT = 0x08;
[NativeTypeName("#define SDL_HAT_LEFT 0x08u")]
public const uint SDL_HAT_LEFT = 0x08U;
[NativeTypeName("#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)")]
public const int SDL_HAT_RIGHTUP = (0x02 | 0x01);
public const uint SDL_HAT_RIGHTUP = (0x02U | 0x01U);
[NativeTypeName("#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)")]
public const int SDL_HAT_RIGHTDOWN = (0x02 | 0x04);
public const uint SDL_HAT_RIGHTDOWN = (0x02U | 0x04U);
[NativeTypeName("#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)")]
public const int SDL_HAT_LEFTUP = (0x08 | 0x01);
public const uint SDL_HAT_LEFTUP = (0x08U | 0x01U);
[NativeTypeName("#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)")]
public const int SDL_HAT_LEFTDOWN = (0x08 | 0x04);
public const uint SDL_HAT_LEFTDOWN = (0x08U | 0x04U);
}
}

View File

@ -33,11 +33,10 @@ namespace SDL
public SDL_Keycode sym;
[NativeTypeName("Uint16")]
public ushort mod;
public SDL_Keymod mod;
[NativeTypeName("Uint32")]
public uint unused;
[NativeTypeName("Uint16")]
public ushort unused;
}
public static unsafe partial class SDL3

File diff suppressed because it is too large Load Diff

View File

@ -23,33 +23,14 @@
3. This notice may not be removed or altered from any source distribution.
*/
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SDL
{
[Flags]
public enum SDL_MessageBoxFlags
{
SDL_MESSAGEBOX_ERROR = 0x00000010,
SDL_MESSAGEBOX_WARNING = 0x00000020,
SDL_MESSAGEBOX_INFORMATION = 0x00000040,
SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080,
SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100,
}
[Flags]
public enum SDL_MessageBoxButtonFlags
{
SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001,
SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002,
}
public unsafe partial struct SDL_MessageBoxButtonData
{
[NativeTypeName("Uint32")]
public uint flags;
public SDL_MessageBoxButtonFlags flags;
public int buttonID;
@ -93,8 +74,7 @@ namespace SDL
public unsafe partial struct SDL_MessageBoxData
{
[NativeTypeName("Uint32")]
public uint flags;
public SDL_MessageBoxFlags flags;
public SDL_Window* window;
@ -119,6 +99,27 @@ namespace SDL
public static extern int SDL_ShowMessageBox([NativeTypeName("const SDL_MessageBoxData *")] SDL_MessageBoxData* messageboxdata, int* buttonid);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_ShowSimpleMessageBox([NativeTypeName("Uint32")] uint flags, [NativeTypeName("const char *")] byte* title, [NativeTypeName("const char *")] byte* message, SDL_Window* window);
public static extern int SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags flags, [NativeTypeName("const char *")] byte* title, [NativeTypeName("const char *")] byte* message, SDL_Window* window);
[NativeTypeName("#define SDL_MESSAGEBOX_ERROR 0x00000010u")]
public const uint SDL_MESSAGEBOX_ERROR = 0x00000010U;
[NativeTypeName("#define SDL_MESSAGEBOX_WARNING 0x00000020u")]
public const uint SDL_MESSAGEBOX_WARNING = 0x00000020U;
[NativeTypeName("#define SDL_MESSAGEBOX_INFORMATION 0x00000040u")]
public const uint SDL_MESSAGEBOX_INFORMATION = 0x00000040U;
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT 0x00000080u")]
public const uint SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = 0x00000080U;
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT 0x00000100u")]
public const uint SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = 0x00000100U;
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT 0x00000001u")]
public const uint SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001U;
[NativeTypeName("#define SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT 0x00000002u")]
public const uint SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002U;
}
}

View File

@ -150,18 +150,18 @@ namespace SDL
public const int SDL_BUTTON_X2 = 5;
[NativeTypeName("#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT)")]
public const int SDL_BUTTON_LMASK = (1 << ((1) - 1));
public const uint SDL_BUTTON_LMASK = (1U << ((1) - 1));
[NativeTypeName("#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE)")]
public const int SDL_BUTTON_MMASK = (1 << ((2) - 1));
public const uint SDL_BUTTON_MMASK = (1U << ((2) - 1));
[NativeTypeName("#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT)")]
public const int SDL_BUTTON_RMASK = (1 << ((3) - 1));
public const uint SDL_BUTTON_RMASK = (1U << ((3) - 1));
[NativeTypeName("#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1)")]
public const int SDL_BUTTON_X1MASK = (1 << ((4) - 1));
public const uint SDL_BUTTON_X1MASK = (1U << ((4) - 1));
[NativeTypeName("#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2)")]
public const int SDL_BUTTON_X2MASK = (1 << ((5) - 1));
public const uint SDL_BUTTON_X2MASK = (1U << ((5) - 1));
}
}

View File

@ -24,39 +24,19 @@
*/
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace SDL
{
[Flags]
public enum SDL_RendererFlags
{
SDL_RENDERER_PRESENTVSYNC = 0x00000004,
}
public unsafe partial struct SDL_RendererInfo
{
[NativeTypeName("const char *")]
public byte* name;
[NativeTypeName("Uint32")]
public uint flags;
public int num_texture_formats;
[NativeTypeName("SDL_PixelFormatEnum[16]")]
public _texture_formats_e__FixedBuffer texture_formats;
public int max_texture_width;
public int max_texture_height;
[InlineArray(16)]
public partial struct _texture_formats_e__FixedBuffer
{
public SDL_PixelFormatEnum e0;
}
[NativeTypeName("const SDL_PixelFormatEnum *")]
public SDL_PixelFormatEnum* texture_formats;
}
public partial struct SDL_Vertex
@ -102,10 +82,10 @@ namespace SDL
public static extern byte* Unsafe_SDL_GetRenderDriver(int index);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_CreateWindowAndRenderer(int width, int height, SDL_WindowFlags window_flags, SDL_Window** window, SDL_Renderer** renderer);
public static extern int SDL_CreateWindowAndRenderer([NativeTypeName("const char *")] byte* title, int width, int height, SDL_WindowFlags window_flags, SDL_Window** window, SDL_Renderer** renderer);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, [NativeTypeName("const char *")] byte* name, [NativeTypeName("Uint32")] uint flags);
public static extern SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, [NativeTypeName("const char *")] byte* name);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern SDL_Renderer* SDL_CreateRendererWithProperties(SDL_PropertiesID props);
@ -361,8 +341,8 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER \"output_colorspace\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER => "output_colorspace"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_BOOLEAN \"present_vsync\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_BOOLEAN => "present_vsync"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER \"present_vsync\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER => "present_vsync"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER \"vulkan.instance\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER => "vulkan.instance"u8;
@ -391,6 +371,12 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_RENDERER_SURFACE_POINTER \"SDL.renderer.surface\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_SURFACE_POINTER => "SDL.renderer.surface"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_VSYNC_NUMBER \"SDL.renderer.vsync\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_VSYNC_NUMBER => "SDL.renderer.vsync"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER \"SDL.renderer.max_texture_size\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER => "SDL.renderer.max_texture_size"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER \"SDL.renderer.output_colorspace\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER => "SDL.renderer.output_colorspace"u8;
@ -409,9 +395,15 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_RENDERER_D3D11_DEVICE_POINTER \"SDL.renderer.d3d11.device\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_D3D11_DEVICE_POINTER => "SDL.renderer.d3d11.device"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER \"SDL.renderer.d3d11.swap_chain\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_D3D11_SWAPCHAIN_POINTER => "SDL.renderer.d3d11.swap_chain"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_D3D12_DEVICE_POINTER \"SDL.renderer.d3d12.device\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_D3D12_DEVICE_POINTER => "SDL.renderer.d3d12.device"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER \"SDL.renderer.d3d12.swap_chain\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_D3D12_SWAPCHAIN_POINTER => "SDL.renderer.d3d12.swap_chain"u8;
[NativeTypeName("#define SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER \"SDL.renderer.d3d12.command_queue\"")]
public static ReadOnlySpan<byte> SDL_PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER => "SDL.renderer.d3d12.command_queue"u8;

View File

@ -583,23 +583,23 @@ namespace SDL
[NativeTypeName("#define SDL_MIN_UINT32 ((Uint32)0x00000000)")]
public const uint SDL_MIN_UINT32 = ((uint)(0x00000000));
[NativeTypeName("#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll)")]
public const long SDL_MAX_SINT64 = ((long)(0x7FFFFFFFFFFFFFFFL));
[NativeTypeName("#define SDL_MAX_SINT64 SDL_SINT64_C(0x7FFFFFFFFFFFFFFF)")]
public const long SDL_MAX_SINT64 = (0x7FFFFFFFFFFFFFFFL);
[NativeTypeName("#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll))")]
public const long SDL_MIN_SINT64 = ((long)(~0x7FFFFFFFFFFFFFFFL));
[NativeTypeName("#define SDL_MIN_SINT64 ~SDL_SINT64_C(0x7FFFFFFFFFFFFFFF)")]
public const long SDL_MIN_SINT64 = ~(0x7FFFFFFFFFFFFFFFL);
[NativeTypeName("#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull)")]
public const ulong SDL_MAX_UINT64 = ((ulong)(0xFFFFFFFFFFFFFFFFUL));
[NativeTypeName("#define SDL_MAX_UINT64 SDL_UINT64_C(0xFFFFFFFFFFFFFFFF)")]
public const ulong SDL_MAX_UINT64 = (0xFFFFFFFFFFFFFFFFUL);
[NativeTypeName("#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull))")]
public const ulong SDL_MIN_UINT64 = ((ulong)(0x0000000000000000UL));
[NativeTypeName("#define SDL_MIN_UINT64 SDL_UINT64_C(0x0000000000000000)")]
public const ulong SDL_MIN_UINT64 = (0x0000000000000000UL);
[NativeTypeName("#define SDL_MAX_TIME SDL_MAX_SINT64")]
public const long SDL_MAX_TIME = ((long)(0x7FFFFFFFFFFFFFFFL));
public const long SDL_MAX_TIME = (0x7FFFFFFFFFFFFFFFL);
[NativeTypeName("#define SDL_MIN_TIME SDL_MIN_SINT64")]
public const long SDL_MIN_TIME = ((long)(~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;

View File

@ -115,6 +115,6 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
[return: NativeTypeName("char **")]
public static extern byte** SDL_GlobStorageDirectory(SDL_Storage* storage, [NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, [NativeTypeName("Uint32")] uint flags, int* count);
public static extern byte** SDL_GlobStorageDirectory(SDL_Storage* storage, [NativeTypeName("const char *")] byte* path, [NativeTypeName("const char *")] byte* pattern, SDL_GlobFlags flags, int* count);
}
}

View File

@ -23,7 +23,6 @@
3. This notice may not be removed or altered from any source distribution.
*/
using System;
using System.Runtime.InteropServices;
namespace SDL
@ -64,6 +63,9 @@ namespace SDL
public static unsafe partial class SDL3
{
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_GetDateTimeLocalePreferences(SDL_DateFormat* dateFormat, SDL_TimeFormat* timeFormat);
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_GetCurrentTime(SDL_Time* ticks);
@ -87,11 +89,5 @@ namespace SDL
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_GetDayOfWeek(int year, int month, int day);
[NativeTypeName("#define SDL_PROP_GLOBAL_SYSTEM_DATE_FORMAT_NUMBER \"SDL.time.date_format\"")]
public static ReadOnlySpan<byte> SDL_PROP_GLOBAL_SYSTEM_DATE_FORMAT_NUMBER => "SDL.time.date_format"u8;
[NativeTypeName("#define SDL_PROP_GLOBAL_SYSTEM_TIME_FORMAT_NUMBER \"SDL.time.time_format\"")]
public static ReadOnlySpan<byte> SDL_PROP_GLOBAL_SYSTEM_TIME_FORMAT_NUMBER => "SDL.time.time_format"u8;
}
}

View File

@ -27,37 +27,13 @@ using System.Runtime.InteropServices;
namespace SDL
{
public partial struct SDL_Version
{
[NativeTypeName("Uint8")]
public byte major;
[NativeTypeName("Uint8")]
public byte minor;
[NativeTypeName("Uint8")]
public byte patch;
}
public static unsafe partial class SDL3
{
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
public static extern int SDL_GetVersion(SDL_Version* ver);
public static extern int SDL_GetVersion();
[DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, EntryPoint = "SDL_GetRevision", ExactSpelling = true)]
[return: NativeTypeName("const char *")]
public static extern byte* Unsafe_SDL_GetRevision();
[NativeTypeName("#define SDL_MAJOR_VERSION 3")]
public const int SDL_MAJOR_VERSION = 3;
[NativeTypeName("#define SDL_MINOR_VERSION 1")]
public const int SDL_MINOR_VERSION = 1;
[NativeTypeName("#define SDL_PATCHLEVEL 1")]
public const int SDL_PATCHLEVEL = 1;
[NativeTypeName("#define SDL_COMPILEDVERSION SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)")]
public const int SDL_COMPILEDVERSION = ((3) << 24 | (1) << 8 | (1) << 0);
}
}

View File

@ -479,74 +479,77 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER \"SDL.video.wayland.wl_display\"")]
public static ReadOnlySpan<byte> SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER => "SDL.video.wayland.wl_display"u8;
[NativeTypeName("#define SDL_WINDOW_FULLSCREEN 0x00000001U")]
public const uint SDL_WINDOW_FULLSCREEN = 0x00000001U;
[NativeTypeName("#define SDL_WINDOW_FULLSCREEN SDL_UINT64_C(0x0000000000000001)")]
public const ulong SDL_WINDOW_FULLSCREEN = (0x0000000000000001UL);
[NativeTypeName("#define SDL_WINDOW_OPENGL 0x00000002U")]
public const uint SDL_WINDOW_OPENGL = 0x00000002U;
[NativeTypeName("#define SDL_WINDOW_OPENGL SDL_UINT64_C(0x0000000000000002)")]
public const ulong SDL_WINDOW_OPENGL = (0x0000000000000002UL);
[NativeTypeName("#define SDL_WINDOW_OCCLUDED 0x00000004U")]
public const uint SDL_WINDOW_OCCLUDED = 0x00000004U;
[NativeTypeName("#define SDL_WINDOW_OCCLUDED SDL_UINT64_C(0x0000000000000004)")]
public const ulong SDL_WINDOW_OCCLUDED = (0x0000000000000004UL);
[NativeTypeName("#define SDL_WINDOW_HIDDEN 0x00000008U")]
public const uint SDL_WINDOW_HIDDEN = 0x00000008U;
[NativeTypeName("#define SDL_WINDOW_HIDDEN SDL_UINT64_C(0x0000000000000008)")]
public const ulong SDL_WINDOW_HIDDEN = (0x0000000000000008UL);
[NativeTypeName("#define SDL_WINDOW_BORDERLESS 0x00000010U")]
public const uint SDL_WINDOW_BORDERLESS = 0x00000010U;
[NativeTypeName("#define SDL_WINDOW_BORDERLESS SDL_UINT64_C(0x0000000000000010)")]
public const ulong SDL_WINDOW_BORDERLESS = (0x0000000000000010UL);
[NativeTypeName("#define SDL_WINDOW_RESIZABLE 0x00000020U")]
public const uint SDL_WINDOW_RESIZABLE = 0x00000020U;
[NativeTypeName("#define SDL_WINDOW_RESIZABLE SDL_UINT64_C(0x0000000000000020)")]
public const ulong SDL_WINDOW_RESIZABLE = (0x0000000000000020UL);
[NativeTypeName("#define SDL_WINDOW_MINIMIZED 0x00000040U")]
public const uint SDL_WINDOW_MINIMIZED = 0x00000040U;
[NativeTypeName("#define SDL_WINDOW_MINIMIZED SDL_UINT64_C(0x0000000000000040)")]
public const ulong SDL_WINDOW_MINIMIZED = (0x0000000000000040UL);
[NativeTypeName("#define SDL_WINDOW_MAXIMIZED 0x00000080U")]
public const uint SDL_WINDOW_MAXIMIZED = 0x00000080U;
[NativeTypeName("#define SDL_WINDOW_MAXIMIZED SDL_UINT64_C(0x0000000000000080)")]
public const ulong SDL_WINDOW_MAXIMIZED = (0x0000000000000080UL);
[NativeTypeName("#define SDL_WINDOW_MOUSE_GRABBED 0x00000100U")]
public const uint SDL_WINDOW_MOUSE_GRABBED = 0x00000100U;
[NativeTypeName("#define SDL_WINDOW_MOUSE_GRABBED SDL_UINT64_C(0x0000000000000100)")]
public const ulong SDL_WINDOW_MOUSE_GRABBED = (0x0000000000000100UL);
[NativeTypeName("#define SDL_WINDOW_INPUT_FOCUS 0x00000200U")]
public const uint SDL_WINDOW_INPUT_FOCUS = 0x00000200U;
[NativeTypeName("#define SDL_WINDOW_INPUT_FOCUS SDL_UINT64_C(0x0000000000000200)")]
public const ulong SDL_WINDOW_INPUT_FOCUS = (0x0000000000000200UL);
[NativeTypeName("#define SDL_WINDOW_MOUSE_FOCUS 0x00000400U")]
public const uint SDL_WINDOW_MOUSE_FOCUS = 0x00000400U;
[NativeTypeName("#define SDL_WINDOW_MOUSE_FOCUS SDL_UINT64_C(0x0000000000000400)")]
public const ulong SDL_WINDOW_MOUSE_FOCUS = (0x0000000000000400UL);
[NativeTypeName("#define SDL_WINDOW_EXTERNAL 0x00000800U")]
public const uint SDL_WINDOW_EXTERNAL = 0x00000800U;
[NativeTypeName("#define SDL_WINDOW_EXTERNAL SDL_UINT64_C(0x0000000000000800)")]
public const ulong SDL_WINDOW_EXTERNAL = (0x0000000000000800UL);
[NativeTypeName("#define SDL_WINDOW_HIGH_PIXEL_DENSITY 0x00002000U")]
public const uint SDL_WINDOW_HIGH_PIXEL_DENSITY = 0x00002000U;
[NativeTypeName("#define SDL_WINDOW_MODAL SDL_UINT64_C(0x0000000000001000)")]
public const ulong SDL_WINDOW_MODAL = (0x0000000000001000UL);
[NativeTypeName("#define SDL_WINDOW_MOUSE_CAPTURE 0x00004000U")]
public const uint SDL_WINDOW_MOUSE_CAPTURE = 0x00004000U;
[NativeTypeName("#define SDL_WINDOW_HIGH_PIXEL_DENSITY SDL_UINT64_C(0x0000000000002000)")]
public const ulong SDL_WINDOW_HIGH_PIXEL_DENSITY = (0x0000000000002000UL);
[NativeTypeName("#define SDL_WINDOW_ALWAYS_ON_TOP 0x00008000U")]
public const uint SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000U;
[NativeTypeName("#define SDL_WINDOW_MOUSE_CAPTURE SDL_UINT64_C(0x0000000000004000)")]
public const ulong SDL_WINDOW_MOUSE_CAPTURE = (0x0000000000004000UL);
[NativeTypeName("#define SDL_WINDOW_UTILITY 0x00020000U")]
public const uint SDL_WINDOW_UTILITY = 0x00020000U;
[NativeTypeName("#define SDL_WINDOW_ALWAYS_ON_TOP SDL_UINT64_C(0x0000000000008000)")]
public const ulong SDL_WINDOW_ALWAYS_ON_TOP = (0x0000000000008000UL);
[NativeTypeName("#define SDL_WINDOW_TOOLTIP 0x00040000U")]
public const uint SDL_WINDOW_TOOLTIP = 0x00040000U;
[NativeTypeName("#define SDL_WINDOW_UTILITY SDL_UINT64_C(0x0000000000020000)")]
public const ulong SDL_WINDOW_UTILITY = (0x0000000000020000UL);
[NativeTypeName("#define SDL_WINDOW_POPUP_MENU 0x00080000U")]
public const uint SDL_WINDOW_POPUP_MENU = 0x00080000U;
[NativeTypeName("#define SDL_WINDOW_TOOLTIP SDL_UINT64_C(0x0000000000040000)")]
public const ulong SDL_WINDOW_TOOLTIP = (0x0000000000040000UL);
[NativeTypeName("#define SDL_WINDOW_KEYBOARD_GRABBED 0x00100000U")]
public const uint SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000U;
[NativeTypeName("#define SDL_WINDOW_POPUP_MENU SDL_UINT64_C(0x0000000000080000)")]
public const ulong SDL_WINDOW_POPUP_MENU = (0x0000000000080000UL);
[NativeTypeName("#define SDL_WINDOW_VULKAN 0x10000000U")]
public const uint SDL_WINDOW_VULKAN = 0x10000000U;
[NativeTypeName("#define SDL_WINDOW_KEYBOARD_GRABBED SDL_UINT64_C(0x0000000000100000)")]
public const ulong SDL_WINDOW_KEYBOARD_GRABBED = (0x0000000000100000UL);
[NativeTypeName("#define SDL_WINDOW_METAL 0x20000000U")]
public const uint SDL_WINDOW_METAL = 0x20000000U;
[NativeTypeName("#define SDL_WINDOW_VULKAN SDL_UINT64_C(0x0000000010000000)")]
public const ulong SDL_WINDOW_VULKAN = (0x0000000010000000UL);
[NativeTypeName("#define SDL_WINDOW_TRANSPARENT 0x40000000U")]
public const uint SDL_WINDOW_TRANSPARENT = 0x40000000U;
[NativeTypeName("#define SDL_WINDOW_METAL SDL_UINT64_C(0x0000000020000000)")]
public const ulong SDL_WINDOW_METAL = (0x0000000020000000UL);
[NativeTypeName("#define SDL_WINDOW_NOT_FOCUSABLE 0x80000000U")]
public const uint SDL_WINDOW_NOT_FOCUSABLE = 0x80000000U;
[NativeTypeName("#define SDL_WINDOW_TRANSPARENT SDL_UINT64_C(0x0000000040000000)")]
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);
[NativeTypeName("#define SDL_WINDOWPOS_UNDEFINED_MASK 0x1FFF0000u")]
public const uint SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000U;
@ -569,6 +572,9 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_DISPLAY_HDR_HEADROOM_FLOAT \"SDL.display.HDR_headroom\"")]
public static ReadOnlySpan<byte> SDL_PROP_DISPLAY_HDR_HEADROOM_FLOAT => "SDL.display.HDR_headroom"u8;
[NativeTypeName("#define SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER \"SDL.display.KMSDRM.panel_orientation\"")]
public static ReadOnlySpan<byte> SDL_PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER => "SDL.display.KMSDRM.panel_orientation"u8;
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN \"always_on_top\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN => "always_on_top"u8;
@ -605,6 +611,9 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN \"minimized\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN => "minimized"u8;
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_MODAL_BOOLEAN \"modal\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_MODAL_BOOLEAN => "modal"u8;
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN \"mouse_grabbed\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN => "mouse_grabbed"u8;
@ -647,9 +656,6 @@ namespace SDL
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER \"cocoa.view\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER => "cocoa.view"u8;
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_WAYLAND_SCALE_TO_DISPLAY_BOOLEAN \"wayland.scale_to_display\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_WAYLAND_SCALE_TO_DISPLAY_BOOLEAN => "wayland.scale_to_display"u8;
[NativeTypeName("#define SDL_PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN \"wayland.surface_role_custom\"")]
public static ReadOnlySpan<byte> SDL_PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN => "wayland.surface_role_custom"u8;

View File

@ -12,14 +12,14 @@ namespace SDL
[Typedef]
public enum SDL_AudioFormat : UInt16
{
SDL_AUDIO_U8 = SDL3.SDL_AUDIO_U8,
SDL_AUDIO_S8 = SDL3.SDL_AUDIO_S8,
SDL_AUDIO_S16LE = SDL3.SDL_AUDIO_S16LE,
SDL_AUDIO_S16BE = SDL3.SDL_AUDIO_S16BE,
SDL_AUDIO_S32LE = SDL3.SDL_AUDIO_S32LE,
SDL_AUDIO_S32BE = SDL3.SDL_AUDIO_S32BE,
SDL_AUDIO_F32LE = SDL3.SDL_AUDIO_F32LE,
SDL_AUDIO_F32BE = SDL3.SDL_AUDIO_F32BE,
SDL_AUDIO_U8 = (UInt16)SDL3.SDL_AUDIO_U8,
SDL_AUDIO_S8 = (UInt16)SDL3.SDL_AUDIO_S8,
SDL_AUDIO_S16LE = (UInt16)SDL3.SDL_AUDIO_S16LE,
SDL_AUDIO_S16BE = (UInt16)SDL3.SDL_AUDIO_S16BE,
SDL_AUDIO_S32LE = (UInt16)SDL3.SDL_AUDIO_S32LE,
SDL_AUDIO_S32BE = (UInt16)SDL3.SDL_AUDIO_S32BE,
SDL_AUDIO_F32LE = (UInt16)SDL3.SDL_AUDIO_F32LE,
SDL_AUDIO_F32BE = (UInt16)SDL3.SDL_AUDIO_F32BE,
}
public static partial class SDL3
@ -34,7 +34,7 @@ namespace SDL
public static readonly SDL_AudioFormat SDL_AUDIO_F32 = BitConverter.IsLittleEndian ? SDL_AudioFormat.SDL_AUDIO_F32LE : SDL_AudioFormat.SDL_AUDIO_F32BE;
[Macro]
public static int SDL_AUDIO_BITSIZE(SDL_AudioFormat x) => (UInt16)x & SDL_AUDIO_MASK_BITSIZE;
public static int SDL_AUDIO_BITSIZE(SDL_AudioFormat x) => (int)((UInt16)x & SDL_AUDIO_MASK_BITSIZE);
[Macro]
public static int SDL_AUDIO_BYTESIZE(SDL_AudioFormat x) => SDL_AUDIO_BITSIZE(x) / 8;

View File

@ -0,0 +1,19 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
namespace SDL
{
[Flags]
[Typedef]
public enum SDL_BlendMode : UInt32
{
SDL_BLENDMODE_NONE = SDL3.SDL_BLENDMODE_NONE,
SDL_BLENDMODE_BLEND = SDL3.SDL_BLENDMODE_BLEND,
SDL_BLENDMODE_ADD = SDL3.SDL_BLENDMODE_ADD,
SDL_BLENDMODE_MOD = SDL3.SDL_BLENDMODE_MOD,
SDL_BLENDMODE_MUL = SDL3.SDL_BLENDMODE_MUL,
SDL_BLENDMODE_INVALID = SDL3.SDL_BLENDMODE_INVALID,
}
}

View File

@ -6,10 +6,11 @@ namespace SDL
public static partial class SDL3
{
[Macro]
public static int SDL_OutOfMemory() => SDL_Error(SDL_errorcode.SDL_ENOMEM);
[Macro]
public static int SDL_Unsupported() => SDL_Error(SDL_errorcode.SDL_UNSUPPORTED);
public static unsafe int SDL_Unsupported()
{
fixed (byte* fmt = "That operation is not supported"u8)
return SDL_SetError(fmt, __arglist());
}
[Macro]
public static unsafe int SDL_InvalidParamError([NativeTypeName("const char *")] byte* param)

View File

@ -52,7 +52,7 @@ namespace SDL
public static partial class SDL3
{
public static unsafe int SDL_PeepEvents(SDL_Event[] events, SDL_eventaction action, SDL_EventType minType, SDL_EventType maxType)
public static unsafe int SDL_PeepEvents(SDL_Event[] events, SDL_EventAction action, SDL_EventType minType, SDL_EventType maxType)
{
fixed (SDL_Event* eventsPtr = events)
return SDL_PeepEvents(eventsPtr, events.Length, action, (uint)minType, (uint)maxType);

View File

@ -0,0 +1,14 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
namespace SDL
{
[Flags]
[Typedef]
public enum SDL_GlobFlags : UInt32
{
SDL_GLOB_CASEINSENSITIVE = SDL3.SDL_GLOB_CASEINSENSITIVE,
}
}

View File

@ -1,16 +1,22 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
namespace SDL
{
public static partial class SDL3
[Flags]
[Typedef]
public enum SDL_InitFlags : UInt32
{
public static int SDL_Init(SDL_InitFlags flags) => SDL_Init((uint)flags);
public static int SDL_InitSubSystem(SDL_InitFlags flags) => SDL_InitSubSystem((uint)flags);
public static void SDL_QuitSubSystem(SDL_InitFlags flags) => SDL_QuitSubSystem((uint)flags);
public static SDL_InitFlags SDL_WasInit(SDL_InitFlags flags) => (SDL_InitFlags)SDL_WasInit((uint)flags);
SDL_INIT_TIMER = SDL3.SDL_INIT_TIMER,
SDL_INIT_AUDIO = SDL3.SDL_INIT_AUDIO,
SDL_INIT_VIDEO = SDL3.SDL_INIT_VIDEO,
SDL_INIT_JOYSTICK = SDL3.SDL_INIT_JOYSTICK,
SDL_INIT_HAPTIC = SDL3.SDL_INIT_HAPTIC,
SDL_INIT_GAMEPAD = SDL3.SDL_INIT_GAMEPAD,
SDL_INIT_EVENTS = SDL3.SDL_INIT_EVENTS,
SDL_INIT_SENSOR = SDL3.SDL_INIT_SENSOR,
SDL_INIT_CAMERA = SDL3.SDL_INIT_CAMERA,
}
}

View File

@ -1,5 +0,0 @@
# Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
# See the LICENCE file in the repository root for full licence text.
--with-attribute
SDL_InitFlags=Flags

View File

@ -9,11 +9,6 @@ namespace SDL
[Typedef]
public enum SDL_KeyboardID : UInt32;
public partial struct SDL_Keysym
{
public SDL_Keymod Mod => (SDL_Keymod)mod;
}
public static partial class SDL3
{
[MustDisposeResource]

View File

@ -1,8 +1,282 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
namespace SDL
{
[Typedef]
public enum SDL_Keycode : UInt32
{
SDLK_UNKNOWN = SDL3.SDLK_UNKNOWN,
SDLK_RETURN = SDL3.SDLK_RETURN,
SDLK_ESCAPE = SDL3.SDLK_ESCAPE,
SDLK_BACKSPACE = SDL3.SDLK_BACKSPACE,
SDLK_TAB = SDL3.SDLK_TAB,
SDLK_SPACE = SDL3.SDLK_SPACE,
SDLK_EXCLAIM = SDL3.SDLK_EXCLAIM,
SDLK_DBLAPOSTROPHE = SDL3.SDLK_DBLAPOSTROPHE,
SDLK_HASH = SDL3.SDLK_HASH,
SDLK_PERCENT = SDL3.SDLK_PERCENT,
SDLK_DOLLAR = SDL3.SDLK_DOLLAR,
SDLK_AMPERSAND = SDL3.SDLK_AMPERSAND,
SDLK_APOSTROPHE = SDL3.SDLK_APOSTROPHE,
SDLK_LEFTPAREN = SDL3.SDLK_LEFTPAREN,
SDLK_RIGHTPAREN = SDL3.SDLK_RIGHTPAREN,
SDLK_ASTERISK = SDL3.SDLK_ASTERISK,
SDLK_PLUS = SDL3.SDLK_PLUS,
SDLK_COMMA = SDL3.SDLK_COMMA,
SDLK_MINUS = SDL3.SDLK_MINUS,
SDLK_PERIOD = SDL3.SDLK_PERIOD,
SDLK_SLASH = SDL3.SDLK_SLASH,
SDLK_0 = SDL3.SDLK_0,
SDLK_1 = SDL3.SDLK_1,
SDLK_2 = SDL3.SDLK_2,
SDLK_3 = SDL3.SDLK_3,
SDLK_4 = SDL3.SDLK_4,
SDLK_5 = SDL3.SDLK_5,
SDLK_6 = SDL3.SDLK_6,
SDLK_7 = SDL3.SDLK_7,
SDLK_8 = SDL3.SDLK_8,
SDLK_9 = SDL3.SDLK_9,
SDLK_COLON = SDL3.SDLK_COLON,
SDLK_SEMICOLON = SDL3.SDLK_SEMICOLON,
SDLK_LESS = SDL3.SDLK_LESS,
SDLK_EQUALS = SDL3.SDLK_EQUALS,
SDLK_GREATER = SDL3.SDLK_GREATER,
SDLK_QUESTION = SDL3.SDLK_QUESTION,
SDLK_AT = SDL3.SDLK_AT,
SDLK_LEFTBRACKET = SDL3.SDLK_LEFTBRACKET,
SDLK_BACKSLASH = SDL3.SDLK_BACKSLASH,
SDLK_RIGHTBRACKET = SDL3.SDLK_RIGHTBRACKET,
SDLK_CARET = SDL3.SDLK_CARET,
SDLK_UNDERSCORE = SDL3.SDLK_UNDERSCORE,
SDLK_GRAVE = SDL3.SDLK_GRAVE,
SDLK_a = SDL3.SDLK_a,
SDLK_b = SDL3.SDLK_b,
SDLK_c = SDL3.SDLK_c,
SDLK_d = SDL3.SDLK_d,
SDLK_e = SDL3.SDLK_e,
SDLK_f = SDL3.SDLK_f,
SDLK_g = SDL3.SDLK_g,
SDLK_h = SDL3.SDLK_h,
SDLK_i = SDL3.SDLK_i,
SDLK_j = SDL3.SDLK_j,
SDLK_k = SDL3.SDLK_k,
SDLK_l = SDL3.SDLK_l,
SDLK_m = SDL3.SDLK_m,
SDLK_n = SDL3.SDLK_n,
SDLK_o = SDL3.SDLK_o,
SDLK_p = SDL3.SDLK_p,
SDLK_q = SDL3.SDLK_q,
SDLK_r = SDL3.SDLK_r,
SDLK_s = SDL3.SDLK_s,
SDLK_t = SDL3.SDLK_t,
SDLK_u = SDL3.SDLK_u,
SDLK_v = SDL3.SDLK_v,
SDLK_w = SDL3.SDLK_w,
SDLK_x = SDL3.SDLK_x,
SDLK_y = SDL3.SDLK_y,
SDLK_z = SDL3.SDLK_z,
SDLK_CAPSLOCK = SDL3.SDLK_CAPSLOCK,
SDLK_F1 = SDL3.SDLK_F1,
SDLK_F2 = SDL3.SDLK_F2,
SDLK_F3 = SDL3.SDLK_F3,
SDLK_F4 = SDL3.SDLK_F4,
SDLK_F5 = SDL3.SDLK_F5,
SDLK_F6 = SDL3.SDLK_F6,
SDLK_F7 = SDL3.SDLK_F7,
SDLK_F8 = SDL3.SDLK_F8,
SDLK_F9 = SDL3.SDLK_F9,
SDLK_F10 = SDL3.SDLK_F10,
SDLK_F11 = SDL3.SDLK_F11,
SDLK_F12 = SDL3.SDLK_F12,
SDLK_PRINTSCREEN = SDL3.SDLK_PRINTSCREEN,
SDLK_SCROLLLOCK = SDL3.SDLK_SCROLLLOCK,
SDLK_PAUSE = SDL3.SDLK_PAUSE,
SDLK_INSERT = SDL3.SDLK_INSERT,
SDLK_HOME = SDL3.SDLK_HOME,
SDLK_PAGEUP = SDL3.SDLK_PAGEUP,
SDLK_DELETE = SDL3.SDLK_DELETE,
SDLK_END = SDL3.SDLK_END,
SDLK_PAGEDOWN = SDL3.SDLK_PAGEDOWN,
SDLK_RIGHT = SDL3.SDLK_RIGHT,
SDLK_LEFT = SDL3.SDLK_LEFT,
SDLK_DOWN = SDL3.SDLK_DOWN,
SDLK_UP = SDL3.SDLK_UP,
SDLK_NUMLOCKCLEAR = SDL3.SDLK_NUMLOCKCLEAR,
SDLK_KP_DIVIDE = SDL3.SDLK_KP_DIVIDE,
SDLK_KP_MULTIPLY = SDL3.SDLK_KP_MULTIPLY,
SDLK_KP_MINUS = SDL3.SDLK_KP_MINUS,
SDLK_KP_PLUS = SDL3.SDLK_KP_PLUS,
SDLK_KP_ENTER = SDL3.SDLK_KP_ENTER,
SDLK_KP_1 = SDL3.SDLK_KP_1,
SDLK_KP_2 = SDL3.SDLK_KP_2,
SDLK_KP_3 = SDL3.SDLK_KP_3,
SDLK_KP_4 = SDL3.SDLK_KP_4,
SDLK_KP_5 = SDL3.SDLK_KP_5,
SDLK_KP_6 = SDL3.SDLK_KP_6,
SDLK_KP_7 = SDL3.SDLK_KP_7,
SDLK_KP_8 = SDL3.SDLK_KP_8,
SDLK_KP_9 = SDL3.SDLK_KP_9,
SDLK_KP_0 = SDL3.SDLK_KP_0,
SDLK_KP_PERIOD = SDL3.SDLK_KP_PERIOD,
SDLK_APPLICATION = SDL3.SDLK_APPLICATION,
SDLK_POWER = SDL3.SDLK_POWER,
SDLK_KP_EQUALS = SDL3.SDLK_KP_EQUALS,
SDLK_F13 = SDL3.SDLK_F13,
SDLK_F14 = SDL3.SDLK_F14,
SDLK_F15 = SDL3.SDLK_F15,
SDLK_F16 = SDL3.SDLK_F16,
SDLK_F17 = SDL3.SDLK_F17,
SDLK_F18 = SDL3.SDLK_F18,
SDLK_F19 = SDL3.SDLK_F19,
SDLK_F20 = SDL3.SDLK_F20,
SDLK_F21 = SDL3.SDLK_F21,
SDLK_F22 = SDL3.SDLK_F22,
SDLK_F23 = SDL3.SDLK_F23,
SDLK_F24 = SDL3.SDLK_F24,
SDLK_EXECUTE = SDL3.SDLK_EXECUTE,
SDLK_HELP = SDL3.SDLK_HELP,
SDLK_MENU = SDL3.SDLK_MENU,
SDLK_SELECT = SDL3.SDLK_SELECT,
SDLK_STOP = SDL3.SDLK_STOP,
SDLK_AGAIN = SDL3.SDLK_AGAIN,
SDLK_UNDO = SDL3.SDLK_UNDO,
SDLK_CUT = SDL3.SDLK_CUT,
SDLK_COPY = SDL3.SDLK_COPY,
SDLK_PASTE = SDL3.SDLK_PASTE,
SDLK_FIND = SDL3.SDLK_FIND,
SDLK_MUTE = SDL3.SDLK_MUTE,
SDLK_VOLUMEUP = SDL3.SDLK_VOLUMEUP,
SDLK_VOLUMEDOWN = SDL3.SDLK_VOLUMEDOWN,
SDLK_KP_COMMA = SDL3.SDLK_KP_COMMA,
SDLK_KP_EQUALSAS400 = SDL3.SDLK_KP_EQUALSAS400,
SDLK_ALTERASE = SDL3.SDLK_ALTERASE,
SDLK_SYSREQ = SDL3.SDLK_SYSREQ,
SDLK_CANCEL = SDL3.SDLK_CANCEL,
SDLK_CLEAR = SDL3.SDLK_CLEAR,
SDLK_PRIOR = SDL3.SDLK_PRIOR,
SDLK_RETURN2 = SDL3.SDLK_RETURN2,
SDLK_SEPARATOR = SDL3.SDLK_SEPARATOR,
SDLK_OUT = SDL3.SDLK_OUT,
SDLK_OPER = SDL3.SDLK_OPER,
SDLK_CLEARAGAIN = SDL3.SDLK_CLEARAGAIN,
SDLK_CRSEL = SDL3.SDLK_CRSEL,
SDLK_EXSEL = SDL3.SDLK_EXSEL,
SDLK_KP_00 = SDL3.SDLK_KP_00,
SDLK_KP_000 = SDL3.SDLK_KP_000,
SDLK_THOUSANDSSEPARATOR = SDL3.SDLK_THOUSANDSSEPARATOR,
SDLK_DECIMALSEPARATOR = SDL3.SDLK_DECIMALSEPARATOR,
SDLK_CURRENCYUNIT = SDL3.SDLK_CURRENCYUNIT,
SDLK_CURRENCYSUBUNIT = SDL3.SDLK_CURRENCYSUBUNIT,
SDLK_KP_LEFTPAREN = SDL3.SDLK_KP_LEFTPAREN,
SDLK_KP_RIGHTPAREN = SDL3.SDLK_KP_RIGHTPAREN,
SDLK_KP_LEFTBRACE = SDL3.SDLK_KP_LEFTBRACE,
SDLK_KP_RIGHTBRACE = SDL3.SDLK_KP_RIGHTBRACE,
SDLK_KP_TAB = SDL3.SDLK_KP_TAB,
SDLK_KP_BACKSPACE = SDL3.SDLK_KP_BACKSPACE,
SDLK_KP_A = SDL3.SDLK_KP_A,
SDLK_KP_B = SDL3.SDLK_KP_B,
SDLK_KP_C = SDL3.SDLK_KP_C,
SDLK_KP_D = SDL3.SDLK_KP_D,
SDLK_KP_E = SDL3.SDLK_KP_E,
SDLK_KP_F = SDL3.SDLK_KP_F,
SDLK_KP_XOR = SDL3.SDLK_KP_XOR,
SDLK_KP_POWER = SDL3.SDLK_KP_POWER,
SDLK_KP_PERCENT = SDL3.SDLK_KP_PERCENT,
SDLK_KP_LESS = SDL3.SDLK_KP_LESS,
SDLK_KP_GREATER = SDL3.SDLK_KP_GREATER,
SDLK_KP_AMPERSAND = SDL3.SDLK_KP_AMPERSAND,
SDLK_KP_DBLAMPERSAND = SDL3.SDLK_KP_DBLAMPERSAND,
SDLK_KP_VERTICALBAR = SDL3.SDLK_KP_VERTICALBAR,
SDLK_KP_DBLVERTICALBAR = SDL3.SDLK_KP_DBLVERTICALBAR,
SDLK_KP_COLON = SDL3.SDLK_KP_COLON,
SDLK_KP_HASH = SDL3.SDLK_KP_HASH,
SDLK_KP_SPACE = SDL3.SDLK_KP_SPACE,
SDLK_KP_AT = SDL3.SDLK_KP_AT,
SDLK_KP_EXCLAM = SDL3.SDLK_KP_EXCLAM,
SDLK_KP_MEMSTORE = SDL3.SDLK_KP_MEMSTORE,
SDLK_KP_MEMRECALL = SDL3.SDLK_KP_MEMRECALL,
SDLK_KP_MEMCLEAR = SDL3.SDLK_KP_MEMCLEAR,
SDLK_KP_MEMADD = SDL3.SDLK_KP_MEMADD,
SDLK_KP_MEMSUBTRACT = SDL3.SDLK_KP_MEMSUBTRACT,
SDLK_KP_MEMMULTIPLY = SDL3.SDLK_KP_MEMMULTIPLY,
SDLK_KP_MEMDIVIDE = SDL3.SDLK_KP_MEMDIVIDE,
SDLK_KP_PLUSMINUS = SDL3.SDLK_KP_PLUSMINUS,
SDLK_KP_CLEAR = SDL3.SDLK_KP_CLEAR,
SDLK_KP_CLEARENTRY = SDL3.SDLK_KP_CLEARENTRY,
SDLK_KP_BINARY = SDL3.SDLK_KP_BINARY,
SDLK_KP_OCTAL = SDL3.SDLK_KP_OCTAL,
SDLK_KP_DECIMAL = SDL3.SDLK_KP_DECIMAL,
SDLK_KP_HEXADECIMAL = SDL3.SDLK_KP_HEXADECIMAL,
SDLK_LCTRL = SDL3.SDLK_LCTRL,
SDLK_LSHIFT = SDL3.SDLK_LSHIFT,
SDLK_LALT = SDL3.SDLK_LALT,
SDLK_LGUI = SDL3.SDLK_LGUI,
SDLK_RCTRL = SDL3.SDLK_RCTRL,
SDLK_RSHIFT = SDL3.SDLK_RSHIFT,
SDLK_RALT = SDL3.SDLK_RALT,
SDLK_RGUI = SDL3.SDLK_RGUI,
SDLK_MODE = SDL3.SDLK_MODE,
SDLK_AUDIONEXT = SDL3.SDLK_AUDIONEXT,
SDLK_AUDIOPREV = SDL3.SDLK_AUDIOPREV,
SDLK_AUDIOSTOP = SDL3.SDLK_AUDIOSTOP,
SDLK_AUDIOPLAY = SDL3.SDLK_AUDIOPLAY,
SDLK_AUDIOMUTE = SDL3.SDLK_AUDIOMUTE,
SDLK_MEDIASELECT = SDL3.SDLK_MEDIASELECT,
SDLK_WWW = SDL3.SDLK_WWW,
SDLK_MAIL = SDL3.SDLK_MAIL,
SDLK_CALCULATOR = SDL3.SDLK_CALCULATOR,
SDLK_COMPUTER = SDL3.SDLK_COMPUTER,
SDLK_AC_SEARCH = SDL3.SDLK_AC_SEARCH,
SDLK_AC_HOME = SDL3.SDLK_AC_HOME,
SDLK_AC_BACK = SDL3.SDLK_AC_BACK,
SDLK_AC_FORWARD = SDL3.SDLK_AC_FORWARD,
SDLK_AC_STOP = SDL3.SDLK_AC_STOP,
SDLK_AC_REFRESH = SDL3.SDLK_AC_REFRESH,
SDLK_AC_BOOKMARKS = SDL3.SDLK_AC_BOOKMARKS,
SDLK_BRIGHTNESSDOWN = SDL3.SDLK_BRIGHTNESSDOWN,
SDLK_BRIGHTNESSUP = SDL3.SDLK_BRIGHTNESSUP,
SDLK_DISPLAYSWITCH = SDL3.SDLK_DISPLAYSWITCH,
SDLK_KBDILLUMTOGGLE = SDL3.SDLK_KBDILLUMTOGGLE,
SDLK_KBDILLUMDOWN = SDL3.SDLK_KBDILLUMDOWN,
SDLK_KBDILLUMUP = SDL3.SDLK_KBDILLUMUP,
SDLK_EJECT = SDL3.SDLK_EJECT,
SDLK_SLEEP = SDL3.SDLK_SLEEP,
SDLK_APP1 = SDL3.SDLK_APP1,
SDLK_APP2 = SDL3.SDLK_APP2,
SDLK_AUDIOREWIND = SDL3.SDLK_AUDIOREWIND,
SDLK_AUDIOFASTFORWARD = SDL3.SDLK_AUDIOFASTFORWARD,
SDLK_SOFTLEFT = SDL3.SDLK_SOFTLEFT,
SDLK_SOFTRIGHT = SDL3.SDLK_SOFTRIGHT,
SDLK_CALL = SDL3.SDLK_CALL,
SDLK_ENDCALL = SDL3.SDLK_ENDCALL,
}
[Flags]
[Typedef]
public enum SDL_Keymod : UInt16
{
SDL_KMOD_NONE = (UInt16)SDL3.SDL_KMOD_NONE,
SDL_KMOD_LSHIFT = (UInt16)SDL3.SDL_KMOD_LSHIFT,
SDL_KMOD_RSHIFT = (UInt16)SDL3.SDL_KMOD_RSHIFT,
SDL_KMOD_LCTRL = (UInt16)SDL3.SDL_KMOD_LCTRL,
SDL_KMOD_RCTRL = (UInt16)SDL3.SDL_KMOD_RCTRL,
SDL_KMOD_LALT = (UInt16)SDL3.SDL_KMOD_LALT,
SDL_KMOD_RALT = (UInt16)SDL3.SDL_KMOD_RALT,
SDL_KMOD_LGUI = (UInt16)SDL3.SDL_KMOD_LGUI,
SDL_KMOD_RGUI = (UInt16)SDL3.SDL_KMOD_RGUI,
SDL_KMOD_NUM = (UInt16)SDL3.SDL_KMOD_NUM,
SDL_KMOD_CAPS = (UInt16)SDL3.SDL_KMOD_CAPS,
SDL_KMOD_MODE = (UInt16)SDL3.SDL_KMOD_MODE,
SDL_KMOD_SCROLL = (UInt16)SDL3.SDL_KMOD_SCROLL,
SDL_KMOD_CTRL = (UInt16)SDL3.SDL_KMOD_CTRL,
SDL_KMOD_SHIFT = (UInt16)SDL3.SDL_KMOD_SHIFT,
SDL_KMOD_ALT = (UInt16)SDL3.SDL_KMOD_ALT,
SDL_KMOD_GUI = (UInt16)SDL3.SDL_KMOD_GUI,
}
public static partial class SDL3
{
[Macro]

View File

@ -1,9 +0,0 @@
# Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
# See the LICENCE file in the repository root for full licence text.
--with-attribute
SDL_Keymod=Flags
# Remap the C `SDL_KeyCode` enum to the `SDL_Keycode` typedef
--remap
SDL_KeyCode=SDL_Keycode

View File

@ -1,22 +1,26 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
using System;
namespace SDL
{
public partial struct SDL_MessageBoxButtonData
[Flags]
[Typedef]
public enum SDL_MessageBoxFlags : UInt32
{
public SDL_MessageBoxButtonFlags Flags => (SDL_MessageBoxButtonFlags)flags;
SDL_MESSAGEBOX_ERROR = SDL3.SDL_MESSAGEBOX_ERROR,
SDL_MESSAGEBOX_WARNING = SDL3.SDL_MESSAGEBOX_WARNING,
SDL_MESSAGEBOX_INFORMATION = SDL3.SDL_MESSAGEBOX_INFORMATION,
SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT = SDL3.SDL_MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT,
SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT = SDL3.SDL_MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT,
}
public partial struct SDL_MessageBoxData
[Flags]
[Typedef]
public enum SDL_MessageBoxButtonFlags : UInt32
{
public SDL_MessageBoxFlags Flags => (SDL_MessageBoxFlags)flags;
}
public static partial class SDL3
{
// public static int SDL_ShowSimpleMessageBox([NativeTypeName("Uint32")] uint flags, [NativeTypeName("const char *")] byte* title, [NativeTypeName("const char *")] byte* message, SDL_Window* window);
public static unsafe int SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags flags, Utf8String title, Utf8String message, SDL_Window* window)
=> SDL_ShowSimpleMessageBox((uint)flags, title, message, window);
SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = SDL3.SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT,
SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = SDL3.SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT,
}
}

View File

@ -1,6 +0,0 @@
# Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
# See the LICENCE file in the repository root for full licence text.
--with-attribute
SDL_MessageBoxFlags=Flags
SDL_MessageBoxButtonFlags=Flags

View File

@ -19,7 +19,7 @@ namespace SDL
}
[Flags]
public enum SDLButtonMask
public enum SDLButtonMask : uint
{
SDL_BUTTON_LMASK = SDL3.SDL_BUTTON_LMASK,
SDL_BUTTON_MMASK = SDL3.SDL_BUTTON_MMASK,

View File

@ -1,16 +0,0 @@
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
// See the LICENCE file in the repository root for full licence text.
namespace SDL
{
public partial struct SDL_RendererInfo
{
public SDL_RendererFlags Flags => (SDL_RendererFlags)flags;
}
public static partial class SDL3
{
public static unsafe SDL_Renderer* SDL_CreateRenderer(SDL_Window* window, Utf8String name, SDL_RendererFlags flags)
=> SDL_CreateRenderer(window, name, (uint)flags);
}
}

View File

@ -1,5 +0,0 @@
# Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
# See the LICENCE file in the repository root for full licence text.
--with-attribute
SDL_RendererFlags=Flags

View File

@ -6,17 +6,22 @@ namespace SDL
public static partial class SDL3
{
[Macro]
public static void SDL_VERSION(ref SDL_Version version)
{
version.major = SDL_MAJOR_VERSION;
version.minor = SDL_MINOR_VERSION;
version.patch = SDL_PATCHLEVEL;
}
public static int SDL_VERSIONNUM(int major, int minor, int patch) =>
((major) * 1000000 + (minor) * 1000 + (patch));
[Macro]
public static int SDL_VERSIONNUM(int X, int Y, int Z) => ((X) << 24 | (Y) << 8 | (Z) << 0);
public static int SDL_VERSIONNUM_MAJOR(int version) => ((version) / 1000000);
[Macro]
public static bool SDL_VERSION_ATLEAST(int X, int Y, int Z) => SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z);
public static int SDL_VERSIONNUM_MINOR(int version) => (((version) / 1000) % 1000);
[Macro]
public static int SDL_VERSIONNUM_MICRO(int version) => ((version) % 1000);
[Constant]
public static readonly int SDL_VERSION = SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_MICRO_VERSION);
[Macro]
public static bool SDL_VERSION_ATLEAST(int X, int Y, int Z) => SDL_VERSION >= SDL_VERSIONNUM(X, Y, Z);
}
}

View File

@ -14,7 +14,7 @@ namespace SDL
[Flags]
[Typedef]
public enum SDL_WindowFlags : uint
public enum SDL_WindowFlags : UInt64
{
SDL_WINDOW_FULLSCREEN = SDL3.SDL_WINDOW_FULLSCREEN,
SDL_WINDOW_OPENGL = SDL3.SDL_WINDOW_OPENGL,

View File

@ -79,6 +79,7 @@ def add(s: str):
headers = [
add("SDL3/SDL.h"),
add("SDL3/SDL_atomic.h"),
add("SDL3/SDL_audio.h"),
add("SDL3/SDL_blendmode.h"),
@ -218,7 +219,6 @@ base_command = [
"void*=IntPtr",
"char=byte",
"wchar_t *=IntPtr", # wchar_t has a platform-defined size
typedef("SDL_Keycode"),
"--define-macro",
"SDL_FUNCTION_POINTER_IS_VOID_POINTER",