OpenTK 4.0.0

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

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

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.  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:  https://opentk.net/learn/index.html  Sample projects that accompany the tutorial can be found here:  https://github.com/opentk/LearnOpenTK  We have a very active discord server, if you need help, want to help, or are just curious, come join us!  https://discord.gg/6HqD48s

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

NuGet packages (170)

Showing the top 5 NuGet packages that depend on OpenTK:

Package Downloads
Xamarin.Forms.Platform.WPF

Xamarin Forms Renderer to build native UIs for WPF

SkiaSharp.Views.WPF

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

SkiaSharp.Views.WindowsForms

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

ScottPlot.WPF

User controls for displaying interactive plots in WPF applications

EmguCV

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.

GitHub repositories (79)

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

Repository Stars
dotnet/maui
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Perfare/AssetStudio
AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.
unoplatform/uno
Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
xamarin/Xamarin.Forms
Xamarin.Forms is no longer supported. Migrate your apps to .NET MAUI.
ScottPlot/ScottPlot
Interactive plotting library for .NET
Version Downloads Last updated
5.0.0-pre.13 409 11/11/2024
5.0.0-pre.12 1,325 9/25/2024
5.0.0-pre.11 1,354 8/9/2024
5.0.0-pre.10 4,028 3/7/2024
5.0.0-pre.9 3,500 10/16/2023
5.0.0-pre.8 15,375 10/28/2022
5.0.0-pre.7 9,000 4/19/2022
5.0.0-pre.6 3,974 6/16/2021
5.0.0-pre.5 505 5/29/2021
5.0.0-pre.4 449 5/22/2021
5.0.0-pre.3 8,641 3/10/2021
5.0.0-pre.2 309 3/9/2021
5.0.0-pre.1 677 3/8/2021
4.8.2 99,244 12/2/2023
4.8.1 21,724 9/27/2023
4.8.0 31,756 7/17/2023
4.7.7 59,832 2/23/2023
4.7.6 5,388 2/22/2023 4.7.6 is deprecated because it has critical bugs.
4.7.5 83,719 9/8/2022
4.7.4 33,988 6/17/2022
4.7.3 4,790 6/17/2022
4.7.2 1,124,776 5/3/2022
4.7.1 28,913 2/17/2022
4.6.7 75,345 9/13/2021
4.6.4 44,200 5/28/2021
4.6.3 18,304 3/27/2021
4.6.2 6,819 3/19/2021
4.6.1 6,252 3/19/2021
4.6.0 7,265 3/18/2021
4.5.0 81,417 2/14/2021
4.4.0 27,530 12/16/2020
4.3.0 97,855 11/21/2020
4.2.0 10,313 11/12/2020
4.1.0 7,743 11/6/2020
4.0.6 10,690 10/18/2020
4.0.5 5,709 10/18/2020
4.0.4 6,018 10/17/2020
4.0.3 6,139 10/14/2020
4.0.2 6,213 10/11/2020
4.0.1 7,189 10/6/2020
4.0.0 12,687 10/2/2020
4.0.0-pre9.10 460 10/1/2020
4.0.0-pre9.9 351 9/30/2020
4.0.0-pre9.8 365 9/29/2020
4.0.0-pre9.7 810 9/20/2020
4.0.0-pre9.6 491 9/14/2020
4.0.0-pre9.4 807 8/30/2020
4.0.0-pre9.3 537 8/21/2020
4.0.0-pre9.2 941 7/28/2020
4.0.0-pre9.1 20,265 4/24/2020
4.0.0-pre9 5,878 4/19/2020
4.0.0-pre8 5,641 4/18/2020
4.0.0-pre7 5,751 4/13/2020
4.0.0-pre6 6,096 4/10/2020
4.0.0-pre5 5,947 4/9/2020
4.0.0-pre4 5,858 4/6/2020
4.0.0-pre3 6,383 3/19/2020
4.0.0-pre2 5,854 3/19/2020
4.0.0-pre 5,819 3/19/2020
3.3.3 87,420 9/10/2022
3.3.2 49,098 7/20/2021
3.3.1 90,895 11/6/2020
3.3.0 11,149 11/6/2020
3.2.1 17,240 10/21/2020
3.2.0 142,141 4/6/2020
3.1.0 801,645 8/4/2019
3.0.1 2,717,364 7/6/2018
3.0.0 44,668 5/1/2018
3.0.0-pre 36,195 5/8/2017
2.0.0 271,518 9/23/2016
1.1.2349.61993 71,373 6/7/2016
1.1.2225 262,649 2/4/2016
1.1.1589.5942 134,564 7/18/2014
1.1.1589.5941 57,668 5/9/2014
1.1.1579.5793 3,733 4/29/2014
1.1.1508.5724 11,030 2/17/2014
1.1.1456.5398 6,091 12/27/2013
1.1.1161.61462 5,218 8/28/2013
1.1.1160.61462 9,696 3/7/2013

