diff --git a/SDL3_shadercross-CS/SDL3_shadercross/ClangSharp/SDL_shadercross.g.cs b/SDL3_shadercross-CS/SDL3_shadercross/ClangSharp/SDL_shadercross.g.cs
new file mode 100644
index 0000000..4311b1e
--- /dev/null
+++ b/SDL3_shadercross-CS/SDL3_shadercross/ClangSharp/SDL_shadercross.g.cs
@@ -0,0 +1,248 @@
+/*
+
+ 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_ShaderCross_IOVarType
+ {
+ SDL_SHADERCROSS_IOVAR_TYPE_UNKNOWN,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT8,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT8,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_INT64,
+ SDL_SHADERCROSS_IOVAR_TYPE_UINT64,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT16,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT32,
+ SDL_SHADERCROSS_IOVAR_TYPE_FLOAT64,
+ }
+
+ public enum SDL_ShaderCross_ShaderStage
+ {
+ SDL_SHADERCROSS_SHADERSTAGE_VERTEX,
+ SDL_SHADERCROSS_SHADERSTAGE_FRAGMENT,
+ SDL_SHADERCROSS_SHADERSTAGE_COMPUTE,
+ }
+
+ public unsafe partial struct SDL_ShaderCross_IOVarMetadata
+ {
+ [NativeTypeName("char *")]
+ public byte* name;
+
+ [NativeTypeName("Uint32")]
+ public uint location;
+
+ public SDL_ShaderCross_IOVarType vector_type;
+
+ [NativeTypeName("Uint32")]
+ public uint vector_size;
+ }
+
+ public unsafe partial struct SDL_ShaderCross_GraphicsShaderMetadata
+ {
+ [NativeTypeName("Uint32")]
+ public uint num_samplers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_storage_textures;
+
+ [NativeTypeName("Uint32")]
+ public uint num_storage_buffers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_uniform_buffers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_inputs;
+
+ public SDL_ShaderCross_IOVarMetadata* inputs;
+
+ [NativeTypeName("Uint32")]
+ public uint num_outputs;
+
+ public SDL_ShaderCross_IOVarMetadata* outputs;
+ }
+
+ public partial struct SDL_ShaderCross_ComputePipelineMetadata
+ {
+ [NativeTypeName("Uint32")]
+ public uint num_samplers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_readonly_storage_textures;
+
+ [NativeTypeName("Uint32")]
+ public uint num_readonly_storage_buffers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_readwrite_storage_textures;
+
+ [NativeTypeName("Uint32")]
+ public uint num_readwrite_storage_buffers;
+
+ [NativeTypeName("Uint32")]
+ public uint num_uniform_buffers;
+
+ [NativeTypeName("Uint32")]
+ public uint threadcount_x;
+
+ [NativeTypeName("Uint32")]
+ public uint threadcount_y;
+
+ [NativeTypeName("Uint32")]
+ public uint threadcount_z;
+ }
+
+ public unsafe partial struct SDL_ShaderCross_SPIRV_Info
+ {
+ [NativeTypeName("const Uint8 *")]
+ public byte* bytecode;
+
+ [NativeTypeName("size_t")]
+ public nuint bytecode_size;
+
+ [NativeTypeName("const char *")]
+ public byte* entrypoint;
+
+ public SDL_ShaderCross_ShaderStage shader_stage;
+
+ [NativeTypeName("bool")]
+ public SDLBool enable_debug;
+
+ [NativeTypeName("const char *")]
+ public byte* name;
+
+ public SDL_PropertiesID props;
+ }
+
+ public unsafe partial struct SDL_ShaderCross_HLSL_Define
+ {
+ [NativeTypeName("char *")]
+ public byte* name;
+
+ [NativeTypeName("char *")]
+ public byte* value;
+ }
+
+ public unsafe partial struct SDL_ShaderCross_HLSL_Info
+ {
+ [NativeTypeName("const char *")]
+ public byte* source;
+
+ [NativeTypeName("const char *")]
+ public byte* entrypoint;
+
+ [NativeTypeName("const char *")]
+ public byte* include_dir;
+
+ public SDL_ShaderCross_HLSL_Define* defines;
+
+ public SDL_ShaderCross_ShaderStage shader_stage;
+
+ [NativeTypeName("bool")]
+ public SDLBool enable_debug;
+
+ [NativeTypeName("const char *")]
+ public byte* name;
+
+ public SDL_PropertiesID props;
+ }
+
+ public static unsafe partial class SDL3_shadercross
+ {
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("bool")]
+ public static extern SDLBool SDL_ShaderCross_Init();
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern void SDL_ShaderCross_Quit();
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GPUShaderFormat SDL_ShaderCross_GetSPIRVShaderFormats();
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_TranspileMSLFromSPIRV([NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_TranspileHLSLFromSPIRV([NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_CompileDXBCFromSPIRV([NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info, [NativeTypeName("size_t *")] nuint* size);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_CompileDXILFromSPIRV([NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info, [NativeTypeName("size_t *")] nuint* size);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GPUShader* SDL_ShaderCross_CompileGraphicsShaderFromSPIRV(SDL_GPUDevice* device, [NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info, [NativeTypeName("const SDL_ShaderCross_GraphicsShaderMetadata *")] SDL_ShaderCross_GraphicsShaderMetadata* metadata, SDL_PropertiesID props);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GPUComputePipeline* SDL_ShaderCross_CompileComputePipelineFromSPIRV(SDL_GPUDevice* device, [NativeTypeName("const SDL_ShaderCross_SPIRV_Info *")] SDL_ShaderCross_SPIRV_Info* info, [NativeTypeName("const SDL_ShaderCross_ComputePipelineMetadata *")] SDL_ShaderCross_ComputePipelineMetadata* metadata, SDL_PropertiesID props);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_ShaderCross_GraphicsShaderMetadata* SDL_ShaderCross_ReflectGraphicsSPIRV([NativeTypeName("const Uint8 *")] byte* bytecode, [NativeTypeName("size_t")] nuint bytecode_size, SDL_PropertiesID props);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_ShaderCross_ComputePipelineMetadata* SDL_ShaderCross_ReflectComputeSPIRV([NativeTypeName("const Uint8 *")] byte* bytecode, [NativeTypeName("size_t")] nuint bytecode_size, SDL_PropertiesID props);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ public static extern SDL_GPUShaderFormat SDL_ShaderCross_GetHLSLShaderFormats();
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_CompileDXBCFromHLSL([NativeTypeName("const SDL_ShaderCross_HLSL_Info *")] SDL_ShaderCross_HLSL_Info* info, [NativeTypeName("size_t *")] nuint* size);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_CompileDXILFromHLSL([NativeTypeName("const SDL_ShaderCross_HLSL_Info *")] SDL_ShaderCross_HLSL_Info* info, [NativeTypeName("size_t *")] nuint* size);
+
+ [DllImport("SDL3_shadercross", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
+ [return: NativeTypeName("void*")]
+ public static extern IntPtr SDL_ShaderCross_CompileSPIRVFromHLSL([NativeTypeName("const SDL_ShaderCross_HLSL_Info *")] SDL_ShaderCross_HLSL_Info* info, [NativeTypeName("size_t *")] nuint* size);
+
+ [NativeTypeName("#define SDL_SHADERCROSS_MAJOR_VERSION 3")]
+ public const int SDL_SHADERCROSS_MAJOR_VERSION = 3;
+
+ [NativeTypeName("#define SDL_SHADERCROSS_MINOR_VERSION 0")]
+ public const int SDL_SHADERCROSS_MINOR_VERSION = 0;
+
+ [NativeTypeName("#define SDL_SHADERCROSS_MICRO_VERSION 0")]
+ public const int SDL_SHADERCROSS_MICRO_VERSION = 0;
+
+ [NativeTypeName("#define SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY \"SDL.shadercross.spirv.pssl.compatibility\"")]
+ public static ReadOnlySpan SDL_SHADERCROSS_PROP_SPIRV_PSSL_COMPATIBILITY => "SDL.shadercross.spirv.pssl.compatibility"u8;
+
+ [NativeTypeName("#define SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION \"SDL.shadercross.spirv.msl.version\"")]
+ public static ReadOnlySpan SDL_SHADERCROSS_PROP_SPIRV_MSL_VERSION => "SDL.shadercross.spirv.msl.version"u8;
+ }
+}