OpenTK 4.7.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package OpenTK --version 4.7.2
NuGet\Install-Package OpenTK -Version 4.7.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="OpenTK" Version="4.7.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OpenTK --version 4.7.2
#r "nuget: OpenTK, 4.7.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 OpenTK as a Cake Addin
#addin nuget:?package=OpenTK&version=4.7.2

// Install OpenTK as a Cake Tool
#tool nuget:?package=OpenTK&version=4.7.2

The Open Toolkit is set of fast, low-level C# bindings for OpenGL, OpenGL ES, OpenAL and OpenCL. It runs on all major platforms and powers hundreds of apps, games and scientific research.  It provides bindings for GLFW windowing, input and a game loop, and is the perfect start for your own game engine.  OpenTK comes with simple and easy to follow tutorials for learning *modern* OpenGL. These are written by the community and represent all of the best practices to get you started.  Learn how to use OpenTK here:  Sample projects that accompany the tutorial can be found here:  We have a very active discord server, if you need help, want to help, or are just curious, come join us!

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages (144)

Showing the top 5 NuGet packages that depend on OpenTK:

Package Downloads

The Open Toolkit is set of fast, low-level C# bindings for OpenGL, OpenGL ES and OpenAL. It runs on all major platforms and powers hundreds of apps, games and scientific research. OpenTK provides several utility libraries, including a math/linear algebra package, a windowing system, and input handling.

Xamarin.Forms.Platform.WPF The ID prefix of this package has been reserved for one of the owners of this package by

Xamarin Forms Renderer to build native UIs for WPF

SkiaSharp.Views.WindowsForms The ID prefix of this package has been reserved for one of the owners of this package by

SkiaSharp Views & Layers are a set of platform-specific views and containers that can be used to draw on the screen.


Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Windows, Linux, Mac OS X, iPhone, iPad and Android devices.

Xamarin.Forms.Platform.GTK The ID prefix of this package has been reserved for one of the owners of this package by

Xamarin Forms Renderer to build native UIs for GTK

GitHub repositories (64)

Showing the top 5 popular GitHub repositories that depend on OpenTK:

Repository Stars
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.
Xamarin.Forms Official Home
Interactive plotting library for .NET
SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
Version Downloads Last updated
5.0.0-pre.8 3,641 10/28/2022
5.0.0-pre.7 8,357 4/19/2022
5.0.0-pre.6 3,710 6/16/2021
5.0.0-pre.5 404 5/29/2021
5.0.0-pre.4 343 5/22/2021
5.0.0-pre.3 8,460 3/10/2021
5.0.0-pre.2 209 3/9/2021
5.0.0-pre.1 487 3/8/2021
4.7.7 15,317 2/23/2023
4.7.6 437 2/22/2023
4.7.5 35,074 9/8/2022
4.7.4 23,819 6/17/2022
4.7.3 622 6/17/2022
4.7.2 263,469 5/3/2022
4.7.1 19,649 2/17/2022
4.6.7 42,689 9/13/2021
4.6.4 26,500 5/28/2021
4.6.3 13,068 3/27/2021
4.6.2 2,273 3/19/2021
4.6.1 1,374 3/19/2021
4.6.0 1,461 3/18/2021
4.5.0 69,342 2/14/2021
4.4.0 18,793 12/16/2020
4.3.0 25,421 11/21/2020
4.2.0 3,436 11/12/2020
4.1.0 2,517 11/6/2020
4.0.6 4,497 10/18/2020
4.0.5 723 10/18/2020
4.0.4 708 10/17/2020
4.0.3 1,059 10/14/2020
4.0.2 1,149 10/11/2020
4.0.1 1,948 10/6/2020
4.0.0 4,982 10/2/2020
4.0.0-pre9.10 353 10/1/2020
4.0.0-pre9.9 278 9/30/2020
4.0.0-pre9.8 276 9/29/2020
4.0.0-pre9.7 714 9/20/2020
4.0.0-pre9.6 399 9/14/2020
4.0.0-pre9.4 720 8/30/2020
4.0.0-pre9.3 461 8/21/2020
4.0.0-pre9.2 847 7/28/2020
4.0.0-pre9.1 5,966 4/24/2020
4.0.0-pre9 733 4/19/2020
4.0.0-pre8 496 4/18/2020
4.0.0-pre7 575 4/13/2020
4.0.0-pre6 562 4/10/2020
4.0.0-pre5 531 4/9/2020
4.0.0-pre4 575 4/6/2020
4.0.0-pre3 833 3/19/2020
4.0.0-pre2 434 3/19/2020
4.0.0-pre 535 3/19/2020
3.3.3 21,034 9/10/2022
3.3.2 41,437 7/20/2021
3.3.1 43,724 11/6/2020
3.3.0 5,589 11/6/2020
3.2.1 9,460 10/21/2020
3.2.0 128,386 4/6/2020
3.1.0 503,969 8/4/2019
3.0.1 1,784,276 7/6/2018
3.0.0 36,717 5/1/2018
3.0.0-pre 34,170 5/8/2017
2.0.0 245,532 9/23/2016
1.1.2349.61993 59,982 6/7/2016
1.1.2225 203,724 2/4/2016
1.1.1589.5942 117,060 7/18/2014
1.1.1589.5941 55,081 5/9/2014
1.1.1579.5793 2,136 4/29/2014
1.1.1508.5724 7,150 2/17/2014
1.1.1456.5398 4,243 12/27/2013
1.1.1161.61462 3,347 8/28/2013
1.1.1160.61462 6,132 3/7/2013