Huge thanks and congratulations to the entire OpenTK Community for getting this release together.
Key changes:
Full support for .Net Core 3.1
Brand new GLFW-based windowing system
Brand new GLFW-based input system
Removed all platform-specific backends (and fixed every xplat bug!)
Math library performance improvements and fixes
All new OpenAL bindings
All new OpenCL Bindings
Total restructure of all packages into a modular system with a number of packages. The OpenTK package is now a metapackage that will automatically download all of these for you.
OpenTK 4.0.0 is entirely MIT licensed.
Full Log:
Input fixes (@HughPH)
Link to the tutorial in the package description.
Fix for broken delegates (@HughPH)
Significant rework & improvements to input. (Massive Thanks to @Phyyl, @HughPH and @NogginBops)
Fixes to OpenAL Bindings (@NogginBops)
General Math improvements (@NogginBops)
Added OpenCL Bindings (Huge thanks to @NepNet)
Fix opentk.redist.glfw version warnings (@jvbsl)
Add support for window-level multisampling (@jvbsl)
Allow null delegates for GLFW callbacks (@jvbsl)
Add new API to get/set from GLFW window/context attributes (@jvbsl)
Add vulkan surface creation (@jvbsl)
Fix bindings generator for net2.1
GLFW Native Access bindings. (@RedImp1470 @NogginBops)
Fixed normalization in Vector3.Unproject (@burnss9)
General windowing improvements and new Graphics Context API. (@NogginBops)
Use correct function in SetCharModsCallback (@jvbsl)
Return namespaces to the glorious OpenTK (thanks @glopes)
Simplified OpenAL loading + add more extensions (@NogginBops)
Fixed initial focused inconsistency between Windows and Linux(X11) (@jvbsl)
Improved and fixed GLFW binary loading (@jvbsl)
Improved mono compat (@jvbsl)
Fixed GetLibraryName for iOS platform (thanks @Grizley56)
Fixed InputAction for getting Joystick Buttons from GLFW (thanks @HughPH)
Fixes reference conditions
Save Size property value to _size field (thanks @devel0)
Update build.fsx.lock (thanks @CallumDev)
Vector3.Unproject returning incorrect result (thanks @leezer3)
Incorrect parameter order in QuaternionD constructor (thanks @leezer3)
Capslock value not exposed (thanks @KinsonDigital)
vector transforms
Start of input mode setup for caps lock (thanks @KinsonDigital)
Use in parameters instead of ref (thanks @cryovat)
OpenTK now includes **OPENAL!** (Biggest thanks to *@NogginBops*)
Added check for invalid keys in window key callback (Thanks @Phyyl)
Fix rounding errors on tests
Add individual project descriptions
Add openAL to the build sequence.
Added PositiveInfinity and NegativeInfinity to vector structs (Thanks @arakis)
Fixed ClientSize not getting updated in OnResize (Thanks @Phyyl)
Fix automatic bindings initialization for GL2 (Thanks @Phyyl)
Add framework specification to paket files. (Thanks @frederikja163)
Fixed GameWindow update frequency (Thanks @MerickOWA)
Throw an InvalidOperationException if bindings are uninitialized. (Thanks @PJB)
Added Profile Any (Thanks @arakis)
Fix error with GLFW Mouse button mapping (Thanks @GeorchW)
Build System improvements to fully automatic pipeline.
Test and fix build system
Fix package metadata
Change: Make Command a valid modifier on OS-X #759
Splitting Platform/Windows/API.cs into OpenTK.NT #765
Immediately return after restoring resolution #766
Fix OpenTK.Mathematics assembly name #768
[4.0] Implement 'unmanaged' constraint #771
Close display connection for X11 on dispose #773
[4.0] Fix StyleCop analysis not working on Windows #775
Fixed incorrect Quaternion/Vector rotation #777
[4.0] Build Cleanup #778
Fixed type for VertexAttribPointer #779
[4.0] Fix numerous binder errors #781
Fix #USE_SDL2_GAMECONTROLLER code path #782
[4.0] Refactor Generator.Rewrite #783
[4.0] Fix two typos in CONTRIBUTING.md #785
Add common.props for use in all projects #786
[4.0] Auto-update OpenTK.sln (done by VS2017) #787
Add missing build configs (VS2017) #788
Fixed OpenGL 3.2+ Context Creation (Mixed up Profile Mask / Flags) #790
[4.0] Create new .sln file for all new projects #791
[4.0] Fix CI scripts #792
[4.0] Fix general StyleCop errors #793
[4.0] Some more small rewriter changes #794
[4.0] Refactor Generator.Bind#795
[4.0] Get CI to succeed #796
Fix: Custom cursors not working under OS-X and dotnet #797
[4.0] Fix stylecop errors in OpenTK.Mathematics.#798
Fix OpenTK.NT compilation errors #799
[4.0] Fix OpenTK.AL compilation errors #800
4.0 #802
Fix csproj references to target netstandard2.0 instead of net461. #803
Style guide#804
[4.0] Integrate OpenTK.OpenAL#805
[4.0] refactored .Math stylecop errors #806
Use props/ directory directly #813
Add #814 to 4.0 #815
Fix document typo #818
Binder Docs + Performance#826
[4.0] Embedded license handling for binding generator #836
[4.0] Adding directory safety to the binder. #837
Update README after branch changes #839
[4.0] Add StructLayout to Color4#840
[4.0] Change root namespace to OpenTK #842
Fix the aftermath of merging #842 #843
[4.0] Impliment Vectord * Quaterniond #844
Fix aftermath of #842 #846
[4.0] Minor edits to README.md #848
[4.0] Update SDL2 version check #849
[4.0] Remove big chunk of unused code from Quaterniond.cs #852
[4.0] Remove GLES 1.0 and 1.1 support #856
[4.0] Add explicit operators for Color4/Vector4 conversions #858
[4.0] Remove unused code #860
[4.0] Begin moving Input to OpenTK.Input#861
[4.0] Begin moving Platform to OpenTK.Platform #862
[4.0] Add RootNamespace tags to projects#863
OpenGL Reimplementation #864
Input and Windowing via GLFW #867
Bindings generator for modularity and ADL#871
Update licensing information #875
Update Discord link. #876
Optimize Vector4/Color4 conversions with Unsafe.As #877
Apply Unsafe.As optimization to all vector types #878
Fix discord invite link #881
Ignoring MouseMoveEx errors and fall back to passed point. #883
Rename license files to avoid confusion. #885
Emergency fix in short license terms #887
[4.0] Adding Lerp function in the math helper #895
System.Math and OpenTK.MathHelper symmetry #897
Shorten float literals to the actual float value #898
Reflect 22/04/2019 development discussion #902
Remove obsolete methods within Vector types. #906
Add vector types with integer components. #908
OpenAL cleanup #909
Organise master #912
Purity annotations for Math types #915
Int vectors in windows #917
Box2i support #918
add Box3 #919
Box2n and Box3n cleanup #920
Add API to let users pick OpenGL version #921
Add Quaternion to Euler angles conversion #923
Fix binder script paths #924
Restore unit tests #925
Box tests #926
GLFW Input. #928
Improve EditorConfig file. #929
Adds Vulkan related GLFW methods to IGLFW. #930
Fixes the binder and makes it 10x faster. #931
Add tuple deconstructors and conversions to vector types. #933
Fix ToHSV and ToHsl functions generating nan when they shouldn't #934
Build System for 4.0 #936
Hid input #943
Implement ppi in INativeWindow. #945
Feature/new Bindings generator #946
PlaceholderGL#948
Fix Quaternion(euler angle order -> roundtrip tests)#949
Fix windowing tests #950
chmod +x build.sh #951
Fix <LangVersion> getting applied to F# projects. #952
Feature/fix box contains #953
Test fixes #954
Fix PlatformLibraryNameContainerBase on macOS. #962
Make GLFW.Image better. #963
Default GameWindowSettings.IsSingleThreaded to true. #964
Improve mouse cursor handling. #965
Fix window icon handling. #966
Clean up window events. #967
Fix file drop events. #968
Fix incorrect type on glfwGetError. #969
Move GLFWProvider to Windowing.Desktop. #970
Make GLFW structs simpler. #971
Clean up window properties/interfaces. #972
OpenGL_Bindings.csproj: Call bash instead of sh #974
Quaternion(d): Modify instance Invert() to match static functions #975
Remove ADL from GLFW. Use DllImport. #976
Begin work on merging OpenAL extensions. #986
Fix CI system #988
GLFW API cleanup. #989
Remove reference to Mathematics from GLFW bind. #990
Revised boostrap process + update build tools #992
Add remaining GLFW Window functions #996
Bring forward 3.x binding generators to 4.0 #1004
Add matrix multiplication + missing operator to Vector2/Vector2d #1011
Optimize barycentric interpolation #1019