Double in size compared to 0.3.8, OpenTK 0.3.9 introduces support for keyboard input, as well as major enhancements to the opengl API. Despite containing the most changes to date, 0.3.9 is the best tested release, with many, many bugs fixed.
- The opengl API now features separate namespaces for each opengl extension category (ARB, EXT, etc), e.g. 'glActiveTextureARB' is now called 'GL.ARB.ActiveTexture'. Core opengl functions (i.e. versions 1.0-2.1) reside in the 'GL' namespace, making the API is cleaner and more discovereable.
- Functions like glVertex3[fdis]v? and glColor3[fdis(ub)] are now overloads of GL.Vertex3 and GL.Color3 respectively. Overloads are included for all relevant functions, except where this would harm CLS-Compliance.
- Non CLS-Compliant unsigned overloads for all functions with unsigned parameters.
- 'Unsafe' overloads with real pointers instead of IntPtrs for functions taking pointer parameters. Ref/out and array overloads provide the 'safe' equivalent of the pointer overloads.
- Call performance for functions with array/ref/out parameters improved ten-fold (in most cases).
- Cross-platform support for keyboard input when using GameWindow.
- Fixed most (but not all) crash-bugs in GameWindow and GLControl. OpenTK is now mostly stable, but crashes may still occur under some very specific circumstances (e.g. when frequenctly creating/destroying opengl contexts).
- Improved event system for GameWindow.
- X11 bindings greatly enhanced using Mono's X platform bindings. (This portion is released under the Mono license).
- Windows bindings enhanced with support for Raw Input.
- OpenTK.OpenGL API
- OpenTK.Input and OpenTK.GameWindow
Several of these changes, especially OpenTK.OpenGL will break current programs. OpenTK 0.3.9 will probably be the last alpha release to introduce breaking changes on the road to the stable 0.4.0 release. Changes will be more gradual in the future.
Unfortunately, some features had to be postponed to the next version of OpenTK (0.3.10):
- Mouse input.
- OpenTK.Input support when using GLControl (now only works with GameWindow).
- Complete Wgl, Glu and Glx bindings.