Opentk/Documentation/Changelog.txt
2007-09-26 16:35:25 +00:00

297 lines
No EOL
14 KiB
Text

[Legend: complete('+') | WIP('*') | missing('-')]
-----------------------
OpenTK 0.3.11 -> 0.3.12
-----------------------
+ Bind
+ Minor output layout updates.
+ OpenTK
+ Platform
+ Renamed Windows.API to Windows.Functions, to match X11.Functions.
+ Added many new functions to both Windows and X11 bindings.
+ Improved inline documentation to Windows and X11 bindings.
+ GameWindow
+ Added timing logic to the Run() function. The target UpdateFrame and RenderFrame rates can be set independently. The GameWindow will try to maintain the UpdateFrame rate, dropping RenderFrames if necessary.
+ GameWindow.Run() now releases unused CPU time.
+ Improved event firing. Resize event called only once now. No need for users to call base.OnXYZ functions.
+ Corrected an issue where GameWindow could could fail to shutdown properly under Windows, due to WinRawInput driver eating up the CLOSE event.
+ GameWindow exposes only one Mouse and Keyboard now. Multiple keyboard/mouse support is provided through the InputDriver, but is still very much a WIP, so better to use the default Keyboard and Mouse devices reported by GameWindow.
+ Added the GameWindow.Title property, which can be used to retrieve or set the GameWindow caption.
+ Added new constructors and CreateWindow overloads.
+ Greatly improved documentation.
+ Internal layout changes, and general performance optimizations.
+ Input
+ Mouse input support through WinRawMouse and X11Mouse drivers.
- Mouse.Wheel and Mouse.WheelDelta are broken on both platforms.
- WinRawMouse is very resource intensive. Expect great performance improvements in the next releases.
+ Added some missing Keyboard keys.
+ Math
+ Added Vector2, Vector3 and Vector4 structs, and basic vector math functions. You can pass these structs directly to functions expecting float*, by casting to (float*).
+ Examples
+ Merged T02: Resizable Window example into T01: Simple Window.
+ Added T02: Vertex Array example.
+ Added T04: Lighting example.
+ Improved keyboard handling.
+ Improved documentation, especially T01: Simple Window.
+ Slightly cleaned up T10: GLSL Example.
+ Examples now use many of the new GameWindow capabilities. Check out T01.
+ Added Shape, IsoSphere, and Cube shapes. OpenTK.Example.Shape for more.
-----------------------
OpenTK 0.3.10 -> 0.3.11
-----------------------
+ Bind
+ Preliminary support for GLU and GLX.
+ Improved generator speed. GLU generation down to 5 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).
+ GCHandles where not freed (bug introduced in 0.3.10).
+ Added preliminary GLU bindings. Tesselation not working yet.
+ 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
+ Resolved issue where 'T10: GLSL Cube' example failed with an NRE when compiled with Mono 1.2.x
+ Added 'W03: Extensions' example.
+ Added 'T04: Lit Cube' example (still needs work).
-----------------------
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! :)