The Open Toolkit 0.9.9-3 Beta



[Overview]

This is the a preview release of what will become OpenTK 1.0. Major changes:
* Bindings with generic ref/out overloads now reflect changes back to the caller.
* Improved OpenGL 3.2 bindings.
* Added helper overloads to GetAttrib* methods.
* Fixed 'out string' parameters in ES20 (should have been StringBuilder).
* Added Icon and IconChanged support to NativeWindow.
* Added Focused and FocusedChanged support to NativeWindow.
* Added KeyPress event to NativeWindow (in progress).
* Improved WindowBorder and WindowState changes for NativeWindow on win32.
* Fixed premature GLControl initialization (Load event is now correctly raised).
* Fixed Vector[234]d and Matrix4d signatures (double instead of float) and added several new methods to Matrix4 and Matrix4d.
* Fixed a large number of smaller issues and annoyances in NativeWindow (see complete bug list, below).
* Improved internal loading code for the various bindings.
* Made the binding generator more robust when handling invalid or malformed specifications.
* GameWindow OnLoad and OnUnload methods are now protected instead of public (this was supposed to happen in the previous release).

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



[Resolved issues]

[#588]
[#964]
[#1071]
[#1083]
[#1146]
[#1151]
[#1165]
[#1175]
[#1176]
[#1180]
[#1190]
[#1207]
[#1213]
[#1214]
[#1215]
[#1118]
[#1226]
[#1227]
[#1233]
[#1235]
[#1239]
[#1240]
[#1248]




[Known issues]

* Mono 2.2 and 2.4.0 cannot compile this release due to a compiler bug (https://bugzilla.novell.com/show_bug.cgi?id=488960). Please compile with Mono 2.0, 2.4.2+ or use the precompiled binaries instead.
* The example browser is incomplete.
* The Mac OS X port is untested and may fail to work correctly. If you are interested in helping out, please make a post at the forums.
* 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.

If you are upgrading from OpenTK 0.9.9-0 or earlier, please add a reference to OpenTK.Compatibility.dll and OpenTK.GLControl.dll (if necessary).


[0.9.9-3]

1. OpenTK.Matrix4d no longer contains an [int, int] indexer.
Solution: there is no solution at this time. If you were using this indexer, please file an issue report at http://www.opentk.com/node/add/project-issue

2. OpenTK.Graphics.ES20.GetProgramInfoLog now takes a StringBuilder instead of an 'out string' parameter.
Solution: the previous signature was incorrect. Please create and pass a StringBuilder to this method.

3. A number of OpenTK.Graphics.OpenGL 3.2 methods now take strongly-typed enums instead of the 'All' enum.
Solution: please replace the All enum by the correct one, as indicated by the compiler error.

 4. GameWindow OnLoad and OnUnload methods are now protected instead of public.
 Solution: change the access qualifier to protected when overriding these methods.
 

[0.9.9-2]

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.
