eglGetProcAddress cannot be used to retrieve entry points of core functions. Instead, we use [DllImport] for core functions and function pointers for extension functions. Squashed commit of the following: commit 0b84aa6ef78dfa3600b81fc412eb192f2a87e40c Author: thefiddler <stapostol@gmail.com> Date: Sat Mar 15 02:24:58 2014 +0100 [Examples] Rolled back changes to Example browser commit 1acfbaac3d17184debdbbe872c58ac07d1b37c0a Author: thefiddler <stapostol@gmail.com> Date: Sat Mar 15 02:20:57 2014 +0100 [Examples] Rolled back WinForms example commit 835d9d6035a890bd3426566929fbfd25c493eca0 Author: thefiddler <stapostol@gmail.com> Date: Sat Mar 15 01:15:01 2014 +0100 [Examples] Rolled back erroneous GLControl mods commit 056418014f0e835e83fb85b54b8749519a555364 Author: thefiddler <stapostol@gmail.com> Date: Fri Mar 14 23:11:11 2014 +0100 [Rewrite] Remove calli prototypes When a function is called indirectly via a function pointer, its prototype is not required (the prototype is added as a callsite at the calli invocation.) Removing these prototypes reduces binary size by roughly 400KB. commit 353a16ec2836c597150d2fab28581e7c264b2b39 Author: thefiddler <stapostol@gmail.com> Date: Fri Mar 14 22:31:25 2014 +0100 [Rewrite] Call DllImports directly When a function does not have an allocated slot (i.e. slot = -1), then we will call its DllImport signature directly. commit 9a5313e4b7afb10b698d255e4b5637887bf71cf3 Author: thefiddler <stapostol@gmail.com> Date: Fri Mar 14 22:30:04 2014 +0100 [Bind] Do not allocate slots for DllImports commit 6ac5342409363cac0e59f9dc669948b319bd20a9 Author: thefiddler <stapostol@gmail.com> Date: Fri Mar 14 22:29:07 2014 +0100 [Bind] Added option to use DllImports This is necessary for the core functionality of OpenGL ES, where eglGetProcAddress returns null or garbage (the latter on Android.) |
||
---|---|---|
Dependencies | ||
Documentation | ||
Installers | ||
Source | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
OpenTK.sln | ||
OpenTK.snk | ||
README.md |
OpenTK
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.
Project website: http://www.opentk.com/
Official git repository: https://github.com/opentk/opentk
Features
- Create cutting-edge graphics with OpenGL 4.4 and OpenGL ES 3.0
- Spice up your GUI with 3d graphics
- Improve your code flow with strong types and inline documentation
- Write once run everywhere!
OpenTK is available on 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, ...)
Current Version 1.1 stable released 2014-Feb-10: http://www.opentk.com/news/opentk-1.1-stable-released
Binaries available at http://www.opentk.com
NuGet packages at http://www.nuget.org/packages/OpenTK/
Roadmap
- Merge opentk/opentk (upstream) with mono/opentk (Xamarin)
- Add Portable Class Library (PCL) target
- Add multitouch API
- Add new platforms: NaCL, emscripten, Windows Metro, Ouya, Raspberry PI
- Improve OpenCL bindings
- Improve math library
Contributing
- Install git and a C# IDE (see requirements section below)
- Fork the develop branch of https://github.com/opentk/opentk
- Commit your changes in small, incremental steps with clear descriptions
- When ready, issue a Pull Request (PR) against the develop branch of https://github.com/opentk/opentk
For details on coding style and best practices, refer to https://github.com/opentk/opentk/wiki/Contributing
Requirements
- Windows (XP/Vista/7/8), Linux, Mac OS X, *BSD, SteamOS, Android or iOS
- For graphics, OpenGL drivers or a suitable emulator, such as ANGLE
- For audio, OpenAL drivers or OpenAL Soft
- To develop desktop applications: Visual Studio, Xamarin Studio, MonoDevelop or SharpDevelop
- To develop Android applications: Xamarin Studio or the Xamarin Extensions for Visual Studio
- To develop iOS applications: Xamarin Studio and XCode
Documentation
Your favorite IDE will display inline documentation for all OpenTK APIs. Additional information can be found in the OpenTK Manual and in the opentk/Documentation/ folder.
Technical documentation about the implementation of OpenTK can be found in the Technical Wiki.
Need Help?
Post your questions at the OpenTK forums.
Report bugs at https://github.com/opentk/opentk/issues
License
The Open Toolkit is distributed under the permissive MIT/X11 license and is absolutely free.