SDL3-CS 3.2.2

dotnet add package SDL3-CS --version 3.2.2                
NuGet\Install-Package SDL3-CS -Version 3.2.2                
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.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SDL3-CS --version 3.2.2                
#r "nuget: SDL3-CS, 3.2.2"                
#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.2

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

<p align="center"> <img src="./logo.png?raw=true" alt="SDL3#"> </p>

<h4 align="center">This is SDL3#, a C# wrapper for SDL3.</h4>

<p align="center"> <img alt="GitHub contributors" src="https://img.shields.io/github/contributors/edwardgushchin/SDL3-CS"> <img alt="GitHub last commit" src="https://img.shields.io/github/last-commit/edwardgushchin/SDL3-CS"> <img alt="Static Badge" src="https://img.shields.io/badge/license-zlib-blue"> </p>

<p align="center"> <img alt="Static Badge" src="https://img.shields.io/badge/.NET-7.0,_8.0,_9.0-512BD4"> <img alt="Static Badge" src="https://img.shields.io/badge/Language-C%23_12-239120"> </p>

<p align="center"> <a href="#-about">About</a> • <a href="#-documentation">Documentation</a> • <a href="#-installation">Installation</a> • <a href="#-examples">Examples</a> • <a href="#-readiness">Readiness</a> </p> <p align="center"> <a href="#-feedback-and-contributions">Feedback and Contributions</a> • <a href="#-authors">Authors</a> • <a href="#-license">License</a> </p>

<p align="center">⭐ Star us on GitHub — it motivates us a lot!</p>

🚀 About

SDL3 is still under active development, and the shell follows suit.

For more information on what is currently ready for use, see the <a href="#-readiness">Readiness</a> section.

📚 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

🎓 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 (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.2 62 2/5/2025
3.2.2-doc 14 2/6/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