BREAKING: Fixed issue where the `QuaternionD(double, double, double)` ctor produced the wrong quaternion. It now produces the same quaternion as `Quaterion(float, float, float)`. (@NogginBops)
BREAKING: Fixed `QuaterionD.ToEulerAngles` to now produce the correct result. It now matches the result from `Quaterion.ToEulerAngles`. (@NogginBops)
API: Deprecated `NativeWindow.CursorVisible` and `NativeWindow.CursorGrabbed` in favor of a unified `NativeWindow.CursorState` that disallows invalid combinations. (@NogginBops)
API: Added `NativeWindowSettings.SrgbCapable` to be able to create a default framebuffer with sRGB capabilities. (@NogginBops)
API: Added glfw native access funtions added in glfw 3.1. (@NogginBops)
API: Added `MinimumSize` and `MaximumSize` properties to `NativeWindow` and `NativeWindowSettings`. (@toasty1307)
API: Added `NativeWindow.ProcessWindowEvents` static function for processing events manually. Prefer this function (with `NativeWindow.ProcessInputEvents`) in a multi-window setup. (@NogginBops)
API: Exposed `NativeWindow.ProcessInputEvents()` so multi-window setups can update input state of all windows before handling events (using `NativeWindow.ProcessWindowEvents`). (@NogginBops)
API: Added a proper "main thread" check for glfw. To turn this off, `GLFWProvider.CheckForMainThread` can be set to false. (@NogginBops)
API: Added all missing enums to `SizedInternalFormat`. (@NogginBops)
API: Added `TextureCubeMapArray` to `TextureTarget3d`. (@NogginBops)
API: Added `ParameterBuffer` to `BufferTarget`. (@NogginBops)
API: Added overloads to `MultiDrawElementsIndirectCount` that takes the proper `DrawElementsType` enum as an argument. (@NogginBops)
API: Added overloads to `VertexAttribIFormat` and `VertexAttribLFormat` that take `VertexAttribIntegerType` and `VertexAttributeDoubleType` respectively. (@BoyBaykiller)
API: Added bindings for `NV_mesh_shader`, `NV_shading_rate`, `NV_primitive_shading_rate`, `NV_representative_fragment_test` and `NV_scissor_exclusive` extensions. (@BoyBaykiller)
API: Enums should now be documented with their minimum version or extension requirements. These are not guaranteed to be 100% accurate but should mostly correct. (@NogginBops)
API: Added `RawMouseMotionAttribute` enum, to be able to control raw mouse motion from GLFW.
Fix issue where limiting framerate would cause issues with input functions like `JoystickState.WasButtonPressed` whould have an incorrect value (@NogginBops).
Updated GLFW to 3.3.7. This should fix an issue where UTF-16 code points where sent to OnTextInput causing it to crash. (@NogginBops, @g7ChoGXh)
If the update loop gets too far behind it no longer tries to make up for lost time. This was typically caused by resizing the window, and or closing the lid of a laptop. (@daerogami)
OpenTK no longer put an upper limit on the `System.Runtime.CompilerServices.Unsafe` package. (@NogginBops)
Fixed so `NativeWindowSettings.DepthBits` and `NativeWindowSettings.StencilBits` actually affect the resulting backbuffer format. (@NogginBops)
Fixed an issue in `Box3i.Contains(Vector3i)` where one of the comparisons where wrong, causing incorrect results. (@BlakkM9)
Fixed an issue where `Vector3i.ComponentMin` returned one of the input arguments instead of the proper result. (@Oribow)
Fixed OpenAL `Buffer(int, BufferLoopPoint, ReadOnlySpan<int>)` overload to no longer crash. (@NogginBops)