the Fiddler's picture

The Open Toolkit library 0.9.9-2b

Download: opentk-0.9.9-2b.html
Size: 433 bytes
md5_file hash: 762803aa41d68aa715aed078c03d4750
First released: 6 September, 2009 - 09:50
Last updated: 6 September, 2009 - 09:59

[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: Support for signed assembly
#775: Remove [In] [Out] attributes from the GL wrappers
#993: Possible bug in GraphicsContext.CreateDummyContext()
#1071: Not firing Load event for GLControl.
#1074: X11XrandrDisplayDevice on Xming ---> Argument is out of range.
#1081: GameWindow inconsistent use of Width/Height on Windows
#1082: GameWindow Left/Top screen position
#1084: [OpenGL] ARB_imaging subset cleanup
#1089: TextPrinter is affected by TextureGen* and TextureEnvMode
#1101: OpenTK.Bind project refactoring
#1119: [Compute] "CL.GetPlatformIDs" missing "s"
#1121: GraphicsContext fails with KeyNotFoundException on SVN trunk
#1126: Bad report/count of online users
#1131: [Math] add Quaternion scaling (easy)
#1138: GLControl GraphicsContextException
#1140: ColorAttachment values on ReadBufferMode
#1141: Unhandled exception in GlControl possible bug in rev 2207
#1143: Fix all XML documentation warnings

[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 Resize(object, EventArgs)
OnResize(ResizeEventArgs) -> OnResize(EventArgs)

Please replace all instances of "ResizeEventHandler" by "EventHandler 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.

[Changelog]

[Legend: complete('+') | WIP('*') | missing('-')]
 
---------------------------
 OpenTK 0.9.9-1 -> 0.9.9-2
---------------------------
 
+ General
    + Changed project layout.
    + Bind project now relies on C# 3.0 / .Net 3.5.
    + Removed OpenTK.Utilities project.
    + Added OpenTK.Compatibility project.
    + Added OpenTK.GLControl project.
    + Improved build system.
    + OpenTK can now be strongly-named.
 
+ Generator
	+ Bind
		+ Cleaned up using directives and removed unnecessary qualifiers.
		+ Added support for specs in XML form.
		+ Added OpenGL|ES and OpenCL specs in XML form.
		+ Fixed handling of output paths in the ES generator.
		+ Fixed several instances that ignored the generator settings.
		+ Improved handling of pointer/reference overloads.
		+ Ensured that methods are written in lexicographic order.
	+ Converter
		+ Added support for OpenGL|ES extensions.
		+ Fixed several OpenGL|ES extensions from Nvidia that did not list parameter names.
		+ Fixed several other corner cases in the conversion process.
 
+ OpenTK
	+ Added support for signed assemblies.
    + Fixed all documentation warnings.
    + Moved DisplayDevice and DisplayResolution classes to the root OpenTK namespace.
    + Audio
		+ Moved OpenAL flat API to the OpenTK.Audio.OpenAL namespace.
		+ Removed SoundData class and OpenAL overloads using this class.
    + Build
        + Prebuild.exe and the Prebuild.xml are now distributed as an embedded resources.
        + Improved help and usage instructions.
        + Added support for strong names.
        + Removed obsolete build options and targets (nant, monodevelop 1, sharpdevelop 1).
        + Split OpenTK into three distinct solution files: OpenTK, Generator and QuickStart.
    + Compute
		+ Fixed a TypeLoadException issue in the various handle wrappers that could result prevent OpenTK from loading.
		+ OpenCL
			+ Moved OpenCL flat API to the OpenTK.Compute.OpenCL namespace.
			+ Regenerated the OpenCL using Bind.
			+ Updated to the latest version of the specs.
			+ Added missing 's' to 'CL.GetPlatformIDs'.
	+ NativeWindow
		+ New NativeWindow implementation of INativeWindow members.
		+ Connected several internal INativeWindow events to the public NativeWindow interface.
	+ GameWindow
		+ Modified to inherit from NativeWindow.
		+ Improved event handling.
		+ Removed ExitAsync method. GameWindow must be closed by the thread it originated from.
    + Graphics
		+ GraphicsContext
			+ Refactored internal IGraphicsContext implementations to reduce code duplication.
			+ GraphicsContext no longer accesses OpenGL or OpenGL|ES bindings directly and can work independently.
			+ Added support for EGL context implementations.
			+ Added GraphicsContextFlags.Embedded to GraphicsContext constructor, to allow creation of EGL contexts. Tested on the OpenGL|ES emulator from AMD.
			+ Fixed NullReferenceException in GraphicsContext.CreateDummyContext.
			+ Fixed potential KeyNotFoundException on X11.
		+ OpenGL
			+ Moved OpenGL flat API to the OpenTK.Graphics.OpenGL namespace.
			+ Replaced all occurences of Version12 and Version12Deprecated enums with specific enums.
			+ Cleaned up tokens for the ARB_imaging subset: EXT_convolution, EXT_histogram and SGI_color_table.
			+ Added missing ColorAttachmenti tokens to ReadBufferMode.
			+ Reduced duplication and improved initialization and extension loading code for OpenGL and OpenGL|ES.
			+ Removed methods that rely on OpenGL version checks, such as GL.SupportsExtension(). Programs should use one of the documented ways of checking for OpenGL extension support (GL.GetString(StringName.Extensions) on versions <= 2.1 and GL.GetString(StringName.Extensions, n) on versions >= 3.0).
			+ Removed GL.Load() and GL.LoadDelegate() methods.
			+ Removed unnecessary [In] and [Out] attributes.
		+ OpenGL|ES
			+ Added support for OpenGL|ES extensions.
			+ Regenerated the bindings using the latest version of Bind.
			+ Removed unnecessary [In] and [Out] attributes.
    + Input
        + Removed deprecated code.
        + Added more stubs for the static input classes.
    + Math
		+ Quaternions can now be scaled by scalars.
		+ Cleaned up parameter names and ensured they match the documentation.
    + Platform
		+ Removed Utiilties.CreateWindowInfo method. Please use one of the platform-specific Utilities.Create[X11|Windows|Carbon|Dummy]WindowInfo methods.
		+ Removed all deprecated methods from the Utilities class.
		+ X11
			+ Improved handling of invalid XRandR values reported by some drivers. This allows OpenTK to run on Xming.
 
+ OpenTK.Compatibility
	+ Added support for Tao.OpenGl, Tao.OpenAl and Tao.Platform.Windows.SimpleOpenGlControl (through OpenTK.GLControl).
	+ Added old math API from OpenTK.Math.
	+ Added old OpenGL API from OpenTK.Graphics.
	+ Added old OpenAL API from OpenTK.Audio.
	+ Added OpenTK.Graphics.TextPrinter.
	+ Moved GDI+ bindings to this project.
	+ TextPrinter
		+ Reset TextureGen, TextureEnvMode and lighting before rendering text.
 
+ OpenTK.GLControl
	+ Moved to different project, to reduce reliance of core OpenTK on Windows.Forms.
	+ Moved Windows.Forms-specific code from OpenTK.Platform.Utilities to OpenTK.GLControl.
 
+ OpenTK.Utilities
	+ Merged project into OpenTK.Compatibility.