OpenTK 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

Showing the top 20 packages that depend on OpenTK.

Packages Downloads
SkiaSharp.Views.WPF
SkiaSharp Views & Layers are a set of platform-specific views and containers that can be used to draw on the screen.
5
OpenTK.GLWpfControl
A native WPF control for OpenTK 4.X.
2
SkiaSharp.Views.WPF
SkiaSharp Views & Layers are a set of platform-specific views and containers that can be used to draw on the screen.
2
SkiaSharp.Views.WindowsForms
SkiaSharp Views & Layers are a set of platform-specific views and containers that can be used to draw on the screen.
2
SkiaSharp.Views.WindowsForms
SkiaSharp Views & Layers are a set of platform-specific views and containers that can be used to draw on the screen.
1

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

Version Downloads Last updated
5.0.0-pre.13 1 2025/6/5
5.0.0-pre.12 1 2025/6/6
5.0.0-pre.11 1 2025/6/6
5.0.0-pre.10 1 2025/6/6
5.0.0-pre.9 1 2025/6/6
5.0.0-pre.8 1 2025/6/6
5.0.0-pre.7 1 2025/6/6
5.0.0-pre.6 1 2025/6/6
5.0.0-pre.5 1 2025/6/6
5.0.0-pre.4 3 2025/5/25
5.0.0-pre.3 1 2025/6/6
5.0.0-pre.2 1 2025/6/6
5.0.0-pre.1 1 2025/6/6
4.9.4 1 2025/6/6
4.9.3 1 2025/6/6
4.9.2 1 2025/6/6
4.9.1 1 2025/6/6
4.8.2 1 2025/6/6
4.8.1 3 2025/5/26
4.8.0 1 2025/6/6
4.7.7 1 2025/6/6
4.7.6 1 2025/6/6
4.7.5 1 2025/6/6
4.7.4 1 2025/6/6
4.7.3 2 2025/6/6
4.7.2 1 2025/6/6
4.7.1 1 2025/6/6
4.6.7 1 2025/6/6
4.6.4 1 2025/6/6
4.6.3 1 2025/6/6
4.6.2 1 2025/6/6
4.6.1 1 2025/6/6
4.6.0 1 2025/6/6
4.5.0 1 2025/6/6
4.4.0 1 2025/6/6
4.3.0 1 2025/6/6
4.2.0 1 2025/6/6
4.1.0 1 2025/6/6
4.0.6 1 2025/6/6
4.0.5 1 2025/6/6
4.0.4 1 2025/6/6
4.0.3 1 2025/6/6
4.0.2 1 2025/6/6
4.0.1 1 2025/6/6
4.0.0 1 2025/6/6
4.0.0-pre9.10 1 2025/6/6
4.0.0-pre9.9 1 2025/6/6
4.0.0-pre9.8 1 2025/6/6
4.0.0-pre9.7 1 2025/6/6
4.0.0-pre9.6 1 2025/6/6
4.0.0-pre9.4 1 2025/6/6
4.0.0-pre9.3 1 2025/6/6
4.0.0-pre9.2 1 2025/6/6
4.0.0-pre9.1 1 2025/6/6
4.0.0-pre9 1 2025/6/6
4.0.0-pre8 1 2025/6/6
4.0.0-pre7 1 2025/6/6
4.0.0-pre6 1 2025/6/6
4.0.0-pre5 1 2025/6/6
4.0.0-pre4 1 2025/6/6
4.0.0-pre3 1 2025/6/6
4.0.0-pre2 1 2025/6/6
4.0.0-pre 1 2025/6/6
3.3.3 1 2025/6/6
3.3.2 1 2025/6/6
3.3.1 0 2020/11/6
3.3.0 1 2025/6/6
3.2.1 1 2025/6/6
3.2.0 1 2025/6/6
3.1.0 1 2025/6/6
3.0.1 1 2025/6/6
3.0.0 1 2025/6/6
3.0.0-pre 1 2025/6/6
2.0.0 1 2025/6/6
1.1.2349.61993 1 2025/6/6
1.1.2225 1 2025/6/6
1.1.1589.5942 1 2025/6/6
1.1.1589.5941 1 2025/6/6
1.1.1579.5793 1 2025/6/6
1.1.1508.5724 1 2025/6/6
1.1.1456.5398 1 2025/6/6
1.1.1161.61462 1 2025/6/6
1.1.1160.61462 1 2025/6/6