SDL3-CS 3.2.4.6

dotnet add package SDL3-CS --version 3.2.4.6                
NuGet\Install-Package SDL3-CS -Version 3.2.4.6                
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.2.4.6" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SDL3-CS --version 3.2.4.6                
#r "nuget: SDL3-CS, 3.2.4.6"                
#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.
// Install SDL3-CS as a Cake Addin
#addin nuget:?package=SDL3-CS&version=3.2.4.6

// Install SDL3-CS as a Cake Tool
#tool nuget:?package=SDL3-CS&version=3.2.4.6                

🚀 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

🤝 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. 
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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.2.4.6 153 2/18/2025

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

           - Fixed mouse motion while the mouse is grabbed on Linux
           - Fixed audio gain not applying in some cases
           - Fixed a potential crash when applying audio gain
           - Removed audio resampling frequency limit
           - Fixed a crash on Windows if a tray is created without any menus
           - Fixed being able to open BMP files saved with SDL_SaveBMP() on macOS
           - Fixed inverted Y axis pen input on macOS
           - Allow the window manager to position windows that don't specify a position on Linux