SDL3-CS 3.3.3

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package SDL3-CS --version 3.3.3
                    
NuGet\Install-Package SDL3-CS -Version 3.3.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SDL3-CS" Version="3.3.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SDL3-CS" Version="3.3.3" />
                    
Directory.Packages.props
<PackageReference Include="SDL3-CS" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SDL3-CS --version 3.3.3
                    
#r "nuget: SDL3-CS, 3.3.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SDL3-CS@3.3.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SDL3-CS&version=3.3.3
                    
Install as a Cake Addin
#tool nuget:?package=SDL3-CS&version=3.3.3
                    
Install as a Cake Tool

🚀 About

This is SDL3#, a C# wrapper for SDL3.

📚 Documentation

For more information about SDL3, visit the SDL wiki.

📝 Installation

git clone https://github.com/edwardgushchin/SDL3-CS
cd SDL3-CS
dotnet build -c Release

or

dotnet add package SDL3-CS

Optional:

dotnet add package SDL3-CS.Native
dotnet add package SDL3-CS.Native.Image
dotnet add package SDL3-CS.Native.TTF
dotnet add package SDL3-CS.Native.Mixer

🎓 Examples

using SDL3;

namespace Create_Window;

internal static class Program
{
    [STAThread]
    private static void Main()
    {
        if (!SDL.Init(SDL.InitFlags.Video))
        {
            SDL.LogError(SDL.LogCategory.System, $"SDL could not initialize: {SDL.GetError()}");
            return;
        }

        if (!SDL.CreateWindowAndRenderer("SDL3 Create Window", 800, 600, 0, out var window, out var renderer))
        {
            SDL.LogError(SDL.LogCategory.Application, $"Error creating window and rendering: {SDL.GetError()}");
            return;
        }

        SDL.SetRenderDrawColor(renderer, 100, 149, 237, 0);

        var loop = true;

        while (loop)
        {

            while (SDL.PollEvent(out var e))
            {
                if ((SDL.EventType)e.Type == SDL.EventType.Quit)
                {
                    loop = false;
                }
            }

            SDL.RenderClear(renderer);
            SDL.RenderPresent(renderer);
        }

        SDL.DestroyRenderer(renderer);
        SDL.DestroyWindow(window);

        SDL.Quit();
    }
}

More examples can be found here.

✅ Readiness

Library Stage
SDL3 Ready
SDL_image Ready
SDL_mixer Ready
SDL_tff Ready
SDL_shadercross Ready

🤝 Feedback and Contributions

Do you have an idea or found a bug? Please open an issue or start a discussion.

Please note we have a code of conduct, please follow it in all your interactions with the project.

If you have any feedback, please reach out to us at eduardgushchin@yandex.ru.

We also have a chat in Telegram, where I am ready to answer any of your questions.

💻 Authors

See also the list of contributors who participated in this project.

📃 License

SDL3 and SDL3# are released under the zlib license. See LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on SDL3-CS:

Package Downloads
3DEngine

3D Game Engine - Vulkan - SDL3 - .NET 10 - C# 14

StreamLayout

Package Description

3DEngine.Window

3D Game Engine - Vulkan - SDL3 - .NET 10 - C# 14

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on SDL3-CS:

Repository Stars
Valkirie/HandheldCompanion
ControllerService
Version Downloads Last Updated
3.3.5-preview.20251213-114652 0 12/13/2025
3.3.5-preview.20251212-135925 25 12/12/2025
3.3.5-preview.20251212-134941 23 12/12/2025
3.3.3 34 12/12/2025
3.3.3-preview.20251204-144801 157 12/4/2025
3.3.3-preview.20251108-095121 130 11/8/2025
3.3.2.1 6,556 10/27/2025
3.3.2 339 10/26/2025
3.2.24.1 1,237 10/17/2025
3.2.24 814 10/5/2025
3.2.20 2,904 8/5/2025
3.2.18 647 7/15/2025
3.2.16.7 254 7/10/2025
3.2.16.6 205 7/8/2025
3.2.16.5 176 7/8/2025
3.2.16.4 265 7/1/2025
3.2.16.3 294 6/20/2025
3.2.16.1 535 6/8/2025
3.2.16 215 6/7/2025
3.2.14.2 791 5/21/2025
3.2.14.1 221 5/19/2025
3.2.14 252 5/16/2025
3.2.12.4 281 5/14/2025
3.2.12.3 201 5/11/2025
3.2.12.2 162 5/9/2025
3.2.12.1 593 5/8/2025
3.2.12 196 5/8/2025
3.2.10 733 4/1/2025
3.2.8.3 339 3/12/2025
3.2.8.2 491 3/11/2025
3.2.8.1 293 3/7/2025
3.2.4.7 380 3/1/2025
3.2.4.6 528 2/18/2025

This is a stable bugfix release, with the following changes:

           - Fixed a divide by zero with a zero sized blit in some cases
           - Fixed blitting bitmaps with a non-zero x offset
           - Fixed a crash in the vulkan renderer when the window is minimized
           - Fixed the initial X11 window position in some environments
           - Fixed the channel mapping for surround sound on PulseAudio
           - Fixed the sensor axis ordering with the Linux Nintendo driver
           - Fixed Xbox 360 controller mappings on newer Linux kernels
           - Made Nintendo Switch controller initialization more robust
           - Fixed the paddle mapping for Steam Controllers