DotGLFW 1.2.0

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

// Install DotGLFW as a Cake Tool
#tool nuget:?package=DotGLFW&version=1.2.0                

☕ DotGLFW Nuget Targets Nuget

A 1:1 mapping of the native GLFW API for .NET, with a lightweight managed wrapper for easy integration in your projects! Includes XML docs for all functions and types from the official GLFW documentation. Supports NativeAot, see this example. Ships with pre-compiled binaries for Windows and MacOS.

[!NOTE] Uses the latest version of GLFW (3.4).

The library is split into two parts: the unmanaged API and the managed API.

The unmanaged API is automatically generated using DotGLFW.Generator. It parses the official GLFW documentation and generates C# code that matches the native API. Functions and types that would otherwise require runtime marshalling are automatically generated with compile-time marshalling to make the library as fast as possible, and to support native AOT compilation.

The managed API is a (mostly) hand-written wrapper around the unmanaged API to make it easier for you to use in your projects. It handles memory management and marshalling of strings, arrays, and other complex types for you. It also provides a more user-friendly interface for many functions using enums and other types instead of raw integers.

Unmanaged API

The unmanaged API is the static NativeGlfw class, which has exact mappings for all GLFW macros (e.g. GLFW_TRUE) and functions (e.g. glfwInit). Typedefs are also mapped to their equivalents in C#, opaque handles are empty structs, and function pointers are represented as delegates.

[!IMPORTANT] The unmanaged API will require you to perform your own marshalling of strings, arrays, and other complex types. Additionally, you will need to manage memory yourself, including keeping references to callbacks alive. If you don't want to have to do this, use the managed API instead.

Managed API

The managed API is the static Glfw class, which wraps the unmanaged API in a more user-friendly and .NET-y way. It provides compile-time marshalling of strings, arrays, and other complex types, handles memory management for you (including keeping references to callbacks alive) and much more. Many functions (e.g. glfwWindowHint) have been overloaded to accept more user-friendly enums and types instead of raw integers.

Take a look in the provided example to see how to use the library with the managed API. It demonstrates how to create a window and set up a very simple rendering loop.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on DotGLFW:

Package Downloads
LughSharp

C# 2D/3D Game Framework based on the Java Framework LibGDX.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 175 7/17/2024
1.1.0 125 7/4/2024
1.0.3 118 6/30/2024
1.0.2 205 8/18/2023
1.0.1 151 6/2/2023
1.0.0 153 5/21/2023