diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..c8398ea
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "clangsharppinvokegenerator": {
+ "version": "17.0.1",
+ "commands": [
+ "ClangSharpPInvokeGenerator"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.idea/.idea.SDL3-CS/.idea/.gitignore b/.idea/.idea.SDL3-CS/.idea/.gitignore
new file mode 100644
index 0000000..744eb9c
--- /dev/null
+++ b/.idea/.idea.SDL3-CS/.idea/.gitignore
@@ -0,0 +1,11 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/modules.xml
+/projectSettingsUpdater.xml
+/.idea.SDL3-CS.iml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.SDL3-CS/.idea/encodings.xml b/.idea/.idea.SDL3-CS/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.SDL3-CS/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SDL3-CS/.idea/indexLayout.xml b/.idea/.idea.SDL3-CS/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.SDL3-CS/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SDL3-CS/.idea/misc.xml b/.idea/.idea.SDL3-CS/.idea/misc.xml
new file mode 100644
index 0000000..cafab9f
--- /dev/null
+++ b/.idea/.idea.SDL3-CS/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SDL3-CS/.idea/vcs.xml b/.idea/.idea.SDL3-CS/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.SDL3-CS/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SDL3-CS/NativeTypeNameAttribute.cs b/SDL3-CS/NativeTypeNameAttribute.cs
new file mode 100644
index 0000000..ef21851
--- /dev/null
+++ b/SDL3-CS/NativeTypeNameAttribute.cs
@@ -0,0 +1,25 @@
+//
+
+using System;
+using System.Diagnostics;
+
+namespace SDL
+{
+ /// Defines the type of a member as it was used in the native signature.
+ [AttributeUsage(AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, AllowMultiple = false, Inherited = true)]
+ [Conditional("DEBUG")]
+ internal sealed partial class NativeTypeNameAttribute : Attribute
+ {
+ private readonly string _name;
+
+ /// Initializes a new instance of the class.
+ /// The name of the type that was used in the native signature.
+ public NativeTypeNameAttribute(string name)
+ {
+ _name = name;
+ }
+
+ /// Gets the name of the type that was used in the native signature.
+ public string Name => _name;
+ }
+}
diff --git a/SDL3-CS/SDL.licenseheader b/SDL3-CS/SDL.licenseheader
new file mode 100644
index 0000000..fa92b93
--- /dev/null
+++ b/SDL3-CS/SDL.licenseheader
@@ -0,0 +1,24 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
diff --git a/SDL3-CS/SDL3-CS.csproj b/SDL3-CS/SDL3-CS.csproj
new file mode 100644
index 0000000..6b3d095
--- /dev/null
+++ b/SDL3-CS/SDL3-CS.csproj
@@ -0,0 +1,11 @@
+
+
+
+ net8.0
+ SDL
+ enable
+ true
+ $(NoWarn);SYSLIB1054;CA1401
+
+
+
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_atomic.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_atomic.g.cs
new file mode 100644
index 0000000..35662a2
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_atomic.g.cs
@@ -0,0 +1,76 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_AtomicInt
+ {
+ public int value;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_TryLockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_LockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UnlockSpinlock([NativeTypeName("SDL_SpinLock *")] int* @lock);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_MemoryBarrierReleaseFunction();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_MemoryBarrierAcquireFunction();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_AtomicCompareAndSwap(SDL_AtomicInt* a, int oldval, int newval);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AtomicSet(SDL_AtomicInt* a, int v);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AtomicGet(SDL_AtomicInt* a);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AtomicAdd(SDL_AtomicInt* a, int v);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_AtomicCompareAndSwapPointer(void** a, void* oldval, void* newval);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_AtomicSetPtr(void** a, void* v);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_AtomicGetPtr(void** a);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_audio.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_audio.g.cs
new file mode 100644
index 0000000..54a221f
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_audio.g.cs
@@ -0,0 +1,232 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_AudioSpec
+ {
+ [NativeTypeName("SDL_AudioFormat")]
+ public ushort format;
+
+ public int channels;
+
+ public int freq;
+ }
+
+ public partial struct SDL_AudioStream
+ {
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumAudioDrivers();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetAudioDriver(int index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetCurrentAudioDriver();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_AudioDeviceID *")]
+ public static extern uint* SDL_GetAudioOutputDevices(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_AudioDeviceID *")]
+ public static extern uint* SDL_GetAudioCaptureDevices(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetAudioDeviceName([NativeTypeName("SDL_AudioDeviceID")] uint devid);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetAudioDeviceFormat([NativeTypeName("SDL_AudioDeviceID")] uint devid, SDL_AudioSpec* spec, int* sample_frames);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_AudioDeviceID")]
+ public static extern uint SDL_OpenAudioDevice([NativeTypeName("SDL_AudioDeviceID")] uint devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_PauseAudioDevice([NativeTypeName("SDL_AudioDeviceID")] uint dev);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ResumeAudioDevice([NativeTypeName("SDL_AudioDeviceID")] uint dev);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_AudioDevicePaused([NativeTypeName("SDL_AudioDeviceID")] uint dev);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_CloseAudioDevice([NativeTypeName("SDL_AudioDeviceID")] uint devid);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_BindAudioStreams([NativeTypeName("SDL_AudioDeviceID")] uint devid, SDL_AudioStream** streams, int num_streams);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_BindAudioStream([NativeTypeName("SDL_AudioDeviceID")] uint devid, SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UnbindAudioStreams(SDL_AudioStream** streams, int num_streams);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UnbindAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_AudioDeviceID")]
+ public static extern uint SDL_GetAudioStreamDevice(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_AudioStream* SDL_CreateAudioStream([NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_PropertiesID")]
+ public static extern uint SDL_GetAudioStreamProperties(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetAudioStreamFormat(SDL_AudioStream* stream, SDL_AudioSpec* src_spec, SDL_AudioSpec* dst_spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetAudioStreamFormat(SDL_AudioStream* stream, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern float SDL_GetAudioStreamFrequencyRatio(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetAudioStreamFrequencyRatio(SDL_AudioStream* stream, float ratio);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_PutAudioStreamData(SDL_AudioStream* stream, [NativeTypeName("const void *")] void* buf, int len);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetAudioStreamData(SDL_AudioStream* stream, void* buf, int len);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetAudioStreamAvailable(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetAudioStreamQueued(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_FlushAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ClearAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_LockAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_UnlockAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetAudioStreamGetCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetAudioStreamPutCallback(SDL_AudioStream* stream, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_DestroyAudioStream(SDL_AudioStream* stream);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_AudioStream* SDL_OpenAudioDeviceStream([NativeTypeName("SDL_AudioDeviceID")] uint devid, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* spec, [NativeTypeName("SDL_AudioStreamCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetAudioPostmixCallback([NativeTypeName("SDL_AudioDeviceID")] uint devid, [NativeTypeName("SDL_AudioPostmixCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_LoadWAV_IO(SDL_IOStream* src, [NativeTypeName("SDL_bool")] int closeio, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_LoadWAV([NativeTypeName("const char *")] sbyte* path, SDL_AudioSpec* spec, [NativeTypeName("Uint8 **")] byte** audio_buf, [NativeTypeName("Uint32 *")] uint* audio_len);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_MixAudioFormat([NativeTypeName("Uint8 *")] byte* dst, [NativeTypeName("const Uint8 *")] byte* src, [NativeTypeName("SDL_AudioFormat")] ushort format, [NativeTypeName("Uint32")] uint len, int volume);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ConvertAudioSamples([NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* src_spec, [NativeTypeName("const Uint8 *")] byte* src_data, int src_len, [NativeTypeName("const SDL_AudioSpec *")] SDL_AudioSpec* dst_spec, [NativeTypeName("Uint8 **")] byte** dst_data, int* dst_len);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetSilenceValueForFormat([NativeTypeName("SDL_AudioFormat")] ushort format);
+
+ [NativeTypeName("#define SDL_AUDIO_MASK_BITSIZE (0xFF)")]
+ public const int SDL_AUDIO_MASK_BITSIZE = (0xFF);
+
+ [NativeTypeName("#define SDL_AUDIO_MASK_FLOAT (1<<8)")]
+ public const int SDL_AUDIO_MASK_FLOAT = (1 << 8);
+
+ [NativeTypeName("#define SDL_AUDIO_MASK_BIG_ENDIAN (1<<12)")]
+ public const int SDL_AUDIO_MASK_BIG_ENDIAN = (1 << 12);
+
+ [NativeTypeName("#define SDL_AUDIO_MASK_SIGNED (1<<15)")]
+ public const int SDL_AUDIO_MASK_SIGNED = (1 << 15);
+
+ [NativeTypeName("#define SDL_AUDIO_U8 0x0008")]
+ public const int SDL_AUDIO_U8 = 0x0008;
+
+ [NativeTypeName("#define SDL_AUDIO_S8 0x8008")]
+ public const int SDL_AUDIO_S8 = 0x8008;
+
+ [NativeTypeName("#define SDL_AUDIO_S16LE 0x8010")]
+ public const int SDL_AUDIO_S16LE = 0x8010;
+
+ [NativeTypeName("#define SDL_AUDIO_S16BE 0x9010")]
+ public const int SDL_AUDIO_S16BE = 0x9010;
+
+ [NativeTypeName("#define SDL_AUDIO_S32LE 0x8020")]
+ public const int SDL_AUDIO_S32LE = 0x8020;
+
+ [NativeTypeName("#define SDL_AUDIO_S32BE 0x9020")]
+ public const int SDL_AUDIO_S32BE = 0x9020;
+
+ [NativeTypeName("#define SDL_AUDIO_F32LE 0x8120")]
+ public const int SDL_AUDIO_F32LE = 0x8120;
+
+ [NativeTypeName("#define SDL_AUDIO_F32BE 0x9120")]
+ public const int SDL_AUDIO_F32BE = 0x9120;
+
+ [NativeTypeName("#define SDL_AUDIO_S16 SDL_AUDIO_S16LE")]
+ public const int SDL_AUDIO_S16 = 0x8010;
+
+ [NativeTypeName("#define SDL_AUDIO_S32 SDL_AUDIO_S32LE")]
+ public const int SDL_AUDIO_S32 = 0x8020;
+
+ [NativeTypeName("#define SDL_AUDIO_F32 SDL_AUDIO_F32LE")]
+ public const int SDL_AUDIO_F32 = 0x8120;
+
+ [NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_OUTPUT ((SDL_AudioDeviceID) 0xFFFFFFFF)")]
+ public const uint SDL_AUDIO_DEVICE_DEFAULT_OUTPUT = ((uint)(0xFFFFFFFF));
+
+ [NativeTypeName("#define SDL_AUDIO_DEVICE_DEFAULT_CAPTURE ((SDL_AudioDeviceID) 0xFFFFFFFE)")]
+ public const uint SDL_AUDIO_DEVICE_DEFAULT_CAPTURE = ((uint)(0xFFFFFFFE));
+
+ [NativeTypeName("#define SDL_MIX_MAXVOLUME 128")]
+ public const int SDL_MIX_MAXVOLUME = 128;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_blendmode.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_blendmode.g.cs
new file mode 100644
index 0000000..d9f93dd
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_blendmode.g.cs
@@ -0,0 +1,68 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+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,
+ SDL_BLENDOPERATION_SUBTRACT = 0x2,
+ SDL_BLENDOPERATION_REV_SUBTRACT = 0x3,
+ SDL_BLENDOPERATION_MINIMUM = 0x4,
+ SDL_BLENDOPERATION_MAXIMUM = 0x5,
+ }
+
+ public enum SDL_BlendFactor
+ {
+ SDL_BLENDFACTOR_ZERO = 0x1,
+ SDL_BLENDFACTOR_ONE = 0x2,
+ SDL_BLENDFACTOR_SRC_COLOR = 0x3,
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4,
+ SDL_BLENDFACTOR_SRC_ALPHA = 0x5,
+ SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6,
+ SDL_BLENDFACTOR_DST_COLOR = 0x7,
+ SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8,
+ SDL_BLENDFACTOR_DST_ALPHA = 0x9,
+ SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA,
+ }
+
+ public static partial class SDL3
+ {
+ [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);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_camera.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_camera.g.cs
new file mode 100644
index 0000000..1a451f0
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_camera.g.cs
@@ -0,0 +1,107 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_Camera
+ {
+ }
+
+ public partial struct SDL_CameraSpec
+ {
+ public SDL_PixelFormatEnum format;
+
+ public int width;
+
+ public int height;
+
+ public int interval_numerator;
+
+ public int interval_denominator;
+ }
+
+ public enum SDL_CameraPosition
+ {
+ SDL_CAMERA_POSITION_UNKNOWN,
+ SDL_CAMERA_POSITION_FRONT_FACING,
+ SDL_CAMERA_POSITION_BACK_FACING,
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumCameraDrivers();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetCameraDriver(int index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetCurrentCameraDriver();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_CameraDeviceID *")]
+ public static extern uint* SDL_GetCameraDevices(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_CameraSpec* SDL_GetCameraDeviceSupportedFormats([NativeTypeName("SDL_CameraDeviceID")] uint devid, int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetCameraDeviceName([NativeTypeName("SDL_CameraDeviceID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_CameraPosition SDL_GetCameraDevicePosition([NativeTypeName("SDL_CameraDeviceID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Camera* SDL_OpenCameraDevice([NativeTypeName("SDL_CameraDeviceID")] uint instance_id, [NativeTypeName("const SDL_CameraSpec *")] SDL_CameraSpec* spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetCameraPermissionState(SDL_Camera* camera);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_CameraDeviceID")]
+ public static extern uint SDL_GetCameraInstanceID(SDL_Camera* camera);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_PropertiesID")]
+ public static extern uint SDL_GetCameraProperties(SDL_Camera* camera);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetCameraFormat(SDL_Camera* camera, SDL_CameraSpec* spec);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Surface* SDL_AcquireCameraFrame(SDL_Camera* camera, [NativeTypeName("Uint64 *")] ulong* timestampNS);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ReleaseCameraFrame(SDL_Camera* camera, SDL_Surface* frame);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_CloseCamera(SDL_Camera* camera);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_clipboard.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_clipboard.g.cs
new file mode 100644
index 0000000..12ffb25
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_clipboard.g.cs
@@ -0,0 +1,67 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetClipboardText([NativeTypeName("const char *")] sbyte* text);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetClipboardText();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasClipboardText();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetPrimarySelectionText([NativeTypeName("const char *")] sbyte* text);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetPrimarySelectionText();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasPrimarySelectionText();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetClipboardData([NativeTypeName("SDL_ClipboardDataCallback")] delegate* unmanaged[Cdecl] callback, [NativeTypeName("SDL_ClipboardCleanupCallback")] delegate* unmanaged[Cdecl] cleanup, void* userdata, [NativeTypeName("const char **")] sbyte** mime_types, [NativeTypeName("size_t")] nuint num_mime_types);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ClearClipboardData();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_GetClipboardData([NativeTypeName("const char *")] sbyte* mime_type, [NativeTypeName("size_t *")] nuint* size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasClipboardData([NativeTypeName("const char *")] sbyte* mime_type);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_cpuinfo.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_cpuinfo.g.cs
new file mode 100644
index 0000000..e315d56
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_cpuinfo.g.cs
@@ -0,0 +1,104 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public static partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetCPUCount();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetCPUCacheLineSize();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasAltiVec();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasMMX();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasSSE();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasSSE2();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasSSE3();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasSSE41();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasSSE42();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasAVX();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasAVX2();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasAVX512F();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasARMSIMD();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasNEON();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasLSX();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasLASX();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetSystemRAM();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("size_t")]
+ public static extern nuint SDL_SIMDGetAlignment();
+
+ [NativeTypeName("#define SDL_CACHELINE_SIZE 128")]
+ public const int SDL_CACHELINE_SIZE = 128;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_dialog.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_dialog.g.cs
new file mode 100644
index 0000000..9b596bb
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_dialog.g.cs
@@ -0,0 +1,50 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public unsafe partial struct SDL_DialogFileFilter
+ {
+ [NativeTypeName("const char *")]
+ public sbyte* name;
+
+ [NativeTypeName("const char *")]
+ public sbyte* pattern;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_ShowOpenFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl] callback, void* userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, [NativeTypeName("const char *")] sbyte* default_location, [NativeTypeName("SDL_bool")] int allow_many);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_ShowSaveFileDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl] callback, void* userdata, SDL_Window* window, [NativeTypeName("const SDL_DialogFileFilter *")] SDL_DialogFileFilter* filters, [NativeTypeName("const char *")] sbyte* default_location);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_ShowOpenFolderDialog([NativeTypeName("SDL_DialogFileCallback")] delegate* unmanaged[Cdecl] callback, void* userdata, SDL_Window* window, [NativeTypeName("const char *")] sbyte* default_location, [NativeTypeName("SDL_bool")] int allow_many);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_error.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_error.g.cs
new file mode 100644
index 0000000..4786096
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_error.g.cs
@@ -0,0 +1,55 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+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 *")] sbyte* fmt, __arglist);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* 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);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_events.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_events.g.cs
new file mode 100644
index 0000000..7a7275a
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_events.g.cs
@@ -0,0 +1,1146 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public enum SDL_EventType
+ {
+ SDL_EVENT_FIRST = 0,
+ SDL_EVENT_QUIT = 0x100,
+ SDL_EVENT_TERMINATING,
+ SDL_EVENT_LOW_MEMORY,
+ SDL_EVENT_WILL_ENTER_BACKGROUND,
+ SDL_EVENT_DID_ENTER_BACKGROUND,
+ SDL_EVENT_WILL_ENTER_FOREGROUND,
+ SDL_EVENT_DID_ENTER_FOREGROUND,
+ SDL_EVENT_LOCALE_CHANGED,
+ SDL_EVENT_SYSTEM_THEME_CHANGED,
+ SDL_EVENT_DISPLAY_ORIENTATION = 0x151,
+ SDL_EVENT_DISPLAY_ADDED,
+ SDL_EVENT_DISPLAY_REMOVED,
+ SDL_EVENT_DISPLAY_MOVED,
+ SDL_EVENT_DISPLAY_CONTENT_SCALE_CHANGED,
+ SDL_EVENT_DISPLAY_HDR_STATE_CHANGED,
+ SDL_EVENT_DISPLAY_FIRST = SDL_EVENT_DISPLAY_ORIENTATION,
+ SDL_EVENT_DISPLAY_LAST = SDL_EVENT_DISPLAY_HDR_STATE_CHANGED,
+ SDL_EVENT_WINDOW_SHOWN = 0x202,
+ SDL_EVENT_WINDOW_HIDDEN,
+ SDL_EVENT_WINDOW_EXPOSED,
+ SDL_EVENT_WINDOW_MOVED,
+ SDL_EVENT_WINDOW_RESIZED,
+ SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED,
+ SDL_EVENT_WINDOW_MINIMIZED,
+ SDL_EVENT_WINDOW_MAXIMIZED,
+ SDL_EVENT_WINDOW_RESTORED,
+ SDL_EVENT_WINDOW_MOUSE_ENTER,
+ SDL_EVENT_WINDOW_MOUSE_LEAVE,
+ SDL_EVENT_WINDOW_FOCUS_GAINED,
+ SDL_EVENT_WINDOW_FOCUS_LOST,
+ SDL_EVENT_WINDOW_CLOSE_REQUESTED,
+ SDL_EVENT_WINDOW_TAKE_FOCUS,
+ SDL_EVENT_WINDOW_HIT_TEST,
+ SDL_EVENT_WINDOW_ICCPROF_CHANGED,
+ SDL_EVENT_WINDOW_DISPLAY_CHANGED,
+ SDL_EVENT_WINDOW_DISPLAY_SCALE_CHANGED,
+ SDL_EVENT_WINDOW_OCCLUDED,
+ SDL_EVENT_WINDOW_ENTER_FULLSCREEN,
+ SDL_EVENT_WINDOW_LEAVE_FULLSCREEN,
+ SDL_EVENT_WINDOW_DESTROYED,
+ SDL_EVENT_WINDOW_PEN_ENTER,
+ SDL_EVENT_WINDOW_PEN_LEAVE,
+ SDL_EVENT_WINDOW_FIRST = SDL_EVENT_WINDOW_SHOWN,
+ SDL_EVENT_WINDOW_LAST = SDL_EVENT_WINDOW_PEN_LEAVE,
+ SDL_EVENT_KEY_DOWN = 0x300,
+ SDL_EVENT_KEY_UP,
+ SDL_EVENT_TEXT_EDITING,
+ SDL_EVENT_TEXT_INPUT,
+ SDL_EVENT_KEYMAP_CHANGED,
+ SDL_EVENT_KEYBOARD_ADDED,
+ SDL_EVENT_KEYBOARD_REMOVED,
+ SDL_EVENT_MOUSE_MOTION = 0x400,
+ SDL_EVENT_MOUSE_BUTTON_DOWN,
+ SDL_EVENT_MOUSE_BUTTON_UP,
+ SDL_EVENT_MOUSE_WHEEL,
+ SDL_EVENT_MOUSE_ADDED,
+ SDL_EVENT_MOUSE_REMOVED,
+ SDL_EVENT_JOYSTICK_AXIS_MOTION = 0x600,
+ SDL_EVENT_JOYSTICK_BALL_MOTION,
+ SDL_EVENT_JOYSTICK_HAT_MOTION,
+ SDL_EVENT_JOYSTICK_BUTTON_DOWN,
+ SDL_EVENT_JOYSTICK_BUTTON_UP,
+ SDL_EVENT_JOYSTICK_ADDED,
+ SDL_EVENT_JOYSTICK_REMOVED,
+ SDL_EVENT_JOYSTICK_BATTERY_UPDATED,
+ SDL_EVENT_JOYSTICK_UPDATE_COMPLETE,
+ SDL_EVENT_GAMEPAD_AXIS_MOTION = 0x650,
+ SDL_EVENT_GAMEPAD_BUTTON_DOWN,
+ SDL_EVENT_GAMEPAD_BUTTON_UP,
+ SDL_EVENT_GAMEPAD_ADDED,
+ SDL_EVENT_GAMEPAD_REMOVED,
+ SDL_EVENT_GAMEPAD_REMAPPED,
+ SDL_EVENT_GAMEPAD_TOUCHPAD_DOWN,
+ SDL_EVENT_GAMEPAD_TOUCHPAD_MOTION,
+ SDL_EVENT_GAMEPAD_TOUCHPAD_UP,
+ SDL_EVENT_GAMEPAD_SENSOR_UPDATE,
+ SDL_EVENT_GAMEPAD_UPDATE_COMPLETE,
+ SDL_EVENT_GAMEPAD_STEAM_HANDLE_UPDATED,
+ SDL_EVENT_FINGER_DOWN = 0x700,
+ SDL_EVENT_FINGER_UP,
+ SDL_EVENT_FINGER_MOTION,
+ SDL_EVENT_CLIPBOARD_UPDATE = 0x900,
+ SDL_EVENT_DROP_FILE = 0x1000,
+ SDL_EVENT_DROP_TEXT,
+ SDL_EVENT_DROP_BEGIN,
+ SDL_EVENT_DROP_COMPLETE,
+ SDL_EVENT_DROP_POSITION,
+ SDL_EVENT_AUDIO_DEVICE_ADDED = 0x1100,
+ SDL_EVENT_AUDIO_DEVICE_REMOVED,
+ SDL_EVENT_AUDIO_DEVICE_FORMAT_CHANGED,
+ SDL_EVENT_SENSOR_UPDATE = 0x1200,
+ SDL_EVENT_PEN_DOWN = 0x1300,
+ SDL_EVENT_PEN_UP,
+ SDL_EVENT_PEN_MOTION,
+ SDL_EVENT_PEN_BUTTON_DOWN,
+ SDL_EVENT_PEN_BUTTON_UP,
+ SDL_EVENT_CAMERA_DEVICE_ADDED = 0x1400,
+ SDL_EVENT_CAMERA_DEVICE_REMOVED,
+ SDL_EVENT_CAMERA_DEVICE_APPROVED,
+ SDL_EVENT_CAMERA_DEVICE_DENIED,
+ SDL_EVENT_RENDER_TARGETS_RESET = 0x2000,
+ SDL_EVENT_RENDER_DEVICE_RESET,
+ SDL_EVENT_POLL_SENTINEL = 0x7F00,
+ SDL_EVENT_USER = 0x8000,
+ SDL_EVENT_LAST = 0xFFFF,
+ SDL_EVENT_ENUM_PADDING = 0x7FFFFFFF,
+ }
+
+ public partial struct SDL_CommonEvent
+ {
+ [NativeTypeName("Uint32")]
+ public uint type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+ }
+
+ public partial struct SDL_DisplayEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_DisplayID")]
+ public uint displayID;
+
+ [NativeTypeName("Sint32")]
+ public int data1;
+ }
+
+ public partial struct SDL_WindowEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("Sint32")]
+ public int data1;
+
+ [NativeTypeName("Sint32")]
+ public int data2;
+ }
+
+ public partial struct SDL_KeyboardDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_KeyboardID")]
+ public uint which;
+ }
+
+ public partial struct SDL_KeyboardEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_KeyboardID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint8")]
+ public byte repeat;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+
+ public SDL_Keysym keysym;
+ }
+
+ public unsafe partial struct SDL_TextEditingEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("char *")]
+ public sbyte* text;
+
+ [NativeTypeName("Sint32")]
+ public int start;
+
+ [NativeTypeName("Sint32")]
+ public int length;
+ }
+
+ public unsafe partial struct SDL_TextInputEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("char *")]
+ public sbyte* text;
+ }
+
+ public partial struct SDL_MouseDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_MouseID")]
+ public uint which;
+ }
+
+ public partial struct SDL_MouseMotionEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_MouseID")]
+ public uint which;
+
+ [NativeTypeName("Uint32")]
+ public uint state;
+
+ public float x;
+
+ public float y;
+
+ public float xrel;
+
+ public float yrel;
+ }
+
+ public partial struct SDL_MouseButtonEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_MouseID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte button;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint8")]
+ public byte clicks;
+
+ [NativeTypeName("Uint8")]
+ public byte padding;
+
+ public float x;
+
+ public float y;
+ }
+
+ public partial struct SDL_MouseWheelEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_MouseID")]
+ public uint which;
+
+ public float x;
+
+ public float y;
+
+ public SDL_MouseWheelDirection direction;
+
+ public float mouse_x;
+
+ public float mouse_y;
+ }
+
+ public partial struct SDL_JoyAxisEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte axis;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+
+ [NativeTypeName("Sint16")]
+ public short value;
+
+ [NativeTypeName("Uint16")]
+ public ushort padding4;
+ }
+
+ public partial struct SDL_JoyBallEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte ball;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+
+ [NativeTypeName("Sint16")]
+ public short xrel;
+
+ [NativeTypeName("Sint16")]
+ public short yrel;
+ }
+
+ public partial struct SDL_JoyHatEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte hat;
+
+ [NativeTypeName("Uint8")]
+ public byte value;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+ }
+
+ public partial struct SDL_JoyButtonEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte button;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+ }
+
+ public partial struct SDL_JoyDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+ }
+
+ public partial struct SDL_JoyBatteryEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ public SDL_PowerState state;
+
+ public int percent;
+ }
+
+ public partial struct SDL_GamepadAxisEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte axis;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+
+ [NativeTypeName("Sint16")]
+ public short value;
+
+ [NativeTypeName("Uint16")]
+ public ushort padding4;
+ }
+
+ public partial struct SDL_GamepadButtonEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte button;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+ }
+
+ public partial struct SDL_GamepadDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+ }
+
+ public partial struct SDL_GamepadTouchpadEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Sint32")]
+ public int touchpad;
+
+ [NativeTypeName("Sint32")]
+ public int finger;
+
+ public float x;
+
+ public float y;
+
+ public float pressure;
+ }
+
+ public partial struct SDL_GamepadSensorEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_JoystickID")]
+ public uint which;
+
+ [NativeTypeName("Sint32")]
+ public int sensor;
+
+ [NativeTypeName("float[3]")]
+ public _data_e__FixedBuffer data;
+
+ [NativeTypeName("Uint64")]
+ public ulong sensor_timestamp;
+
+ [InlineArray(3)]
+ public partial struct _data_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+
+ public partial struct SDL_AudioDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_AudioDeviceID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte iscapture;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+ }
+
+ public partial struct SDL_CameraDeviceEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_CameraDeviceID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint8")]
+ public byte padding3;
+ }
+
+ public partial struct SDL_TouchFingerEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_TouchID")]
+ public ulong touchID;
+
+ [NativeTypeName("SDL_FingerID")]
+ public ulong fingerID;
+
+ public float x;
+
+ public float y;
+
+ public float dx;
+
+ public float dy;
+
+ public float pressure;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+ }
+
+ public partial struct SDL_PenTipEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_PenID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte tip;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint16")]
+ public ushort pen_state;
+
+ public float x;
+
+ public float y;
+
+ [NativeTypeName("float[6]")]
+ public _axes_e__FixedBuffer axes;
+
+ [InlineArray(6)]
+ public partial struct _axes_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+
+ public partial struct SDL_PenMotionEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_PenID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte padding1;
+
+ [NativeTypeName("Uint8")]
+ public byte padding2;
+
+ [NativeTypeName("Uint16")]
+ public ushort pen_state;
+
+ public float x;
+
+ public float y;
+
+ [NativeTypeName("float[6]")]
+ public _axes_e__FixedBuffer axes;
+
+ [InlineArray(6)]
+ public partial struct _axes_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+
+ public partial struct SDL_PenButtonEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("SDL_PenID")]
+ public uint which;
+
+ [NativeTypeName("Uint8")]
+ public byte button;
+
+ [NativeTypeName("Uint8")]
+ public byte state;
+
+ [NativeTypeName("Uint16")]
+ public ushort pen_state;
+
+ public float x;
+
+ public float y;
+
+ [NativeTypeName("float[6]")]
+ public _axes_e__FixedBuffer axes;
+
+ [InlineArray(6)]
+ public partial struct _axes_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+
+ public unsafe partial struct SDL_DropEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ public float x;
+
+ public float y;
+
+ [NativeTypeName("char *")]
+ public sbyte* source;
+
+ [NativeTypeName("char *")]
+ public sbyte* data;
+ }
+
+ public partial struct SDL_ClipboardEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+ }
+
+ public partial struct SDL_SensorEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_SensorID")]
+ public uint which;
+
+ [NativeTypeName("float[6]")]
+ public _data_e__FixedBuffer data;
+
+ [NativeTypeName("Uint64")]
+ public ulong sensor_timestamp;
+
+ [InlineArray(6)]
+ public partial struct _data_e__FixedBuffer
+ {
+ public float e0;
+ }
+ }
+
+ public partial struct SDL_QuitEvent
+ {
+ public SDL_EventType type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+ }
+
+ public unsafe partial struct SDL_UserEvent
+ {
+ [NativeTypeName("Uint32")]
+ public uint type;
+
+ [NativeTypeName("Uint32")]
+ public uint reserved;
+
+ [NativeTypeName("Uint64")]
+ public ulong timestamp;
+
+ [NativeTypeName("SDL_WindowID")]
+ public uint windowID;
+
+ [NativeTypeName("Sint32")]
+ public int code;
+
+ public void* data1;
+
+ public void* data2;
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct SDL_Event
+ {
+ [FieldOffset(0)]
+ [NativeTypeName("Uint32")]
+ public uint type;
+
+ [FieldOffset(0)]
+ public SDL_CommonEvent common;
+
+ [FieldOffset(0)]
+ public SDL_DisplayEvent display;
+
+ [FieldOffset(0)]
+ public SDL_WindowEvent window;
+
+ [FieldOffset(0)]
+ public SDL_KeyboardDeviceEvent kdevice;
+
+ [FieldOffset(0)]
+ public SDL_KeyboardEvent key;
+
+ [FieldOffset(0)]
+ public SDL_TextEditingEvent edit;
+
+ [FieldOffset(0)]
+ public SDL_TextInputEvent text;
+
+ [FieldOffset(0)]
+ public SDL_MouseDeviceEvent mdevice;
+
+ [FieldOffset(0)]
+ public SDL_MouseMotionEvent motion;
+
+ [FieldOffset(0)]
+ public SDL_MouseButtonEvent button;
+
+ [FieldOffset(0)]
+ public SDL_MouseWheelEvent wheel;
+
+ [FieldOffset(0)]
+ public SDL_JoyDeviceEvent jdevice;
+
+ [FieldOffset(0)]
+ public SDL_JoyAxisEvent jaxis;
+
+ [FieldOffset(0)]
+ public SDL_JoyBallEvent jball;
+
+ [FieldOffset(0)]
+ public SDL_JoyHatEvent jhat;
+
+ [FieldOffset(0)]
+ public SDL_JoyButtonEvent jbutton;
+
+ [FieldOffset(0)]
+ public SDL_JoyBatteryEvent jbattery;
+
+ [FieldOffset(0)]
+ public SDL_GamepadDeviceEvent gdevice;
+
+ [FieldOffset(0)]
+ public SDL_GamepadAxisEvent gaxis;
+
+ [FieldOffset(0)]
+ public SDL_GamepadButtonEvent gbutton;
+
+ [FieldOffset(0)]
+ public SDL_GamepadTouchpadEvent gtouchpad;
+
+ [FieldOffset(0)]
+ public SDL_GamepadSensorEvent gsensor;
+
+ [FieldOffset(0)]
+ public SDL_AudioDeviceEvent adevice;
+
+ [FieldOffset(0)]
+ public SDL_CameraDeviceEvent cdevice;
+
+ [FieldOffset(0)]
+ public SDL_SensorEvent sensor;
+
+ [FieldOffset(0)]
+ public SDL_QuitEvent quit;
+
+ [FieldOffset(0)]
+ public SDL_UserEvent user;
+
+ [FieldOffset(0)]
+ public SDL_TouchFingerEvent tfinger;
+
+ [FieldOffset(0)]
+ public SDL_PenTipEvent ptip;
+
+ [FieldOffset(0)]
+ public SDL_PenMotionEvent pmotion;
+
+ [FieldOffset(0)]
+ public SDL_PenButtonEvent pbutton;
+
+ [FieldOffset(0)]
+ public SDL_DropEvent drop;
+
+ [FieldOffset(0)]
+ public SDL_ClipboardEvent clipboard;
+
+ [FieldOffset(0)]
+ [NativeTypeName("Uint8[128]")]
+ public _padding_e__FixedBuffer padding;
+
+ [InlineArray(128)]
+ public partial struct _padding_e__FixedBuffer
+ {
+ public byte e0;
+ }
+ }
+
+ public enum SDL_eventaction
+ {
+ SDL_ADDEVENT,
+ SDL_PEEKEVENT,
+ SDL_GETEVENT,
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ 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);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasEvent([NativeTypeName("Uint32")] uint type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasEvents([NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_FlushEvent([NativeTypeName("Uint32")] uint type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_FlushEvents([NativeTypeName("Uint32")] uint minType, [NativeTypeName("Uint32")] uint maxType);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_PollEvent(SDL_Event* @event);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WaitEvent(SDL_Event* @event);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WaitEventTimeout(SDL_Event* @event, [NativeTypeName("Sint32")] int timeoutMS);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_PushEvent(SDL_Event* @event);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_SetEventFilter([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl] filter, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GetEventFilter([NativeTypeName("SDL_EventFilter *")] delegate* unmanaged[Cdecl]* filter, void** userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AddEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl] filter, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_DelEventWatch([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl] filter, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_FilterEvents([NativeTypeName("SDL_EventFilter")] delegate* unmanaged[Cdecl] filter, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_SetEventEnabled([NativeTypeName("Uint32")] uint type, [NativeTypeName("SDL_bool")] int enabled);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_EventEnabled([NativeTypeName("Uint32")] uint type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint32")]
+ public static extern uint SDL_RegisterEvents(int numevents);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_AllocateEventMemory([NativeTypeName("size_t")] nuint size);
+
+ [NativeTypeName("#define SDL_RELEASED 0")]
+ public const int SDL_RELEASED = 0;
+
+ [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;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_filesystem.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_filesystem.g.cs
new file mode 100644
index 0000000..4b63439
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_filesystem.g.cs
@@ -0,0 +1,106 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public enum SDL_Folder
+ {
+ SDL_FOLDER_HOME,
+ SDL_FOLDER_DESKTOP,
+ SDL_FOLDER_DOCUMENTS,
+ SDL_FOLDER_DOWNLOADS,
+ SDL_FOLDER_MUSIC,
+ SDL_FOLDER_PICTURES,
+ SDL_FOLDER_PUBLICSHARE,
+ SDL_FOLDER_SAVEDGAMES,
+ SDL_FOLDER_SCREENSHOTS,
+ SDL_FOLDER_TEMPLATES,
+ SDL_FOLDER_VIDEOS,
+ }
+
+ public enum SDL_PathType
+ {
+ SDL_PATHTYPE_NONE,
+ SDL_PATHTYPE_FILE,
+ SDL_PATHTYPE_DIRECTORY,
+ SDL_PATHTYPE_OTHER,
+ }
+
+ public partial struct SDL_PathInfo
+ {
+ public SDL_PathType type;
+
+ [NativeTypeName("Uint64")]
+ public ulong size;
+
+ [NativeTypeName("SDL_Time")]
+ public long create_time;
+
+ [NativeTypeName("SDL_Time")]
+ public long modify_time;
+
+ [NativeTypeName("SDL_Time")]
+ public long access_time;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetBasePath();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetPrefPath([NativeTypeName("const char *")] sbyte* org, [NativeTypeName("const char *")] sbyte* app);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetUserFolder(SDL_Folder folder);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_CreateDirectory([NativeTypeName("const char *")] sbyte* path);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_EnumerateDirectory([NativeTypeName("const char *")] sbyte* path, [NativeTypeName("SDL_EnumerateDirectoryCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RemovePath([NativeTypeName("const char *")] sbyte* path);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RenamePath([NativeTypeName("const char *")] sbyte* oldpath, [NativeTypeName("const char *")] sbyte* newpath);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetPathInfo([NativeTypeName("const char *")] sbyte* path, SDL_PathInfo* info);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char **")]
+ public static extern sbyte** SDL_GlobDirectory([NativeTypeName("const char *")] sbyte* path, [NativeTypeName("const char *")] sbyte* pattern, [NativeTypeName("Uint32")] uint flags, int* count);
+
+ [NativeTypeName("#define SDL_GLOB_CASEINSENSITIVE (1 << 0)")]
+ public const int SDL_GLOB_CASEINSENSITIVE = (1 << 0);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_gamepad.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_gamepad.g.cs
new file mode 100644
index 0000000..93282a6
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_gamepad.g.cs
@@ -0,0 +1,452 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_Gamepad
+ {
+ }
+
+ public enum SDL_GamepadType
+ {
+ SDL_GAMEPAD_TYPE_UNKNOWN = 0,
+ SDL_GAMEPAD_TYPE_STANDARD,
+ SDL_GAMEPAD_TYPE_XBOX360,
+ SDL_GAMEPAD_TYPE_XBOXONE,
+ SDL_GAMEPAD_TYPE_PS3,
+ SDL_GAMEPAD_TYPE_PS4,
+ SDL_GAMEPAD_TYPE_PS5,
+ SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO,
+ SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT,
+ SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT,
+ SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR,
+ SDL_GAMEPAD_TYPE_MAX,
+ }
+
+ public enum SDL_GamepadButton
+ {
+ SDL_GAMEPAD_BUTTON_INVALID = -1,
+ SDL_GAMEPAD_BUTTON_SOUTH,
+ SDL_GAMEPAD_BUTTON_EAST,
+ SDL_GAMEPAD_BUTTON_WEST,
+ SDL_GAMEPAD_BUTTON_NORTH,
+ SDL_GAMEPAD_BUTTON_BACK,
+ SDL_GAMEPAD_BUTTON_GUIDE,
+ SDL_GAMEPAD_BUTTON_START,
+ SDL_GAMEPAD_BUTTON_LEFT_STICK,
+ SDL_GAMEPAD_BUTTON_RIGHT_STICK,
+ SDL_GAMEPAD_BUTTON_LEFT_SHOULDER,
+ SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER,
+ SDL_GAMEPAD_BUTTON_DPAD_UP,
+ SDL_GAMEPAD_BUTTON_DPAD_DOWN,
+ SDL_GAMEPAD_BUTTON_DPAD_LEFT,
+ SDL_GAMEPAD_BUTTON_DPAD_RIGHT,
+ SDL_GAMEPAD_BUTTON_MISC1,
+ SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1,
+ SDL_GAMEPAD_BUTTON_LEFT_PADDLE1,
+ SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2,
+ SDL_GAMEPAD_BUTTON_LEFT_PADDLE2,
+ SDL_GAMEPAD_BUTTON_TOUCHPAD,
+ SDL_GAMEPAD_BUTTON_MISC2,
+ SDL_GAMEPAD_BUTTON_MISC3,
+ SDL_GAMEPAD_BUTTON_MISC4,
+ SDL_GAMEPAD_BUTTON_MISC5,
+ SDL_GAMEPAD_BUTTON_MISC6,
+ SDL_GAMEPAD_BUTTON_MAX,
+ }
+
+ public enum SDL_GamepadButtonLabel
+ {
+ SDL_GAMEPAD_BUTTON_LABEL_UNKNOWN,
+ SDL_GAMEPAD_BUTTON_LABEL_A,
+ SDL_GAMEPAD_BUTTON_LABEL_B,
+ SDL_GAMEPAD_BUTTON_LABEL_X,
+ SDL_GAMEPAD_BUTTON_LABEL_Y,
+ SDL_GAMEPAD_BUTTON_LABEL_CROSS,
+ SDL_GAMEPAD_BUTTON_LABEL_CIRCLE,
+ SDL_GAMEPAD_BUTTON_LABEL_SQUARE,
+ SDL_GAMEPAD_BUTTON_LABEL_TRIANGLE,
+ }
+
+ public enum SDL_GamepadAxis
+ {
+ SDL_GAMEPAD_AXIS_INVALID = -1,
+ SDL_GAMEPAD_AXIS_LEFTX,
+ SDL_GAMEPAD_AXIS_LEFTY,
+ SDL_GAMEPAD_AXIS_RIGHTX,
+ SDL_GAMEPAD_AXIS_RIGHTY,
+ SDL_GAMEPAD_AXIS_LEFT_TRIGGER,
+ SDL_GAMEPAD_AXIS_RIGHT_TRIGGER,
+ SDL_GAMEPAD_AXIS_MAX,
+ }
+
+ public enum SDL_GamepadBindingType
+ {
+ SDL_GAMEPAD_BINDTYPE_NONE = 0,
+ SDL_GAMEPAD_BINDTYPE_BUTTON,
+ SDL_GAMEPAD_BINDTYPE_AXIS,
+ SDL_GAMEPAD_BINDTYPE_HAT,
+ }
+
+ public partial struct SDL_GamepadBinding
+ {
+ public SDL_GamepadBindingType input_type;
+
+ [NativeTypeName("__AnonymousRecord_SDL_gamepad_L184_C5")]
+ public _input_e__Union input;
+
+ public SDL_GamepadBindingType output_type;
+
+ [NativeTypeName("__AnonymousRecord_SDL_gamepad_L204_C5")]
+ public _output_e__Union output;
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct _input_e__Union
+ {
+ [FieldOffset(0)]
+ public int button;
+
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_SDL_gamepad_L188_C9")]
+ public _axis_e__Struct axis;
+
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_SDL_gamepad_L195_C9")]
+ public _hat_e__Struct hat;
+
+ public partial struct _axis_e__Struct
+ {
+ public int axis;
+
+ public int axis_min;
+
+ public int axis_max;
+ }
+
+ public partial struct _hat_e__Struct
+ {
+ public int hat;
+
+ public int hat_mask;
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct _output_e__Union
+ {
+ [FieldOffset(0)]
+ public SDL_GamepadButton button;
+
+ [FieldOffset(0)]
+ [NativeTypeName("__AnonymousRecord_SDL_gamepad_L208_C9")]
+ public _axis_e__Struct axis;
+
+ public partial struct _axis_e__Struct
+ {
+ public SDL_GamepadAxis axis;
+
+ public int axis_min;
+
+ public int axis_max;
+ }
+ }
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AddGamepadMapping([NativeTypeName("const char *")] sbyte* mapping);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AddGamepadMappingsFromIO(SDL_IOStream* src, [NativeTypeName("SDL_bool")] int closeio);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AddGamepadMappingsFromFile([NativeTypeName("const char *")] sbyte* file);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ReloadGamepadMappings();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char **")]
+ public static extern sbyte** SDL_GetGamepadMappings(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetGamepadMappingForGUID([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetGamepadMapping(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetGamepadMapping([NativeTypeName("SDL_JoystickID")] uint instance_id, [NativeTypeName("const char *")] sbyte* mapping);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasGamepad();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID *")]
+ public static extern uint* SDL_GetGamepads(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_IsGamepad([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadInstanceName([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadInstancePath([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetGamepadInstancePlayerIndex([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickGUID")]
+ public static extern SDL_GUID SDL_GetGamepadInstanceGUID([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadInstanceVendor([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadInstanceProduct([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadInstanceProductVersion([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadType SDL_GetGamepadInstanceType([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadType SDL_GetRealGamepadInstanceType([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("char *")]
+ public static extern sbyte* SDL_GetGamepadInstanceMapping([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Gamepad* SDL_OpenGamepad([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Gamepad* SDL_GetGamepadFromInstanceID([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Gamepad* SDL_GetGamepadFromPlayerIndex(int player_index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_PropertiesID")]
+ public static extern uint SDL_GetGamepadProperties(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID")]
+ public static extern uint SDL_GetGamepadInstanceID(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadName(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadPath(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadType SDL_GetGamepadType(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadType SDL_GetRealGamepadType(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetGamepadPlayerIndex(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetGamepadPlayerIndex(SDL_Gamepad* gamepad, int player_index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadVendor(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadProduct(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadProductVersion(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetGamepadFirmwareVersion(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadSerial(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint64")]
+ public static extern ulong SDL_GetGamepadSteamHandle(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_JoystickConnectionState SDL_GetGamepadConnectionState(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_PowerState SDL_GetGamepadPowerInfo(SDL_Gamepad* gamepad, int* percent);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadConnected(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Joystick* SDL_GetGamepadJoystick(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_SetGamepadEventsEnabled([NativeTypeName("SDL_bool")] int enabled);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadEventsEnabled();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadBinding** SDL_GetGamepadBindings(SDL_Gamepad* gamepad, int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UpdateGamepads();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadType SDL_GetGamepadTypeFromString([NativeTypeName("const char *")] sbyte* str);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadStringForType(SDL_GamepadType type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadAxis SDL_GetGamepadAxisFromString([NativeTypeName("const char *")] sbyte* str);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadStringForAxis(SDL_GamepadAxis axis);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadHasAxis(SDL_Gamepad* gamepad, SDL_GamepadAxis axis);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Sint16")]
+ public static extern short SDL_GetGamepadAxis(SDL_Gamepad* gamepad, SDL_GamepadAxis axis);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadButton SDL_GetGamepadButtonFromString([NativeTypeName("const char *")] sbyte* str);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadStringForButton(SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadHasButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint8")]
+ public static extern byte SDL_GetGamepadButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadButtonLabel SDL_GetGamepadButtonLabelForType(SDL_GamepadType type, SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GamepadButtonLabel SDL_GetGamepadButtonLabel(SDL_Gamepad* gamepad, SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumGamepadTouchpads(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumGamepadTouchpadFingers(SDL_Gamepad* gamepad, int touchpad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetGamepadTouchpadFinger(SDL_Gamepad* gamepad, int touchpad, int finger, [NativeTypeName("Uint8 *")] byte* state, float* x, float* y, float* pressure);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadHasSensor(SDL_Gamepad* gamepad, SDL_SensorType type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetGamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type, [NativeTypeName("SDL_bool")] int enabled);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GamepadSensorEnabled(SDL_Gamepad* gamepad, SDL_SensorType type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern float SDL_GetGamepadSensorDataRate(SDL_Gamepad* gamepad, SDL_SensorType type);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetGamepadSensorData(SDL_Gamepad* gamepad, SDL_SensorType type, float* data, int num_values);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RumbleGamepad(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RumbleGamepadTriggers(SDL_Gamepad* gamepad, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetGamepadLED(SDL_Gamepad* gamepad, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SendGamepadEffect(SDL_Gamepad* gamepad, [NativeTypeName("const void *")] void* data, int size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_CloseGamepad(SDL_Gamepad* gamepad);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadAppleSFSymbolsNameForButton(SDL_Gamepad* gamepad, SDL_GamepadButton button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetGamepadAppleSFSymbolsNameForAxis(SDL_Gamepad* gamepad, SDL_GamepadAxis axis);
+
+ [NativeTypeName("#define SDL_PROP_GAMEPAD_CAP_MONO_LED_BOOLEAN SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN")]
+ public static ReadOnlySpan SDL_PROP_GAMEPAD_CAP_MONO_LED_BOOLEAN => "SDL.joystick.cap.mono_led"u8;
+
+ [NativeTypeName("#define SDL_PROP_GAMEPAD_CAP_RGB_LED_BOOLEAN SDL_PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN")]
+ public static ReadOnlySpan SDL_PROP_GAMEPAD_CAP_RGB_LED_BOOLEAN => "SDL.joystick.cap.rgb_led"u8;
+
+ [NativeTypeName("#define SDL_PROP_GAMEPAD_CAP_PLAYER_LED_BOOLEAN SDL_PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN")]
+ public static ReadOnlySpan SDL_PROP_GAMEPAD_CAP_PLAYER_LED_BOOLEAN => "SDL.joystick.cap.player_led"u8;
+
+ [NativeTypeName("#define SDL_PROP_GAMEPAD_CAP_RUMBLE_BOOLEAN SDL_PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN")]
+ public static ReadOnlySpan SDL_PROP_GAMEPAD_CAP_RUMBLE_BOOLEAN => "SDL.joystick.cap.rumble"u8;
+
+ [NativeTypeName("#define SDL_PROP_GAMEPAD_CAP_TRIGGER_RUMBLE_BOOLEAN SDL_PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN")]
+ public static ReadOnlySpan SDL_PROP_GAMEPAD_CAP_TRIGGER_RUMBLE_BOOLEAN => "SDL.joystick.cap.trigger_rumble"u8;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_guid.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_guid.g.cs
new file mode 100644
index 0000000..da14e57
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_guid.g.cs
@@ -0,0 +1,51 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_GUID
+ {
+ [NativeTypeName("Uint8[16]")]
+ public _data_e__FixedBuffer data;
+
+ [InlineArray(16)]
+ public partial struct _data_e__FixedBuffer
+ {
+ public byte e0;
+ }
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GUIDToString(SDL_GUID guid, [NativeTypeName("char *")] sbyte* pszGUID, int cbGUID);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GUID SDL_GUIDFromString([NativeTypeName("const char *")] sbyte* pchGUID);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_haptic.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_haptic.g.cs
new file mode 100644
index 0000000..dc975be
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_haptic.g.cs
@@ -0,0 +1,505 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_Haptic
+ {
+ }
+
+ public partial struct SDL_HapticDirection
+ {
+ [NativeTypeName("Uint8")]
+ public byte type;
+
+ [NativeTypeName("Sint32[3]")]
+ public _dir_e__FixedBuffer dir;
+
+ [InlineArray(3)]
+ public partial struct _dir_e__FixedBuffer
+ {
+ public int e0;
+ }
+ }
+
+ public partial struct SDL_HapticConstant
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ public SDL_HapticDirection direction;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort delay;
+
+ [NativeTypeName("Uint16")]
+ public ushort button;
+
+ [NativeTypeName("Uint16")]
+ public ushort interval;
+
+ [NativeTypeName("Sint16")]
+ public short level;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_level;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_level;
+ }
+
+ public partial struct SDL_HapticPeriodic
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ public SDL_HapticDirection direction;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort delay;
+
+ [NativeTypeName("Uint16")]
+ public ushort button;
+
+ [NativeTypeName("Uint16")]
+ public ushort interval;
+
+ [NativeTypeName("Uint16")]
+ public ushort period;
+
+ [NativeTypeName("Sint16")]
+ public short magnitude;
+
+ [NativeTypeName("Sint16")]
+ public short offset;
+
+ [NativeTypeName("Uint16")]
+ public ushort phase;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_level;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_level;
+ }
+
+ public partial struct SDL_HapticCondition
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ public SDL_HapticDirection direction;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort delay;
+
+ [NativeTypeName("Uint16")]
+ public ushort button;
+
+ [NativeTypeName("Uint16")]
+ public ushort interval;
+
+ [NativeTypeName("Uint16[3]")]
+ public _right_sat_e__FixedBuffer right_sat;
+
+ [NativeTypeName("Uint16[3]")]
+ public _left_sat_e__FixedBuffer left_sat;
+
+ [NativeTypeName("Sint16[3]")]
+ public _right_coeff_e__FixedBuffer right_coeff;
+
+ [NativeTypeName("Sint16[3]")]
+ public _left_coeff_e__FixedBuffer left_coeff;
+
+ [NativeTypeName("Uint16[3]")]
+ public _deadband_e__FixedBuffer deadband;
+
+ [NativeTypeName("Sint16[3]")]
+ public _center_e__FixedBuffer center;
+
+ [InlineArray(3)]
+ public partial struct _right_sat_e__FixedBuffer
+ {
+ public ushort e0;
+ }
+
+ [InlineArray(3)]
+ public partial struct _left_sat_e__FixedBuffer
+ {
+ public ushort e0;
+ }
+
+ [InlineArray(3)]
+ public partial struct _right_coeff_e__FixedBuffer
+ {
+ public short e0;
+ }
+
+ [InlineArray(3)]
+ public partial struct _left_coeff_e__FixedBuffer
+ {
+ public short e0;
+ }
+
+ [InlineArray(3)]
+ public partial struct _deadband_e__FixedBuffer
+ {
+ public ushort e0;
+ }
+
+ [InlineArray(3)]
+ public partial struct _center_e__FixedBuffer
+ {
+ public short e0;
+ }
+ }
+
+ public partial struct SDL_HapticRamp
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ public SDL_HapticDirection direction;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort delay;
+
+ [NativeTypeName("Uint16")]
+ public ushort button;
+
+ [NativeTypeName("Uint16")]
+ public ushort interval;
+
+ [NativeTypeName("Sint16")]
+ public short start;
+
+ [NativeTypeName("Sint16")]
+ public short end;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_level;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_level;
+ }
+
+ public partial struct SDL_HapticLeftRight
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort large_magnitude;
+
+ [NativeTypeName("Uint16")]
+ public ushort small_magnitude;
+ }
+
+ public unsafe partial struct SDL_HapticCustom
+ {
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ public SDL_HapticDirection direction;
+
+ [NativeTypeName("Uint32")]
+ public uint length;
+
+ [NativeTypeName("Uint16")]
+ public ushort delay;
+
+ [NativeTypeName("Uint16")]
+ public ushort button;
+
+ [NativeTypeName("Uint16")]
+ public ushort interval;
+
+ [NativeTypeName("Uint8")]
+ public byte channels;
+
+ [NativeTypeName("Uint16")]
+ public ushort period;
+
+ [NativeTypeName("Uint16")]
+ public ushort samples;
+
+ [NativeTypeName("Uint16 *")]
+ public ushort* data;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort attack_level;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_length;
+
+ [NativeTypeName("Uint16")]
+ public ushort fade_level;
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ public partial struct SDL_HapticEffect
+ {
+ [FieldOffset(0)]
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ [FieldOffset(0)]
+ public SDL_HapticConstant constant;
+
+ [FieldOffset(0)]
+ public SDL_HapticPeriodic periodic;
+
+ [FieldOffset(0)]
+ public SDL_HapticCondition condition;
+
+ [FieldOffset(0)]
+ public SDL_HapticRamp ramp;
+
+ [FieldOffset(0)]
+ public SDL_HapticLeftRight leftright;
+
+ [FieldOffset(0)]
+ public SDL_HapticCustom custom;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_HapticID *")]
+ public static extern uint* SDL_GetHaptics(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetHapticInstanceName([NativeTypeName("SDL_HapticID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Haptic* SDL_OpenHaptic([NativeTypeName("SDL_HapticID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Haptic* SDL_GetHapticFromInstanceID([NativeTypeName("SDL_HapticID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_HapticID")]
+ public static extern uint SDL_GetHapticInstanceID(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetHapticName(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_IsMouseHaptic();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Haptic* SDL_OpenHapticFromMouse();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_IsJoystickHaptic(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Haptic* SDL_OpenHapticFromJoystick(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_CloseHaptic(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetMaxHapticEffects(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetMaxHapticEffectsPlaying(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint32")]
+ public static extern uint SDL_GetHapticFeatures(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumHapticAxes(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HapticEffectSupported(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_CreateHapticEffect(SDL_Haptic* haptic, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* effect);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_UpdateHapticEffect(SDL_Haptic* haptic, int effect, [NativeTypeName("const SDL_HapticEffect *")] SDL_HapticEffect* data);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RunHapticEffect(SDL_Haptic* haptic, int effect, [NativeTypeName("Uint32")] uint iterations);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_StopHapticEffect(SDL_Haptic* haptic, int effect);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_DestroyHapticEffect(SDL_Haptic* haptic, int effect);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetHapticEffectStatus(SDL_Haptic* haptic, int effect);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetHapticGain(SDL_Haptic* haptic, int gain);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetHapticAutocenter(SDL_Haptic* haptic, int autocenter);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_PauseHaptic(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_ResumeHaptic(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_StopHapticEffects(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HapticRumbleSupported(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_InitHapticRumble(SDL_Haptic* haptic);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_PlayHapticRumble(SDL_Haptic* haptic, float strength, [NativeTypeName("Uint32")] uint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_StopHapticRumble(SDL_Haptic* haptic);
+
+ [NativeTypeName("#define SDL_HAPTIC_CONSTANT (1u<<0)")]
+ public const uint SDL_HAPTIC_CONSTANT = (1U << 0);
+
+ [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_TRIANGLE (1u<<3)")]
+ public const uint SDL_HAPTIC_TRIANGLE = (1U << 3);
+
+ [NativeTypeName("#define SDL_HAPTIC_SAWTOOTHUP (1u<<4)")]
+ public const uint SDL_HAPTIC_SAWTOOTHUP = (1U << 4);
+
+ [NativeTypeName("#define SDL_HAPTIC_SAWTOOTHDOWN (1u<<5)")]
+ public const uint SDL_HAPTIC_SAWTOOTHDOWN = (1U << 5);
+
+ [NativeTypeName("#define SDL_HAPTIC_RAMP (1u<<6)")]
+ public const uint SDL_HAPTIC_RAMP = (1U << 6);
+
+ [NativeTypeName("#define SDL_HAPTIC_SPRING (1u<<7)")]
+ public const uint SDL_HAPTIC_SPRING = (1U << 7);
+
+ [NativeTypeName("#define SDL_HAPTIC_DAMPER (1u<<8)")]
+ public const uint SDL_HAPTIC_DAMPER = (1U << 8);
+
+ [NativeTypeName("#define SDL_HAPTIC_INERTIA (1u<<9)")]
+ public const uint SDL_HAPTIC_INERTIA = (1U << 9);
+
+ [NativeTypeName("#define SDL_HAPTIC_FRICTION (1u<<10)")]
+ public const uint SDL_HAPTIC_FRICTION = (1U << 10);
+
+ [NativeTypeName("#define SDL_HAPTIC_LEFTRIGHT (1u<<11)")]
+ public const uint SDL_HAPTIC_LEFTRIGHT = (1U << 11);
+
+ [NativeTypeName("#define SDL_HAPTIC_RESERVED1 (1u<<12)")]
+ public const uint SDL_HAPTIC_RESERVED1 = (1U << 12);
+
+ [NativeTypeName("#define SDL_HAPTIC_RESERVED2 (1u<<13)")]
+ public const uint SDL_HAPTIC_RESERVED2 = (1U << 13);
+
+ [NativeTypeName("#define SDL_HAPTIC_RESERVED3 (1u<<14)")]
+ public const uint SDL_HAPTIC_RESERVED3 = (1U << 14);
+
+ [NativeTypeName("#define SDL_HAPTIC_CUSTOM (1u<<15)")]
+ public const uint SDL_HAPTIC_CUSTOM = (1U << 15);
+
+ [NativeTypeName("#define SDL_HAPTIC_GAIN (1u<<16)")]
+ public const uint SDL_HAPTIC_GAIN = (1U << 16);
+
+ [NativeTypeName("#define SDL_HAPTIC_AUTOCENTER (1u<<17)")]
+ public const uint SDL_HAPTIC_AUTOCENTER = (1U << 17);
+
+ [NativeTypeName("#define SDL_HAPTIC_STATUS (1u<<18)")]
+ public const uint SDL_HAPTIC_STATUS = (1U << 18);
+
+ [NativeTypeName("#define SDL_HAPTIC_PAUSE (1u<<19)")]
+ public const uint SDL_HAPTIC_PAUSE = (1U << 19);
+
+ [NativeTypeName("#define SDL_HAPTIC_POLAR 0")]
+ public const int SDL_HAPTIC_POLAR = 0;
+
+ [NativeTypeName("#define SDL_HAPTIC_CARTESIAN 1")]
+ public const int SDL_HAPTIC_CARTESIAN = 1;
+
+ [NativeTypeName("#define SDL_HAPTIC_SPHERICAL 2")]
+ public const int SDL_HAPTIC_SPHERICAL = 2;
+
+ [NativeTypeName("#define SDL_HAPTIC_STEERING_AXIS 3")]
+ public const int SDL_HAPTIC_STEERING_AXIS = 3;
+
+ [NativeTypeName("#define SDL_HAPTIC_INFINITY 4294967295U")]
+ public const uint SDL_HAPTIC_INFINITY = 4294967295U;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_hidapi.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_hidapi.g.cs
new file mode 100644
index 0000000..e687254
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_hidapi.g.cs
@@ -0,0 +1,157 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_hid_device_
+ {
+ }
+
+ public enum SDL_hid_bus_type
+ {
+ SDL_HID_API_BUS_UNKNOWN = 0x00,
+ SDL_HID_API_BUS_USB = 0x01,
+ SDL_HID_API_BUS_BLUETOOTH = 0x02,
+ SDL_HID_API_BUS_I2C = 0x03,
+ SDL_HID_API_BUS_SPI = 0x04,
+ }
+
+ public unsafe partial struct SDL_hid_device_info
+ {
+ [NativeTypeName("char *")]
+ public sbyte* path;
+
+ [NativeTypeName("unsigned short")]
+ public ushort vendor_id;
+
+ [NativeTypeName("unsigned short")]
+ public ushort product_id;
+
+ [NativeTypeName("wchar_t *")]
+ public ushort* serial_number;
+
+ [NativeTypeName("unsigned short")]
+ public ushort release_number;
+
+ [NativeTypeName("wchar_t *")]
+ public ushort* manufacturer_string;
+
+ [NativeTypeName("wchar_t *")]
+ public ushort* product_string;
+
+ [NativeTypeName("unsigned short")]
+ public ushort usage_page;
+
+ [NativeTypeName("unsigned short")]
+ public ushort usage;
+
+ public int interface_number;
+
+ public int interface_class;
+
+ public int interface_subclass;
+
+ public int interface_protocol;
+
+ public SDL_hid_bus_type bus_type;
+
+ [NativeTypeName("struct SDL_hid_device_info *")]
+ public SDL_hid_device_info* next;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_init();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_exit();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint32")]
+ public static extern uint SDL_hid_device_change_count();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_hid_device_info* SDL_hid_enumerate([NativeTypeName("unsigned short")] ushort vendor_id, [NativeTypeName("unsigned short")] ushort product_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_hid_free_enumeration(SDL_hid_device_info* devs);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_hid_device *")]
+ public static extern SDL_hid_device_* SDL_hid_open([NativeTypeName("unsigned short")] ushort vendor_id, [NativeTypeName("unsigned short")] ushort product_id, [NativeTypeName("const wchar_t *")] ushort* serial_number);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_hid_device *")]
+ public static extern SDL_hid_device_* SDL_hid_open_path([NativeTypeName("const char *")] sbyte* path);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_write([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("const unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_read_timeout([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length, int milliseconds);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_read([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_set_nonblocking([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, int nonblock);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_send_feature_report([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("const unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_feature_report([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_input_report([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("unsigned char *")] byte* data, [NativeTypeName("size_t")] nuint length);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_close([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_manufacturer_string([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("wchar_t *")] ushort* @string, [NativeTypeName("size_t")] nuint maxlen);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_product_string([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("wchar_t *")] ushort* @string, [NativeTypeName("size_t")] nuint maxlen);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_serial_number_string([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("wchar_t *")] ushort* @string, [NativeTypeName("size_t")] nuint maxlen);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_indexed_string([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, int string_index, [NativeTypeName("wchar_t *")] ushort* @string, [NativeTypeName("size_t")] nuint maxlen);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_hid_device_info* SDL_hid_get_device_info([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_hid_get_report_descriptor([NativeTypeName("SDL_hid_device *")] SDL_hid_device_* dev, [NativeTypeName("unsigned char *")] byte* buf, [NativeTypeName("size_t")] nuint buf_size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_hid_ble_scan([NativeTypeName("SDL_bool")] int active);
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_hints.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_hints.g.cs
new file mode 100644
index 0000000..9d0f2dc
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_hints.g.cs
@@ -0,0 +1,654 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public enum SDL_HintPriority
+ {
+ SDL_HINT_DEFAULT,
+ SDL_HINT_NORMAL,
+ SDL_HINT_OVERRIDE,
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_SetHintWithPriority([NativeTypeName("const char *")] sbyte* name, [NativeTypeName("const char *")] sbyte* value, SDL_HintPriority priority);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_SetHint([NativeTypeName("const char *")] sbyte* name, [NativeTypeName("const char *")] sbyte* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ResetHint([NativeTypeName("const char *")] sbyte* name);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_ResetHints();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetHint([NativeTypeName("const char *")] sbyte* name);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GetHintBoolean([NativeTypeName("const char *")] sbyte* name, [NativeTypeName("SDL_bool")] int default_value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_AddHintCallback([NativeTypeName("const char *")] sbyte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_DelHintCallback([NativeTypeName("const char *")] sbyte* name, [NativeTypeName("SDL_HintCallback")] delegate* unmanaged[Cdecl] callback, void* userdata);
+
+ [NativeTypeName("#define SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED \"SDL_ALLOW_ALT_TAB_WHILE_GRABBED\"")]
+ public static ReadOnlySpan SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED => "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"u8;
+
+ [NativeTypeName("#define SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY \"SDL_ANDROID_ALLOW_RECREATE_ACTIVITY\"")]
+ public static ReadOnlySpan SDL_HINT_ANDROID_ALLOW_RECREATE_ACTIVITY => "SDL_ANDROID_ALLOW_RECREATE_ACTIVITY"u8;
+
+ [NativeTypeName("#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE \"SDL_ANDROID_BLOCK_ON_PAUSE\"")]
+ public static ReadOnlySpan SDL_HINT_ANDROID_BLOCK_ON_PAUSE => "SDL_ANDROID_BLOCK_ON_PAUSE"u8;
+
+ [NativeTypeName("#define SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO \"SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO\"")]
+ public static ReadOnlySpan SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO => "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"u8;
+
+ [NativeTypeName("#define SDL_HINT_ANDROID_TRAP_BACK_BUTTON \"SDL_ANDROID_TRAP_BACK_BUTTON\"")]
+ public static ReadOnlySpan SDL_HINT_ANDROID_TRAP_BACK_BUTTON => "SDL_ANDROID_TRAP_BACK_BUTTON"u8;
+
+ [NativeTypeName("#define SDL_HINT_APP_ID \"SDL_APP_ID\"")]
+ public static ReadOnlySpan SDL_HINT_APP_ID => "SDL_APP_ID"u8;
+
+ [NativeTypeName("#define SDL_HINT_APP_NAME \"SDL_APP_NAME\"")]
+ public static ReadOnlySpan SDL_HINT_APP_NAME => "SDL_APP_NAME"u8;
+
+ [NativeTypeName("#define SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS \"SDL_APPLE_TV_CONTROLLER_UI_EVENTS\"")]
+ public static ReadOnlySpan SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS => "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"u8;
+
+ [NativeTypeName("#define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION \"SDL_APPLE_TV_REMOTE_ALLOW_ROTATION\"")]
+ public static ReadOnlySpan SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION => "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_CATEGORY \"SDL_AUDIO_CATEGORY\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_CATEGORY => "SDL_AUDIO_CATEGORY"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_APP_NAME \"SDL_AUDIO_DEVICE_APP_NAME\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_DEVICE_APP_NAME => "SDL_AUDIO_DEVICE_APP_NAME"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES \"SDL_AUDIO_DEVICE_SAMPLE_FRAMES\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_DEVICE_SAMPLE_FRAMES => "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_STREAM_NAME \"SDL_AUDIO_DEVICE_STREAM_NAME\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_DEVICE_STREAM_NAME => "SDL_AUDIO_DEVICE_STREAM_NAME"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_DEVICE_STREAM_ROLE \"SDL_AUDIO_DEVICE_STREAM_ROLE\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_DEVICE_STREAM_ROLE => "SDL_AUDIO_DEVICE_STREAM_ROLE"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_DRIVER \"SDL_AUDIO_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_DRIVER => "SDL_AUDIO_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUDIO_INCLUDE_MONITORS \"SDL_AUDIO_INCLUDE_MONITORS\"")]
+ public static ReadOnlySpan SDL_HINT_AUDIO_INCLUDE_MONITORS => "SDL_AUDIO_INCLUDE_MONITORS"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUTO_UPDATE_JOYSTICKS \"SDL_AUTO_UPDATE_JOYSTICKS\"")]
+ public static ReadOnlySpan SDL_HINT_AUTO_UPDATE_JOYSTICKS => "SDL_AUTO_UPDATE_JOYSTICKS"u8;
+
+ [NativeTypeName("#define SDL_HINT_AUTO_UPDATE_SENSORS \"SDL_AUTO_UPDATE_SENSORS\"")]
+ public static ReadOnlySpan SDL_HINT_AUTO_UPDATE_SENSORS => "SDL_AUTO_UPDATE_SENSORS"u8;
+
+ [NativeTypeName("#define SDL_HINT_BMP_SAVE_LEGACY_FORMAT \"SDL_BMP_SAVE_LEGACY_FORMAT\"")]
+ public static ReadOnlySpan SDL_HINT_BMP_SAVE_LEGACY_FORMAT => "SDL_BMP_SAVE_LEGACY_FORMAT"u8;
+
+ [NativeTypeName("#define SDL_HINT_CAMERA_DRIVER \"SDL_CAMERA_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_CAMERA_DRIVER => "SDL_CAMERA_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_CPU_FEATURE_MASK \"SDL_CPU_FEATURE_MASK\"")]
+ public static ReadOnlySpan SDL_HINT_CPU_FEATURE_MASK => "SDL_CPU_FEATURE_MASK"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_DIRECTINPUT \"SDL_JOYSTICK_DIRECTINPUT\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_DIRECTINPUT => "SDL_JOYSTICK_DIRECTINPUT"u8;
+
+ [NativeTypeName("#define SDL_HINT_FILE_DIALOG_DRIVER \"SDL_FILE_DIALOG_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_FILE_DIALOG_DRIVER => "SDL_FILE_DIALOG_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_DISPLAY_USABLE_BOUNDS \"SDL_DISPLAY_USABLE_BOUNDS\"")]
+ public static ReadOnlySpan SDL_HINT_DISPLAY_USABLE_BOUNDS => "SDL_DISPLAY_USABLE_BOUNDS"u8;
+
+ [NativeTypeName("#define SDL_HINT_EMSCRIPTEN_ASYNCIFY \"SDL_EMSCRIPTEN_ASYNCIFY\"")]
+ public static ReadOnlySpan SDL_HINT_EMSCRIPTEN_ASYNCIFY => "SDL_EMSCRIPTEN_ASYNCIFY"u8;
+
+ [NativeTypeName("#define SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR \"SDL_EMSCRIPTEN_CANVAS_SELECTOR\"")]
+ public static ReadOnlySpan SDL_HINT_EMSCRIPTEN_CANVAS_SELECTOR => "SDL_EMSCRIPTEN_CANVAS_SELECTOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT \"SDL_EMSCRIPTEN_KEYBOARD_ELEMENT\"")]
+ public static ReadOnlySpan SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT => "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"u8;
+
+ [NativeTypeName("#define SDL_HINT_ENABLE_SCREEN_KEYBOARD \"SDL_ENABLE_SCREEN_KEYBOARD\"")]
+ public static ReadOnlySpan SDL_HINT_ENABLE_SCREEN_KEYBOARD => "SDL_ENABLE_SCREEN_KEYBOARD"u8;
+
+ [NativeTypeName("#define SDL_HINT_EVENT_LOGGING \"SDL_EVENT_LOGGING\"")]
+ public static ReadOnlySpan SDL_HINT_EVENT_LOGGING => "SDL_EVENT_LOGGING"u8;
+
+ [NativeTypeName("#define SDL_HINT_FORCE_RAISEWINDOW \"SDL_FORCE_RAISEWINDOW\"")]
+ public static ReadOnlySpan SDL_HINT_FORCE_RAISEWINDOW => "SDL_FORCE_RAISEWINDOW"u8;
+
+ [NativeTypeName("#define SDL_HINT_FRAMEBUFFER_ACCELERATION \"SDL_FRAMEBUFFER_ACCELERATION\"")]
+ public static ReadOnlySpan SDL_HINT_FRAMEBUFFER_ACCELERATION => "SDL_FRAMEBUFFER_ACCELERATION"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLERCONFIG \"SDL_GAMECONTROLLERCONFIG\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLERCONFIG => "SDL_GAMECONTROLLERCONFIG"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLERCONFIG_FILE \"SDL_GAMECONTROLLERCONFIG_FILE\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLERCONFIG_FILE => "SDL_GAMECONTROLLERCONFIG_FILE"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLERTYPE \"SDL_GAMECONTROLLERTYPE\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLERTYPE => "SDL_GAMECONTROLLERTYPE"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES \"SDL_GAMECONTROLLER_IGNORE_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES => "SDL_GAMECONTROLLER_IGNORE_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT \"SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT => "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"u8;
+
+ [NativeTypeName("#define SDL_HINT_GAMECONTROLLER_SENSOR_FUSION \"SDL_GAMECONTROLLER_SENSOR_FUSION\"")]
+ public static ReadOnlySpan SDL_HINT_GAMECONTROLLER_SENSOR_FUSION => "SDL_GAMECONTROLLER_SENSOR_FUSION"u8;
+
+ [NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT \"SDL_GDK_TEXTINPUT_DEFAULT_TEXT\"")]
+ public static ReadOnlySpan SDL_HINT_GDK_TEXTINPUT_DEFAULT_TEXT => "SDL_GDK_TEXTINPUT_DEFAULT_TEXT"u8;
+
+ [NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_DESCRIPTION \"SDL_GDK_TEXTINPUT_DESCRIPTION\"")]
+ public static ReadOnlySpan SDL_HINT_GDK_TEXTINPUT_DESCRIPTION => "SDL_GDK_TEXTINPUT_DESCRIPTION"u8;
+
+ [NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH \"SDL_GDK_TEXTINPUT_MAX_LENGTH\"")]
+ public static ReadOnlySpan SDL_HINT_GDK_TEXTINPUT_MAX_LENGTH => "SDL_GDK_TEXTINPUT_MAX_LENGTH"u8;
+
+ [NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_SCOPE \"SDL_GDK_TEXTINPUT_SCOPE\"")]
+ public static ReadOnlySpan SDL_HINT_GDK_TEXTINPUT_SCOPE => "SDL_GDK_TEXTINPUT_SCOPE"u8;
+
+ [NativeTypeName("#define SDL_HINT_GDK_TEXTINPUT_TITLE \"SDL_GDK_TEXTINPUT_TITLE\"")]
+ public static ReadOnlySpan SDL_HINT_GDK_TEXTINPUT_TITLE => "SDL_GDK_TEXTINPUT_TITLE"u8;
+
+ [NativeTypeName("#define SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS \"SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS\"")]
+ public static ReadOnlySpan SDL_HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS => "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS"u8;
+
+ [NativeTypeName("#define SDL_HINT_HIDAPI_IGNORE_DEVICES \"SDL_HIDAPI_IGNORE_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_HIDAPI_IGNORE_DEVICES => "SDL_HIDAPI_IGNORE_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_IME_INTERNAL_EDITING \"SDL_IME_INTERNAL_EDITING\"")]
+ public static ReadOnlySpan SDL_HINT_IME_INTERNAL_EDITING => "SDL_IME_INTERNAL_EDITING"u8;
+
+ [NativeTypeName("#define SDL_HINT_IME_SHOW_UI \"SDL_IME_SHOW_UI\"")]
+ public static ReadOnlySpan SDL_HINT_IME_SHOW_UI => "SDL_IME_SHOW_UI"u8;
+
+ [NativeTypeName("#define SDL_HINT_IOS_HIDE_HOME_INDICATOR \"SDL_IOS_HIDE_HOME_INDICATOR\"")]
+ public static ReadOnlySpan SDL_HINT_IOS_HIDE_HOME_INDICATOR => "SDL_IOS_HIDE_HOME_INDICATOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS \"SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS => "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES \"SDL_JOYSTICK_ARCADESTICK_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES => "SDL_JOYSTICK_ARCADESTICK_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED \"SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED => "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES \"SDL_JOYSTICK_BLACKLIST_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_BLACKLIST_DEVICES => "SDL_JOYSTICK_BLACKLIST_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED \"SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED => "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_DEVICE \"SDL_JOYSTICK_DEVICE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_DEVICE => "SDL_JOYSTICK_DEVICE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES \"SDL_JOYSTICK_FLIGHTSTICK_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES => "SDL_JOYSTICK_FLIGHTSTICK_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED \"SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED => "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES \"SDL_JOYSTICK_GAMECUBE_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_GAMECUBE_DEVICES => "SDL_JOYSTICK_GAMECUBE_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED \"SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED => "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI \"SDL_JOYSTICK_HIDAPI\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI => "SDL_JOYSTICK_HIDAPI"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS \"SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS => "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE \"SDL_JOYSTICK_HIDAPI_GAMECUBE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE => "SDL_JOYSTICK_HIDAPI_GAMECUBE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE \"SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE => "SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS \"SDL_JOYSTICK_HIDAPI_JOY_CONS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS => "SDL_JOYSTICK_HIDAPI_JOY_CONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED \"SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED => "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_LUNA \"SDL_JOYSTICK_HIDAPI_LUNA\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_LUNA => "SDL_JOYSTICK_HIDAPI_LUNA"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC \"SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC => "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS3 \"SDL_JOYSTICK_HIDAPI_PS3\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS3 => "SDL_JOYSTICK_HIDAPI_PS3"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER \"SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER => "SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS4 \"SDL_JOYSTICK_HIDAPI_PS4\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS4 => "SDL_JOYSTICK_HIDAPI_PS4"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE \"SDL_JOYSTICK_HIDAPI_PS4_RUMBLE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE => "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5 \"SDL_JOYSTICK_HIDAPI_PS5\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS5 => "SDL_JOYSTICK_HIDAPI_PS5"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE \"SDL_JOYSTICK_HIDAPI_PS5_RUMBLE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE => "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SHIELD \"SDL_JOYSTICK_HIDAPI_SHIELD\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_SHIELD => "SDL_JOYSTICK_HIDAPI_SHIELD"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STADIA \"SDL_JOYSTICK_HIDAPI_STADIA\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_STADIA => "SDL_JOYSTICK_HIDAPI_STADIA"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAM \"SDL_JOYSTICK_HIDAPI_STEAM\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_STEAM => "SDL_JOYSTICK_HIDAPI_STEAM"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK \"SDL_JOYSTICK_HIDAPI_STEAMDECK\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_STEAMDECK => "SDL_JOYSTICK_HIDAPI_STEAMDECK"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH \"SDL_JOYSTICK_HIDAPI_SWITCH\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_SWITCH => "SDL_JOYSTICK_HIDAPI_SWITCH"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED \"SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED => "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS \"SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS => "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_WII \"SDL_JOYSTICK_HIDAPI_WII\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_WII => "SDL_JOYSTICK_HIDAPI_WII"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX \"SDL_JOYSTICK_HIDAPI_XBOX\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX => "SDL_JOYSTICK_HIDAPI_XBOX"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 \"SDL_JOYSTICK_HIDAPI_XBOX_360\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX_360 => "SDL_JOYSTICK_HIDAPI_XBOX_360"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED \"SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED => "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS \"SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS => "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE \"SDL_JOYSTICK_HIDAPI_XBOX_ONE\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE => "SDL_JOYSTICK_HIDAPI_XBOX_ONE"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED \"SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED => "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_IOKIT \"SDL_JOYSTICK_IOKIT\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_IOKIT => "SDL_JOYSTICK_IOKIT"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_LINUX_CLASSIC \"SDL_JOYSTICK_LINUX_CLASSIC\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_LINUX_CLASSIC => "SDL_JOYSTICK_LINUX_CLASSIC"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_LINUX_DEADZONES \"SDL_JOYSTICK_LINUX_DEADZONES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_LINUX_DEADZONES => "SDL_JOYSTICK_LINUX_DEADZONES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS \"SDL_JOYSTICK_LINUX_DIGITAL_HATS\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_LINUX_DIGITAL_HATS => "SDL_JOYSTICK_LINUX_DIGITAL_HATS"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES \"SDL_JOYSTICK_LINUX_HAT_DEADZONES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_LINUX_HAT_DEADZONES => "SDL_JOYSTICK_LINUX_HAT_DEADZONES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_MFI \"SDL_JOYSTICK_MFI\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_MFI => "SDL_JOYSTICK_MFI"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_RAWINPUT \"SDL_JOYSTICK_RAWINPUT\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_RAWINPUT => "SDL_JOYSTICK_RAWINPUT"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT \"SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT => "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_ROG_CHAKRAM \"SDL_JOYSTICK_ROG_CHAKRAM\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_ROG_CHAKRAM => "SDL_JOYSTICK_ROG_CHAKRAM"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_THREAD \"SDL_JOYSTICK_THREAD\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_THREAD => "SDL_JOYSTICK_THREAD"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES \"SDL_JOYSTICK_THROTTLE_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_THROTTLE_DEVICES => "SDL_JOYSTICK_THROTTLE_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED \"SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED => "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_WGI \"SDL_JOYSTICK_WGI\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_WGI => "SDL_JOYSTICK_WGI"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_WHEEL_DEVICES \"SDL_JOYSTICK_WHEEL_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_WHEEL_DEVICES => "SDL_JOYSTICK_WHEEL_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED \"SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED => "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES \"SDL_JOYSTICK_ZERO_CENTERED_DEVICES\"")]
+ public static ReadOnlySpan SDL_HINT_JOYSTICK_ZERO_CENTERED_DEVICES => "SDL_JOYSTICK_ZERO_CENTERED_DEVICES"u8;
+
+ [NativeTypeName("#define SDL_HINT_KMSDRM_DEVICE_INDEX \"SDL_KMSDRM_DEVICE_INDEX\"")]
+ public static ReadOnlySpan SDL_HINT_KMSDRM_DEVICE_INDEX => "SDL_KMSDRM_DEVICE_INDEX"u8;
+
+ [NativeTypeName("#define SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER \"SDL_KMSDRM_REQUIRE_DRM_MASTER\"")]
+ public static ReadOnlySpan SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER => "SDL_KMSDRM_REQUIRE_DRM_MASTER"u8;
+
+ [NativeTypeName("#define SDL_HINT_LOGGING \"SDL_LOGGING\"")]
+ public static ReadOnlySpan SDL_HINT_LOGGING => "SDL_LOGGING"u8;
+
+ [NativeTypeName("#define SDL_HINT_MAC_BACKGROUND_APP \"SDL_MAC_BACKGROUND_APP\"")]
+ public static ReadOnlySpan SDL_HINT_MAC_BACKGROUND_APP => "SDL_MAC_BACKGROUND_APP"u8;
+
+ [NativeTypeName("#define SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK \"SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK\"")]
+ public static ReadOnlySpan SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK => "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"u8;
+
+ [NativeTypeName("#define SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH \"SDL_MAC_OPENGL_ASYNC_DISPATCH\"")]
+ public static ReadOnlySpan SDL_HINT_MAC_OPENGL_ASYNC_DISPATCH => "SDL_MAC_OPENGL_ASYNC_DISPATCH"u8;
+
+ [NativeTypeName("#define SDL_HINT_MAIN_CALLBACK_RATE \"SDL_MAIN_CALLBACK_RATE\"")]
+ public static ReadOnlySpan SDL_HINT_MAIN_CALLBACK_RATE => "SDL_MAIN_CALLBACK_RATE"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_AUTO_CAPTURE \"SDL_MOUSE_AUTO_CAPTURE\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_AUTO_CAPTURE => "SDL_MOUSE_AUTO_CAPTURE"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS \"SDL_MOUSE_DOUBLE_CLICK_RADIUS\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS => "SDL_MOUSE_DOUBLE_CLICK_RADIUS"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_DOUBLE_CLICK_TIME \"SDL_MOUSE_DOUBLE_CLICK_TIME\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_DOUBLE_CLICK_TIME => "SDL_MOUSE_DOUBLE_CLICK_TIME"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH \"SDL_MOUSE_FOCUS_CLICKTHROUGH\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH => "SDL_MOUSE_FOCUS_CLICKTHROUGH"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE \"SDL_MOUSE_NORMAL_SPEED_SCALE\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_NORMAL_SPEED_SCALE => "SDL_MOUSE_NORMAL_SPEED_SCALE"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_MODE_CENTER \"SDL_MOUSE_RELATIVE_MODE_CENTER\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_RELATIVE_MODE_CENTER => "SDL_MOUSE_RELATIVE_MODE_CENTER"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_MODE_WARP \"SDL_MOUSE_RELATIVE_MODE_WARP\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_RELATIVE_MODE_WARP => "SDL_MOUSE_RELATIVE_MODE_WARP"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE \"SDL_MOUSE_RELATIVE_SPEED_SCALE\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE => "SDL_MOUSE_RELATIVE_SPEED_SCALE"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE \"SDL_MOUSE_RELATIVE_SYSTEM_SCALE\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE => "SDL_MOUSE_RELATIVE_SYSTEM_SCALE"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_RELATIVE_WARP_MOTION \"SDL_MOUSE_RELATIVE_WARP_MOTION\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_RELATIVE_WARP_MOTION => "SDL_MOUSE_RELATIVE_WARP_MOTION"u8;
+
+ [NativeTypeName("#define SDL_HINT_MOUSE_TOUCH_EVENTS \"SDL_MOUSE_TOUCH_EVENTS\"")]
+ public static ReadOnlySpan SDL_HINT_MOUSE_TOUCH_EVENTS => "SDL_MOUSE_TOUCH_EVENTS"u8;
+
+ [NativeTypeName("#define SDL_HINT_NO_SIGNAL_HANDLERS \"SDL_NO_SIGNAL_HANDLERS\"")]
+ public static ReadOnlySpan SDL_HINT_NO_SIGNAL_HANDLERS => "SDL_NO_SIGNAL_HANDLERS"u8;
+
+ [NativeTypeName("#define SDL_HINT_OPENGL_ES_DRIVER \"SDL_OPENGL_ES_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_OPENGL_ES_DRIVER => "SDL_OPENGL_ES_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_ORIENTATIONS \"SDL_IOS_ORIENTATIONS\"")]
+ public static ReadOnlySpan SDL_HINT_ORIENTATIONS => "SDL_IOS_ORIENTATIONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_PEN_DELAY_MOUSE_BUTTON \"SDL_PEN_DELAY_MOUSE_BUTTON\"")]
+ public static ReadOnlySpan SDL_HINT_PEN_DELAY_MOUSE_BUTTON => "SDL_PEN_DELAY_MOUSE_BUTTON"u8;
+
+ [NativeTypeName("#define SDL_HINT_PEN_NOT_MOUSE \"SDL_PEN_NOT_MOUSE\"")]
+ public static ReadOnlySpan SDL_HINT_PEN_NOT_MOUSE => "SDL_PEN_NOT_MOUSE"u8;
+
+ [NativeTypeName("#define SDL_HINT_POLL_SENTINEL \"SDL_POLL_SENTINEL\"")]
+ public static ReadOnlySpan SDL_HINT_POLL_SENTINEL => "SDL_POLL_SENTINEL"u8;
+
+ [NativeTypeName("#define SDL_HINT_PREFERRED_LOCALES \"SDL_PREFERRED_LOCALES\"")]
+ public static ReadOnlySpan SDL_HINT_PREFERRED_LOCALES => "SDL_PREFERRED_LOCALES"u8;
+
+ [NativeTypeName("#define SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE \"SDL_QUIT_ON_LAST_WINDOW_CLOSE\"")]
+ public static ReadOnlySpan SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE => "SDL_QUIT_ON_LAST_WINDOW_CLOSE"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_DIRECT3D_THREADSAFE \"SDL_RENDER_DIRECT3D_THREADSAFE\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_DIRECT3D_THREADSAFE => "SDL_RENDER_DIRECT3D_THREADSAFE"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_DIRECT3D11_DEBUG \"SDL_RENDER_DIRECT3D11_DEBUG\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_DIRECT3D11_DEBUG => "SDL_RENDER_DIRECT3D11_DEBUG"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_VULKAN_DEBUG \"SDL_RENDER_VULKAN_DEBUG\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_VULKAN_DEBUG => "SDL_RENDER_VULKAN_DEBUG"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_DRIVER \"SDL_RENDER_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_DRIVER => "SDL_RENDER_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_LINE_METHOD \"SDL_RENDER_LINE_METHOD\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_LINE_METHOD => "SDL_RENDER_LINE_METHOD"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE \"SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE\"")]
+ public static ReadOnlySpan 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 SDL_HINT_RENDER_PS2_DYNAMIC_VSYNC => "SDL_RENDER_PS2_DYNAMIC_VSYNC"u8;
+
+ [NativeTypeName("#define SDL_HINT_RENDER_VSYNC \"SDL_RENDER_VSYNC\"")]
+ public static ReadOnlySpan SDL_HINT_RENDER_VSYNC => "SDL_RENDER_VSYNC"u8;
+
+ [NativeTypeName("#define SDL_HINT_RETURN_KEY_HIDES_IME \"SDL_RETURN_KEY_HIDES_IME\"")]
+ public static ReadOnlySpan SDL_HINT_RETURN_KEY_HIDES_IME => "SDL_RETURN_KEY_HIDES_IME"u8;
+
+ [NativeTypeName("#define SDL_HINT_ROG_GAMEPAD_MICE \"SDL_ROG_GAMEPAD_MICE\"")]
+ public static ReadOnlySpan SDL_HINT_ROG_GAMEPAD_MICE => "SDL_ROG_GAMEPAD_MICE"u8;
+
+ [NativeTypeName("#define SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED \"SDL_ROG_GAMEPAD_MICE_EXCLUDED\"")]
+ public static ReadOnlySpan SDL_HINT_ROG_GAMEPAD_MICE_EXCLUDED => "SDL_ROG_GAMEPAD_MICE_EXCLUDED"u8;
+
+ [NativeTypeName("#define SDL_HINT_RPI_VIDEO_LAYER \"SDL_RPI_VIDEO_LAYER\"")]
+ public static ReadOnlySpan SDL_HINT_RPI_VIDEO_LAYER => "SDL_RPI_VIDEO_LAYER"u8;
+
+ [NativeTypeName("#define SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME \"SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME\"")]
+ public static ReadOnlySpan SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME => "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"u8;
+
+ [NativeTypeName("#define SDL_HINT_SHUTDOWN_DBUS_ON_QUIT \"SDL_SHUTDOWN_DBUS_ON_QUIT\"")]
+ public static ReadOnlySpan SDL_HINT_SHUTDOWN_DBUS_ON_QUIT => "SDL_SHUTDOWN_DBUS_ON_QUIT"u8;
+
+ [NativeTypeName("#define SDL_HINT_STORAGE_TITLE_DRIVER \"SDL_STORAGE_TITLE_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_STORAGE_TITLE_DRIVER => "SDL_STORAGE_TITLE_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_STORAGE_USER_DRIVER \"SDL_STORAGE_USER_DRIVER\"")]
+ public static ReadOnlySpan SDL_HINT_STORAGE_USER_DRIVER => "SDL_STORAGE_USER_DRIVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL \"SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL\"")]
+ public static ReadOnlySpan SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL => "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"u8;
+
+ [NativeTypeName("#define SDL_HINT_THREAD_PRIORITY_POLICY \"SDL_THREAD_PRIORITY_POLICY\"")]
+ public static ReadOnlySpan SDL_HINT_THREAD_PRIORITY_POLICY => "SDL_THREAD_PRIORITY_POLICY"u8;
+
+ [NativeTypeName("#define SDL_HINT_TIMER_RESOLUTION \"SDL_TIMER_RESOLUTION\"")]
+ public static ReadOnlySpan SDL_HINT_TIMER_RESOLUTION => "SDL_TIMER_RESOLUTION"u8;
+
+ [NativeTypeName("#define SDL_HINT_TOUCH_MOUSE_EVENTS \"SDL_TOUCH_MOUSE_EVENTS\"")]
+ public static ReadOnlySpan SDL_HINT_TOUCH_MOUSE_EVENTS => "SDL_TOUCH_MOUSE_EVENTS"u8;
+
+ [NativeTypeName("#define SDL_HINT_TRACKPAD_IS_TOUCH_ONLY \"SDL_TRACKPAD_IS_TOUCH_ONLY\"")]
+ public static ReadOnlySpan SDL_HINT_TRACKPAD_IS_TOUCH_ONLY => "SDL_TRACKPAD_IS_TOUCH_ONLY"u8;
+
+ [NativeTypeName("#define SDL_HINT_TV_REMOTE_AS_JOYSTICK \"SDL_TV_REMOTE_AS_JOYSTICK\"")]
+ public static ReadOnlySpan SDL_HINT_TV_REMOTE_AS_JOYSTICK => "SDL_TV_REMOTE_AS_JOYSTICK"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_ALLOW_SCREENSAVER \"SDL_VIDEO_ALLOW_SCREENSAVER\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_ALLOW_SCREENSAVER => "SDL_VIDEO_ALLOW_SCREENSAVER"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_DOUBLE_BUFFER \"SDL_VIDEO_DOUBLE_BUFFER\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_DOUBLE_BUFFER => "SDL_VIDEO_DOUBLE_BUFFER"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_DRIVER \"SDL_VIDEO_DRIVER\"")]
+ public static ReadOnlySpan 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 SDL_HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK => "SDL_VIDEO_EGL_GETDISPLAY_FALLBACK"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_FORCE_EGL \"SDL_VIDEO_FORCE_EGL\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_FORCE_EGL => "SDL_VIDEO_FORCE_EGL"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES \"SDL_VIDEO_MAC_FULLSCREEN_SPACES\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES => "SDL_VIDEO_MAC_FULLSCREEN_SPACES"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS \"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS => "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS \"SDL_VIDEO_SYNC_WINDOW_OPERATIONS\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_SYNC_WINDOW_OPERATIONS => "SDL_VIDEO_SYNC_WINDOW_OPERATIONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR \"SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR => "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP \"SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP => "SDL_VIDEO_WAYLAND_EMULATE_MOUSE_WARP"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION \"SDL_VIDEO_WAYLAND_MODE_EMULATION\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_MODE_EMULATION => "SDL_VIDEO_WAYLAND_MODE_EMULATION"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_MODE_SCALING \"SDL_VIDEO_WAYLAND_MODE_SCALING\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_MODE_SCALING => "SDL_VIDEO_WAYLAND_MODE_SCALING"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR \"SDL_VIDEO_WAYLAND_PREFER_LIBDECOR\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR => "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY \"SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY => "SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_WIN_D3DCOMPILER \"SDL_VIDEO_WIN_D3DCOMPILER\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_WIN_D3DCOMPILER => "SDL_VIDEO_WIN_D3DCOMPILER"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR \"SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR => "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_X11_NET_WM_PING \"SDL_VIDEO_X11_NET_WM_PING\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_X11_NET_WM_PING => "SDL_VIDEO_X11_NET_WM_PING"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_X11_SCALING_FACTOR \"SDL_VIDEO_X11_SCALING_FACTOR\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_X11_SCALING_FACTOR => "SDL_VIDEO_X11_SCALING_FACTOR"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_X11_WINDOW_VISUALID \"SDL_VIDEO_X11_WINDOW_VISUALID\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_X11_WINDOW_VISUALID => "SDL_VIDEO_X11_WINDOW_VISUALID"u8;
+
+ [NativeTypeName("#define SDL_HINT_VIDEO_X11_XRANDR \"SDL_VIDEO_X11_XRANDR\"")]
+ public static ReadOnlySpan SDL_HINT_VIDEO_X11_XRANDR => "SDL_VIDEO_X11_XRANDR"u8;
+
+ [NativeTypeName("#define SDL_HINT_VITA_TOUCH_MOUSE_DEVICE \"SDL_VITA_TOUCH_MOUSE_DEVICE\"")]
+ public static ReadOnlySpan SDL_HINT_VITA_TOUCH_MOUSE_DEVICE => "SDL_VITA_TOUCH_MOUSE_DEVICE"u8;
+
+ [NativeTypeName("#define SDL_HINT_WAVE_FACT_CHUNK \"SDL_WAVE_FACT_CHUNK\"")]
+ public static ReadOnlySpan SDL_HINT_WAVE_FACT_CHUNK => "SDL_WAVE_FACT_CHUNK"u8;
+
+ [NativeTypeName("#define SDL_HINT_WAVE_RIFF_CHUNK_SIZE \"SDL_WAVE_RIFF_CHUNK_SIZE\"")]
+ public static ReadOnlySpan SDL_HINT_WAVE_RIFF_CHUNK_SIZE => "SDL_WAVE_RIFF_CHUNK_SIZE"u8;
+
+ [NativeTypeName("#define SDL_HINT_WAVE_TRUNCATION \"SDL_WAVE_TRUNCATION\"")]
+ public static ReadOnlySpan SDL_HINT_WAVE_TRUNCATION => "SDL_WAVE_TRUNCATION"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED \"SDL_WINDOW_ACTIVATE_WHEN_RAISED\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOW_ACTIVATE_WHEN_RAISED => "SDL_WINDOW_ACTIVATE_WHEN_RAISED"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN \"SDL_WINDOW_ACTIVATE_WHEN_SHOWN\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN => "SDL_WINDOW_ACTIVATE_WHEN_SHOWN"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOW_ALLOW_TOPMOST \"SDL_WINDOW_ALLOW_TOPMOST\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOW_ALLOW_TOPMOST => "SDL_WINDOW_ALLOW_TOPMOST"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN \"SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN => "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4 \"SDL_WINDOWS_CLOSE_ON_ALT_F4\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4 => "SDL_WINDOWS_CLOSE_ON_ALT_F4"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS \"SDL_WINDOWS_ENABLE_MENU_MNEMONICS\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS => "SDL_WINDOWS_ENABLE_MENU_MNEMONICS"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP \"SDL_WINDOWS_ENABLE_MESSAGELOOP\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP => "SDL_WINDOWS_ENABLE_MESSAGELOOP"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_RAW_KEYBOARD \"SDL_WINDOWS_RAW_KEYBOARD\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_RAW_KEYBOARD => "SDL_WINDOWS_RAW_KEYBOARD"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS \"SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS => "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL \"SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL => "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_INTRESOURCE_ICON \"SDL_WINDOWS_INTRESOURCE_ICON\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_INTRESOURCE_ICON => "SDL_WINDOWS_INTRESOURCE_ICON"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL \"SDL_WINDOWS_INTRESOURCE_ICON_SMALL\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL => "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINDOWS_USE_D3D9EX \"SDL_WINDOWS_USE_D3D9EX\"")]
+ public static ReadOnlySpan SDL_HINT_WINDOWS_USE_D3D9EX => "SDL_WINDOWS_USE_D3D9EX"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINRT_HANDLE_BACK_BUTTON \"SDL_WINRT_HANDLE_BACK_BUTTON\"")]
+ public static ReadOnlySpan SDL_HINT_WINRT_HANDLE_BACK_BUTTON => "SDL_WINRT_HANDLE_BACK_BUTTON"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINRT_PRIVACY_POLICY_LABEL \"SDL_WINRT_PRIVACY_POLICY_LABEL\"")]
+ public static ReadOnlySpan SDL_HINT_WINRT_PRIVACY_POLICY_LABEL => "SDL_WINRT_PRIVACY_POLICY_LABEL"u8;
+
+ [NativeTypeName("#define SDL_HINT_WINRT_PRIVACY_POLICY_URL \"SDL_WINRT_PRIVACY_POLICY_URL\"")]
+ public static ReadOnlySpan SDL_HINT_WINRT_PRIVACY_POLICY_URL => "SDL_WINRT_PRIVACY_POLICY_URL"u8;
+
+ [NativeTypeName("#define SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT \"SDL_X11_FORCE_OVERRIDE_REDIRECT\"")]
+ public static ReadOnlySpan SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT => "SDL_X11_FORCE_OVERRIDE_REDIRECT"u8;
+
+ [NativeTypeName("#define SDL_HINT_X11_WINDOW_TYPE \"SDL_X11_WINDOW_TYPE\"")]
+ public static ReadOnlySpan SDL_HINT_X11_WINDOW_TYPE => "SDL_X11_WINDOW_TYPE"u8;
+
+ [NativeTypeName("#define SDL_HINT_XINPUT_ENABLED \"SDL_XINPUT_ENABLED\"")]
+ public static ReadOnlySpan SDL_HINT_XINPUT_ENABLED => "SDL_XINPUT_ENABLED"u8;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_init.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_init.g.cs
new file mode 100644
index 0000000..5076d55
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_init.g.cs
@@ -0,0 +1,61 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ 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);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_InitSubSystem([NativeTypeName("Uint32")] uint flags);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_QuitSubSystem([NativeTypeName("Uint32")] uint flags);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint32")]
+ public static extern uint SDL_WasInit([NativeTypeName("Uint32")] uint flags);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_Quit();
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_iostream.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_iostream.g.cs
new file mode 100644
index 0000000..ba7b2f9
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_iostream.g.cs
@@ -0,0 +1,252 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public enum SDL_IOStatus
+ {
+ SDL_IO_STATUS_READY,
+ SDL_IO_STATUS_ERROR,
+ SDL_IO_STATUS_EOF,
+ SDL_IO_STATUS_NOT_READY,
+ SDL_IO_STATUS_READONLY,
+ SDL_IO_STATUS_WRITEONLY,
+ }
+
+ public unsafe partial struct SDL_IOStreamInterface
+ {
+ [NativeTypeName("Sint64 (*)(void *) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] size;
+
+ [NativeTypeName("Sint64 (*)(void *, Sint64, int) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] seek;
+
+ [NativeTypeName("size_t (*)(void *, void *, size_t, SDL_IOStatus *) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] read;
+
+ [NativeTypeName("size_t (*)(void *, const void *, size_t, SDL_IOStatus *) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] write;
+
+ [NativeTypeName("int (*)(void *) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] close;
+ }
+
+ public partial struct SDL_IOStream
+ {
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStream* SDL_IOFromFile([NativeTypeName("const char *")] sbyte* file, [NativeTypeName("const char *")] sbyte* mode);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStream* SDL_IOFromMem(void* mem, [NativeTypeName("size_t")] nuint size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStream* SDL_IOFromConstMem([NativeTypeName("const void *")] void* mem, [NativeTypeName("size_t")] nuint size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStream* SDL_IOFromDynamicMem();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStream* SDL_OpenIO([NativeTypeName("const SDL_IOStreamInterface *")] SDL_IOStreamInterface* iface, void* userdata);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_CloseIO(SDL_IOStream* context);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_PropertiesID")]
+ public static extern uint SDL_GetIOProperties(SDL_IOStream* context);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_IOStatus SDL_GetIOStatus(SDL_IOStream* context);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Sint64")]
+ public static extern long SDL_GetIOSize(SDL_IOStream* context);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Sint64")]
+ public static extern long SDL_SeekIO(SDL_IOStream* context, [NativeTypeName("Sint64")] long offset, int whence);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Sint64")]
+ public static extern long SDL_TellIO(SDL_IOStream* context);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("size_t")]
+ public static extern nuint SDL_ReadIO(SDL_IOStream* context, void* ptr, [NativeTypeName("size_t")] nuint size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("size_t")]
+ public static extern nuint SDL_WriteIO(SDL_IOStream* context, [NativeTypeName("const void *")] void* ptr, [NativeTypeName("size_t")] nuint size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("size_t")]
+ public static extern nuint SDL_IOprintf(SDL_IOStream* context, [NativeTypeName("const char *")] sbyte* fmt, __arglist);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("size_t")]
+ public static extern nuint SDL_IOvprintf(SDL_IOStream* context, [NativeTypeName("const char *")] sbyte* fmt, [NativeTypeName("va_list")] sbyte* ap);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_LoadFile_IO(SDL_IOStream* src, [NativeTypeName("size_t *")] nuint* datasize, [NativeTypeName("SDL_bool")] int closeio);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void* SDL_LoadFile([NativeTypeName("const char *")] sbyte* file, [NativeTypeName("size_t *")] nuint* datasize);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU8(SDL_IOStream* src, [NativeTypeName("Uint8 *")] byte* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU16LE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS16LE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU16BE(SDL_IOStream* src, [NativeTypeName("Uint16 *")] ushort* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS16BE(SDL_IOStream* src, [NativeTypeName("Sint16 *")] short* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU32LE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS32LE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU32BE(SDL_IOStream* src, [NativeTypeName("Uint32 *")] uint* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS32BE(SDL_IOStream* src, [NativeTypeName("Sint32 *")] int* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU64LE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS64LE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadU64BE(SDL_IOStream* src, [NativeTypeName("Uint64 *")] ulong* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_ReadS64BE(SDL_IOStream* src, [NativeTypeName("Sint64 *")] long* value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU8(SDL_IOStream* dst, [NativeTypeName("Uint8")] byte value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU16LE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS16LE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU16BE(SDL_IOStream* dst, [NativeTypeName("Uint16")] ushort value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS16BE(SDL_IOStream* dst, [NativeTypeName("Sint16")] short value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU32LE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS32LE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU32BE(SDL_IOStream* dst, [NativeTypeName("Uint32")] uint value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS32BE(SDL_IOStream* dst, [NativeTypeName("Sint32")] int value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU64LE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS64LE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteU64BE(SDL_IOStream* dst, [NativeTypeName("Uint64")] ulong value);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_WriteS64BE(SDL_IOStream* dst, [NativeTypeName("Sint64")] long value);
+
+ [NativeTypeName("#define SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER \"SDL.iostream.windows.handle\"")]
+ public static ReadOnlySpan SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER => "SDL.iostream.windows.handle"u8;
+
+ [NativeTypeName("#define SDL_PROP_IOSTREAM_STDIO_FILE_POINTER \"SDL.iostream.stdio.file\"")]
+ public static ReadOnlySpan SDL_PROP_IOSTREAM_STDIO_FILE_POINTER => "SDL.iostream.stdio.file"u8;
+
+ [NativeTypeName("#define SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER \"SDL.iostream.android.aasset\"")]
+ public static ReadOnlySpan SDL_PROP_IOSTREAM_ANDROID_AASSET_POINTER => "SDL.iostream.android.aasset"u8;
+
+ [NativeTypeName("#define SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER \"SDL.iostream.dynamic.memory\"")]
+ public static ReadOnlySpan SDL_PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER => "SDL.iostream.dynamic.memory"u8;
+
+ [NativeTypeName("#define SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER \"SDL.iostream.dynamic.chunksize\"")]
+ public static ReadOnlySpan SDL_PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER => "SDL.iostream.dynamic.chunksize"u8;
+
+ [NativeTypeName("#define SDL_IO_SEEK_SET 0")]
+ public const int SDL_IO_SEEK_SET = 0;
+
+ [NativeTypeName("#define SDL_IO_SEEK_CUR 1")]
+ public const int SDL_IO_SEEK_CUR = 1;
+
+ [NativeTypeName("#define SDL_IO_SEEK_END 2")]
+ public const int SDL_IO_SEEK_END = 2;
+ }
+}
diff --git a/SDL3-CS/SDL3/ClangSharp/SDL_joystick.g.cs b/SDL3-CS/SDL3/ClangSharp/SDL_joystick.g.cs
new file mode 100644
index 0000000..fc646fb
--- /dev/null
+++ b/SDL3-CS/SDL3/ClangSharp/SDL_joystick.g.cs
@@ -0,0 +1,371 @@
+/*
+
+ C# bindings for Simple DirectMedia Layer.
+ Original copyright notice of input files:
+
+ Simple DirectMedia Layer
+ Copyright (C) 1997-2024 Sam Lantinga
+
+ 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.
+*/
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace SDL
+{
+ public partial struct SDL_Joystick
+ {
+ }
+
+ public enum SDL_JoystickType
+ {
+ SDL_JOYSTICK_TYPE_UNKNOWN,
+ SDL_JOYSTICK_TYPE_GAMEPAD,
+ SDL_JOYSTICK_TYPE_WHEEL,
+ SDL_JOYSTICK_TYPE_ARCADE_STICK,
+ SDL_JOYSTICK_TYPE_FLIGHT_STICK,
+ SDL_JOYSTICK_TYPE_DANCE_PAD,
+ SDL_JOYSTICK_TYPE_GUITAR,
+ SDL_JOYSTICK_TYPE_DRUM_KIT,
+ SDL_JOYSTICK_TYPE_ARCADE_PAD,
+ SDL_JOYSTICK_TYPE_THROTTLE,
+ }
+
+ public enum SDL_JoystickConnectionState
+ {
+ SDL_JOYSTICK_CONNECTION_INVALID = -1,
+ SDL_JOYSTICK_CONNECTION_UNKNOWN,
+ SDL_JOYSTICK_CONNECTION_WIRED,
+ SDL_JOYSTICK_CONNECTION_WIRELESS,
+ }
+
+ public unsafe partial struct SDL_VirtualJoystickDesc
+ {
+ [NativeTypeName("Uint16")]
+ public ushort version;
+
+ [NativeTypeName("Uint16")]
+ public ushort type;
+
+ [NativeTypeName("Uint16")]
+ public ushort naxes;
+
+ [NativeTypeName("Uint16")]
+ public ushort nbuttons;
+
+ [NativeTypeName("Uint16")]
+ public ushort nhats;
+
+ [NativeTypeName("Uint16")]
+ public ushort vendor_id;
+
+ [NativeTypeName("Uint16")]
+ public ushort product_id;
+
+ [NativeTypeName("Uint16")]
+ public ushort padding;
+
+ [NativeTypeName("Uint32")]
+ public uint button_mask;
+
+ [NativeTypeName("Uint32")]
+ public uint axis_mask;
+
+ [NativeTypeName("const char *")]
+ public sbyte* name;
+
+ public void* userdata;
+
+ [NativeTypeName("void (*)(void *) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] Update;
+
+ [NativeTypeName("void (*)(void *, int) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] SetPlayerIndex;
+
+ [NativeTypeName("int (*)(void *, Uint16, Uint16) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] Rumble;
+
+ [NativeTypeName("int (*)(void *, Uint16, Uint16) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] RumbleTriggers;
+
+ [NativeTypeName("int (*)(void *, Uint8, Uint8, Uint8) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] SetLED;
+
+ [NativeTypeName("int (*)(void *, const void *, int) __attribute__((cdecl))")]
+ public delegate* unmanaged[Cdecl] SendEffect;
+ }
+
+ public static unsafe partial class SDL3
+ {
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_LockJoysticks();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UnlockJoysticks();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_HasJoystick();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID *")]
+ public static extern uint* SDL_GetJoysticks(int* count);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetJoystickInstanceName([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetJoystickInstancePath([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetJoystickInstancePlayerIndex([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickGUID")]
+ public static extern SDL_GUID SDL_GetJoystickInstanceGUID([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickInstanceVendor([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickInstanceProduct([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickInstanceProductVersion([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_JoystickType SDL_GetJoystickInstanceType([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Joystick* SDL_OpenJoystick([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Joystick* SDL_GetJoystickFromInstanceID([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_Joystick* SDL_GetJoystickFromPlayerIndex(int player_index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID")]
+ public static extern uint SDL_AttachVirtualJoystick(SDL_JoystickType type, int naxes, int nbuttons, int nhats);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID")]
+ public static extern uint SDL_AttachVirtualJoystickEx([NativeTypeName("const SDL_VirtualJoystickDesc *")] SDL_VirtualJoystickDesc* desc);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_DetachVirtualJoystick([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_IsJoystickVirtual([NativeTypeName("SDL_JoystickID")] uint instance_id);
+
+ [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_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)]
+ [return: NativeTypeName("SDL_PropertiesID")]
+ public static extern uint SDL_GetJoystickProperties(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetJoystickName(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetJoystickPath(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetJoystickPlayerIndex(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetJoystickPlayerIndex(SDL_Joystick* joystick, int player_index);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickGUID")]
+ public static extern SDL_GUID SDL_GetJoystickGUID(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickVendor(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickProduct(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickProductVersion(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint16")]
+ public static extern ushort SDL_GetJoystickFirmwareVersion(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("const char *")]
+ public static extern sbyte* SDL_GetJoystickSerial(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_JoystickType SDL_GetJoystickType(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetJoystickGUIDString([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid, [NativeTypeName("char *")] sbyte* pszGUID, int cbGUID);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickGUID")]
+ public static extern SDL_GUID SDL_GetJoystickGUIDFromString([NativeTypeName("const char *")] sbyte* pchGUID);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_GetJoystickGUIDInfo([NativeTypeName("SDL_JoystickGUID")] SDL_GUID guid, [NativeTypeName("Uint16 *")] ushort* vendor, [NativeTypeName("Uint16 *")] ushort* product, [NativeTypeName("Uint16 *")] ushort* version, [NativeTypeName("Uint16 *")] ushort* crc16);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_JoystickConnected(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_JoystickID")]
+ public static extern uint SDL_GetJoystickInstanceID(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumJoystickAxes(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumJoystickBalls(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumJoystickHats(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetNumJoystickButtons(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_SetJoystickEventsEnabled([NativeTypeName("SDL_bool")] int enabled);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_JoystickEventsEnabled();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_UpdateJoysticks();
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Sint16")]
+ public static extern short SDL_GetJoystickAxis(SDL_Joystick* joystick, int axis);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("SDL_bool")]
+ public static extern int SDL_GetJoystickAxisInitialState(SDL_Joystick* joystick, int axis, [NativeTypeName("Sint16 *")] short* state);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_GetJoystickBall(SDL_Joystick* joystick, int ball, int* dx, int* dy);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint8")]
+ public static extern byte SDL_GetJoystickHat(SDL_Joystick* joystick, int hat);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("Uint8")]
+ public static extern byte SDL_GetJoystickButton(SDL_Joystick* joystick, int button);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RumbleJoystick(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort low_frequency_rumble, [NativeTypeName("Uint16")] ushort high_frequency_rumble, [NativeTypeName("Uint32")] uint duration_ms);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_RumbleJoystickTriggers(SDL_Joystick* joystick, [NativeTypeName("Uint16")] ushort left_rumble, [NativeTypeName("Uint16")] ushort right_rumble, [NativeTypeName("Uint32")] uint duration_ms);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SetJoystickLED(SDL_Joystick* joystick, [NativeTypeName("Uint8")] byte red, [NativeTypeName("Uint8")] byte green, [NativeTypeName("Uint8")] byte blue);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern int SDL_SendJoystickEffect(SDL_Joystick* joystick, [NativeTypeName("const void *")] void* data, int size);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_CloseJoystick(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_JoystickConnectionState SDL_GetJoystickConnectionState(SDL_Joystick* joystick);
+
+ [DllImport("SDL3", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_PowerState SDL_GetJoystickPowerInfo(SDL_Joystick* joystick, int* percent);
+
+ [NativeTypeName("#define SDL_JOYSTICK_AXIS_MAX 32767")]
+ public const int SDL_JOYSTICK_AXIS_MAX = 32767;
+
+ [NativeTypeName("#define SDL_JOYSTICK_AXIS_MIN -32768")]
+ public const int SDL_JOYSTICK_AXIS_MIN = -32768;
+
+ [NativeTypeName("#define SDL_IPHONE_MAX_GFORCE 5.0")]
+ public const double SDL_IPHONE_MAX_GFORCE = 5.0;
+
+ [NativeTypeName("#define SDL_VIRTUAL_JOYSTICK_DESC_VERSION 1")]
+ public const int SDL_VIRTUAL_JOYSTICK_DESC_VERSION = 1;
+
+ [NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN \"SDL.joystick.cap.mono_led\"")]
+ public static ReadOnlySpan SDL_PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN => "SDL.joystick.cap.mono_led"u8;
+
+ [NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN \"SDL.joystick.cap.rgb_led\"")]
+ public static ReadOnlySpan SDL_PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN => "SDL.joystick.cap.rgb_led"u8;
+
+ [NativeTypeName("#define SDL_PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN \"SDL.joystick.cap.player_led\"")]
+ public static ReadOnlySpan