The Open Toolkit 0.9.9-2 Beta



[Overview]

This is the third preview release of what will become OpenTK 1.0. Major changes:
* Added new OpenTK.Compatibility project to ensure compatilibility with older OpenTK and Tao projects.
* Deprecated and merged OpenTK.Utilities into OpenTK.Compatibility.
* Moved OpenTK.GLControl into its own project.
* Added NativeWindow class and modified GameWindow to inherit from it.
* Improved the build system and added support for signed assemblies.
* Added complete OpenGL|ES support.
* Recreated the OpenCL bindings using the binding generator.
* Improved the math API.
* Fixed all documentation warnings.
* Improved implementations for GraphicsContext, GLControl, NativeWindow, GameWindow.
* Added a large number of stability fixes and improved the behavior of OpenTK under buggy environments.


Please visit http://www.opentk.com to report issues or request features.



[Resolved issues]

[#566]
[#775]
[#993]
[#1071]
[#1074]
[#1081]
[#1082]
[#1084]
[#1089]
[#1101]
[#1119]
[#1121]
[#1126]
[#1131]
[#1138]
[#1140]
[#1141]
[#1143]



[Known issues]

* Mono 2.2 and 2.4 fail to compile this release (bug report: https://bugzilla.novell.com/show_bug.cgi?id=488960). Please compile with Mono 2.0, 2.4.2+ or use the precompiled binaries.
* OpenTK.Graphics.TextPrinter fails to render text with newlines or a layout rectangle on Mono. This is a Mono GDI+ bug.
* Example documentation may not show up correctly when running on Mono. This is a Mono issue with RTF parsing.
* Joystick input is not supported on Mac OS X at this time.
* OpenGL 3.0 is not supported on Mac OS X at this time.
* The new GameWindow implementation may not function correctly on Mac OS X.
* The new GraphicsContext  implementation may not function correctly on Mac OS X.
* MonoDevelop fails to sign assemblies (bugs https://bugzilla.novell.com/show_bug.cgi?id=484752 and https://bugzilla.novell.com/show_bug.cgi?id=537063).



[API changes]

Please note that binary compatibility is not preserved between beta releases.


[0.9.9-2]

If you are upgrading from an earlier version of OpenTK, please add a reference to OpenTK.Compatibility and OpenTK.GLControl (if you are using the GLControl).

1. OpenTK.Utilities assembly no longer exists.
Solution: add a reference to OpenTK.Compatibility.

2. OpenTK.GLControl no longer exists in OpenTK.dll.
Solution: add a reference to OpenTK.GLControl.

3. OpenTK.Graphics.GL has been moved to OpenTK.Graphics.OpenGL.GL.
Solution: add a reference to OpenTK.Compatibility or change the relevant qualifiers from OpenTK.Graphics to OpenTK.Graphics.OpenGL or add a using directive for OpenTK.Graphics.OpenGL.

4. OpenTK.Audio.AL has been moved to OpenTK.Audio.OpenAL.AL.
Solution: add a reference to OpenTK.Compatibility or change the relevant qualifiers from OpenTK.Audio to OpenTK.Audio.OpenAL or add a using directive for OpenTK.Audio.OpenAL.

 5. GameWindow events are no longer raised if the relevant On* method is overriden.
 Solution: ensure that you call "base.On*" when you override one of the "On*" methods (e.g. OnLoad).
 
 6. GameWindow OnLoad and OnUnload methods are now protected instead of public.
 Solution: change the access qualifier to protected for overriding methods.
 
 7. DisplayResolution and DisplayDevice classes have been moved from OpenTK.Graphics into the root OpenTK namespace.
 Solution: change the relevant using directives and qualifiers from OpenTK.Graphics to OpenTK.
 
 8. TextPrinter is marked as deprecated.
 Solution: there is no solution at this time. The TextPrinter will continue to work as expected but is need of a dedicated maintainer.
 
 9. Tao.OpenGl, Tao.OpenAl and Tao.Platform.Windows.SimpleOpenGlControl are marked as deprecated.
 Solution: use core OpenTK classes if possible. The Tao namespaces are only offered for compatibility with existing applications and new projects should avoid using them.


[0.9.9-1]

1. The OpenTK.Math namespace no longer exists. Please replace all references by 'OpenTK'. This can be easily achieved with the following Search & Replace operations:

'using OpenTK.Math;' -> 'using OpenTK;'
'OpenTK.Math.' -> 'OpenTK.'

2. OpenCL bitfields are now mapped to 'long' instead of 'int'. Casts from [Flags] enums to 'int' may now fail. Please avoid such casts or use 'long' instead.


[0.9.9]

1. GameWindow.Resize and GameWindow.OnResize have changed signatures:

ResizeEventHandler Resize(object, ResizeEventArgs) -> EventHandler<EventArgs> Resize(object, EventArgs)
OnResize(ResizeEventArgs) -> OnResize(EventArgs)

Please replace all instances of "ResizeEventHandler" by "EventHandler<EventArgs> and replace "e.Width" / "e.Height" by "this.Width" and "this.Height".

2. All GameWindow.On* functions are now 'protected' instead of 'public'.

Please mark all relevant overrides as 'protected'.

3. Glu is now marked as deprecated.

Please use OpenTK instead.

4. OpenTK.Input.[Keyboard|Mouse|Joystick]Device are marked as obsolete.

Please continue using these classes normally. A future update will provide a much more versatile input API.


[0.9.8-1]

1. Parameters of OpenTK.Graphics.GL.GetShaderSource have been changed: you should now pass a single StringBuilder instead of a StringBuilder[] array.

2. Parameters of OpenTK.Graphics.GL.GetUniformIndices have been changed: you should now pass a string[] array instead of a single string.

2. Parameters of OpenTK.Graphics.GL.TransformFeedbackVaryings have been changed: you should now pass a string[] array instead of a single string.


[0.9.8-1]

This release renames GL.GetBoolea to the correct GL.GetBoolean.



[0.9.8]

1. OpenTK 0.9.8 replaces several instances of the "All" and "Version*" enums with strongly-typed equivalents. This is a breaking change. If you are affected by this change, replace these enums with the ones suggested by your compiler.

The 'v' suffix has been removed from several OpenTK.Graphics.GL functions. Please search and replace any of the following functions (list non-inclusive):

Uniform1v -> Uniform1
Materialv -> Material
Lightv    -> Light


2. Several instances of the "Version12" enum have been replaced with strongly-typed equivalents. This is a breaking change that affects programs using the imaging subset of OpenGL 1.2.

If you are affected by this change, please replace all relevant instances of "Version12" with the correct enum, as indicated by your compiler.


3. OpenTK 0.9.8 removes several OpenGL overloads that take arrays of a single item. This is a breaking change. If you are affected by this change, please use the 'ref' or 'out' overload for the relevant function.


[0.9.7]

OpenTK 0.9.7 replaces several instances of the "All" and "Version30" enums with strongly-typed equivalents. This is a breaking change that potentially affects programs using OpenGL 3.0 functionality. If you are affected by this change, please replace the relevant instances of "All" or "Version30" with the correct enum, as reported by your IDE.

OpenTK 0.9.7 also fixes the naming of several core and extension functions ending in "Instanced", "Indexed" or "Varyings". If you are affected by this change, please add the missing 'd' or 's' to the relevant functions.
