'+' complete, '*' WIP, '-' missing OpenTK 0.3.10 -> 0.3.11 + Bind + Preliminary support for GLU and GLX. + Improved generator speed. GLU generation down to 40 seconds (from 6 minutes). + Enhanced overload trimming using Regexes. All endings should be handled correctly now. + OpenTK + Platform + Replaced System.Windows.Forms.Message with OpenTK.Platform.Windows.MSG. Corrects deadlocks under 32-bit windows. + Added WindowMessage enum from Mono's bindings. + GameWindow, GLControl and GLContext + Improved shutdown sequence (finalizers only on classes that actually need them). + Improved stability (exceptions no longer thrown in finalizers). + Corrected deadlock under 32-bit Windows (see above). + Added DummyGLControl and DummyGLContext, used in design mode. Improves design speed and resolves Visual Studio crashes. + GameWindow Create event marked as obsolete. Use the Load event instead. + Input + Correctly implemented disposable pattern. + OpenGL + GL.ClearColor() now accepts a System.Drawing.Color + All function endings are trimmed now (see Bind changelog). + Examples + Improved ExampleLauncer behavior. Examples are now launched in the main ExampleLauncher thread, and the ExampleLauncher becomes invisible whenever and example is active. + Improved example names inside the ExampleLauncher. Renamed some examples to better reflect their contents. + Added two new tutorials: 'T01: Simple Window' and 'T02: Resizable Window' + Updated the DrawCube() immediate mode functions to use System.Drawing.Colors OpenTK 0.3.9 -> 0.3.10 + Bind + Added Generator for WGL. + Corrected bug where trimmed overloads (like Color3) did not call the correct delegates internally (Color3ub called glColor3b) + Improved configuration capabilities - can now change the function prefix/postfix, and more. + Improved commandline argument handling. + OpenTK + Platform + Added complete WGL bindings (Wgl.cs, WglCore.cs, WglDelegates.cs, WglEnums.cs) * Should request up-to-date specs from Khronos. + GameWindow and GLControl + Improved creation/destruction event sequence. + Improved loading speed. + Corrected long-standing stability issues (moving between GameWindow/GLControl examples no longer results in a crash) + Improved compatibility (now works with Mesa3d 7.0.x as well as 6.5.x) + Better error handling (although not completely safe by any measure). + Corrected client rectangle under Windows GameWindow implementation - now the Viewport correctly corresponds the rendering area. * Critical bug: deadlock on Windows XP 32-bit. Investigating. + Input + Slightly improved keyboard handling functions. + OpenGL + Added convenience overloads for Color[34] that can directly take a System.Drawing.Color struct. + Examples + Slight improvements to event handling. + Improved the ExampleLauncher interface (now responds to key events, added a 'Run Example' button). OpenTK 0.3.8 -> 0.3.9 + Bind + Does not rely on CodeDOM anymore (wasn't flexible enough). + Initial work on gl3, wgl, glx, glu compatibility. + Implemented almost all pending features: + Extensions in different classes (e.g. GL.ARB.ActiveTexture) + Fixed statement instead of GCHandle for improved performance + Real pointers instead of IntPtrs + CLS-Compliant and non CLS-Compliant overloads (e.g. functions with unsigned parameters). + Overloads over the 'basic' function (e.g. GL.Vertex3fv -> GL.Vertex3) + Enums now inside the GL class. + New commandline options + 'legacy': defines compatibility with Tao ('-legacy:tao') + 'mode': defines translation mode (e.g. gl2, gl3, wgl etc) + 4 files are now generated: GL.cs, GLCore.cs, GLDelegates.cs, GLEnums.cs + Build + Corrected sharpdev target (was generating monodev projects before) + Added sharpdev2 target. + OpenTK + GameWindow + Added support for keyboard input. Windows (raw input) and linux drivers. * Improved GameWindow events (Load, Create, Destroy). Still incomplete. * Fixed several crash bugs. - Crashes observed when frequently creating/destroying GameWindows. + Input * Interface for input devices: keyboard, mouse. * Driver implementation for windows (raw input) and linux. + Works with GameWindow. - Does not work with GLControl, yet. + Platform + X11 enhanced with Mono's X11 bindings. * Work on platform interop utilities. + Minor additions to Windows.API + Examples + New GL interface. * Temporarily disabled incomplete examples. OpenTK 0.3.7 -> 0.3.8 + New project layout. Only four projects remain under the 'Source' directory: Bind, Build, Examples, OpenTK + The whole library (Platform, Windowing, OpenGL, etc.) is now contained in the OpenTK.dll. + Build contains the new build system. + Bind contains the opengl binding generator. + Examples contains examples showcasing OpenTK and OpenGL. + Build + Improved console output. + Added support for debug target. + Better handling of wrong targets. + Moved Prebuild.xml to the Build folder. + OpenTK - Removed OpenTK.Framework (superseded by GameWindow) + GameWindow (new, incomplete) + Creates render window through system calls. + Interface suited for games. + Resize event support. + Error handling. - No keyboard input yet. + Platform + Numerous additions, bugfixes in OpenTK.Platform.Windows, OpenTK.Platform.X11. + Changed the class and namespace names. + Added IGLContext, IGLControl, IGameWindow, INativeWindow, IResizable interfaces. + Added class GLContext : IGLContext. Platform specific implementations in WinGLContext and X11GLContext. + Added class GLControl : IGLControl. Platform specific implementations in WinGLControl and X11GLControl. + Added classes WinGLNative, X11GLNative : INativeWindow. + Added visual studio design support for GLControl. + Input * Do not use yet, it is not ready. + Examples + Added an example launcher + Two example categories for now: Tutorials (showcasing GameWindow) and WinForms (showcasing GLControl) + Added Tutorials.VBO example (incomplete) + Added WinForms.FirstWindow example. + Ported some of the old examples over. * More work on examples and tutorials on the next version. OpenTK 0.3.6 -> 0.3.7 + OpenTK.Build + Added new, (more) cross-platform build system, written on C#. This takes the place of the scripts and batch files used to compile OpenTK up till now. + Removed all build scripts. + OpenTK.Framework + Now builds under Linux. + OpenTK.OpenGL.Bind + Synced with Tao.GlBindGen beta 2.1.3.6 + Enabled ref/out overloads. + Added GLenum, which contains all opengl enumerants (useful for 'polymorphic' opengl functions). + OpenTK.OpenGL + ref/out overloads and GLenum (see above). + Fixed extension loading under Mac OS X. + Improved compatibility with 64bit platforms. OpenTK 0.3.5 -> 0.3.6 + OpenTK.OpenGL.Bind + Synced with Tao.GlBindGen codebase. + Uses CodeDOM internally for code generation. + Updated to latest specs (which include shader model 4). + OpenTK.OpenGL (Low level) + All OpenGL extensions are now generated (up to shader model 4). + Decorated imports and delegates with the SuppressUnmanagedCodeSecurity attribute. Major speed improvements in CPU-bound applications. + More robust and faster static initialisation for the GL class. + Updated GLHelper.cs, with methods to obtain or reload OpenGL entry points, as well as query for supported extensions. + Got rid of "object" overloads for typed arrays. + All known bugs are now fixed. + OpenTK.OpenGL (High level) + Added the DisplayList class. + OpenTK.Examples.OpenGL + Added the Basic.DisplayLists example. OpenTK 0.3.4 -> 0.3.5 + Thanks to Erik Ylvisaker's hard work, OpenTK now works under both Windows and X11. + The GLContext class now contains all needed code for mode switching. + The Framework class structure has been updated. Less code is duplicated between GLContext and Framework now. + Three new examples have been added: OpenGL.Basic.Lesson01 (equivalent to OpenGL.GLSL.Lesson01 without the shaders), OpenGL.Basic.QueryDisplayModes which shows a list of all available display modes, and OpenGL.Basic.NoFramework which shows how to use OpenGL Contexts directly (without relying on the framework). + New bindings for X and the XF86 extension. + New build system based on Prebuild and NAnt (similar to the one used in Tao or Mono.XNA). + Updates to the OpenTK.OpenGL.DisplayMode and ColorDepth classes. + More XML documentation blocks added to functions and classes. + Major update to OpenTK.OpenGL.Bind (see that changelog for more info). + Revamped GL class (it is self contained now). + Revamped GLContext class (it is no longer bound to the GL class initialisation). + Cleaner code, new functions, comments and many new wrappers. + Updated the spec files for opengl 2.1. + Added the new 64 bit types to the typemaps (gl.tm and csharp.tm) + The bugs in the specs are still there: + SGIX_icc_texture is still commented out, while enums use it. + LightProperty is still used by constants (the correct enum is LightParameter). + I think I should contact someone at the Khronos group about these. For the time being I worked around them, by adding a special case for LightProperty in the translator, and adding the SGIX enum to the missing parameters. + See also: http://www.haskell.org/HOpenGL/spec_bugs.html (lots of useful information on that site). + Directory structure updates. + Now every project has its own documentation. + The spec files for OpenGL now reside in the Source/OpenTK/OpenGL directory. + Minor updates to the wgl bindings (int -> IntPtr). + Tested the binding generator with the glx specs (the reader and the enum writer work ok, the trnaslator and the other writers will need updating). + Renamed the GLForm to Framework. + The Framework now resides in its own project directory. OpenTK 0.3.3 -> 0.3.4 + Corrected the crash error in Release mode (it was caused by trying to Marshal the System.Windows.Forms.Message struct to PeekMessage - adding my own Message struct corrected the issue). + Corrected the call to glShaderSource GLSL.Lesson01. Now the correct number is passed to the count parameter, while the null parameter was changed to IntPtr.Zero (Mono now no longers fails in this call). + Updated the GLSL.Lesson01 example to use GetShaderInfoLog on compilation failure. + OpenTK.OpenGL.Bind 0.7.5.1 -> 0.7.5.2 (see Bind changelog for more information) + Full Mono support under windows. OpenTK 0.3.2 -> 0.3.3 + OpenTK.OpenGL.Bind 0.7.5 -> 0.7.5.1 (see Bind changelog for more information) + Added the GLForm class which sets the base for cross-platform screen, context and keyboard handling. + Can now change between fullscreen and windowed modes. + Temporarily removed all examples except for GLSL.Lesson01, which has been updated to use the new GLForm class. OpenTK 0.3.1 -> 0.3.2 + OpenTK.OpenGL.Glu: Eliminated the temporary IntPtr variable in the GetString and ErrorString functions. + Specifications.cs_types.txt: Changed types in order to be CLS compliant. + OpenTK.OpenGL.Bind 0.7.4 -> 0.7.5 + Added the GLSL.Lesson01 example. OpenTK 0.3.0 -> 0.3.1 + Updated the binding generator to version 0.7.4, based on the work done for Tao. + Updated the Context load functions. Now Context loads all functions are extensions, and the derived classes override this behavior as needed. + Changed the uint array used in the DisplayLists example to an int array. + Added the changelog! :)