The Open Toolkit is an advanced, low-level C# library that wraps OpenGL, OpenGL ES and OpenAL. It is suitable for games, scientific applications and any other project that requires 3d graphics, audio or compute functionality.
OpenTK is available for Windows, Linux, Mac OS X, *BSD, SteamOS, Android and iOS. It can be used standalone or integrated into a GUI (Windows.Forms, WPF, GTK+, Qt, VTK, ...)
[Download binaries](http://www.opentk.com) or [NuGet packages](http://www.nuget.org/packages/OpenTK/)
Instructions
============
The simplest way to use OpenTK in your project is to install the [NuGet package](http://www.nuget.org/packages/OpenTK/).
Alternatively, download the [OpenTK binaries](http://www.opentk.com) and:
1. Fixed a potential crash in bindings accepting a string array.
2. Fixed a marshalling issue where bindings might return an incorrect boolean value on some architectures.
3. Fixed a regression where mouse scrolling coordinates on Linux where flipped. Mouse scrolling now uses identical coordinate systems on Windows, Linux and Mac OS X: (+x, +y) = (right, up).
4. Fixed a potential deadlock when exiting the X11/XInput2 subsystem.
5. Fixed an issue where single-to-half floating point conversions would return incorrect results for specific numbers.
6. Added an API compatibility test - backwards-incompatible changes will now cause a compilation failure in the continuous integration server.
7. New platform: XQuartz (X11 over Mac OS X).
8. New platform: XWayland (X11 over Wayland).
9. New OpenGL and OpenGL ES extensions:
- EXT_geometry_point_size
- EXT_primitive_bounding_box
- EXT_texture_array
- EXT_tessellation_point_size
OpenTK 1.1.3 is backwards compatible with 1.1.2. Users of previous versions are strongly encouraged to upgrade.
Your favorite IDE will display inline documentation for all OpenTK APIs. Additional information can be found in the [OpenTK Manual](http://www.opentk.com/doc) and in the [opentk/Documentation/](https://github.com/opentk/opentk/tree/develop/Documentation) folder.
OpenTK 1.1.0 is not backwards compatible with 1.0. Most projects will be able to upgrade without any modifications. Projects using the following signatures will have to implement the suggested changes:
Namespace OpenTK.Graphics.OpenGL
Change signature:
- GL.MultiDrawArrays (`out` -> `ref`)
- GL.Amd.DeletePerfMonitors (`out` -> `ref`)
Change signature (may cause crash):
- GL.Apple.ObjectPurgeable (returns `AppleObjectPurgeable` instead of `IntPtr`)