From b3bd79518b4c70653d508fee3a716063b8b84ade Mon Sep 17 00:00:00 2001 From: the_fiddler Date: Sat, 5 Sep 2009 18:29:11 +0000 Subject: [PATCH] Updated in preparation of 0.9.9-2 release. --- Documentation/Changelog.txt | 121 ++++++++++++++++-- Documentation/License.txt | 2 +- Documentation/Release.txt | 92 +++++++++---- Documentation/Todo.txt | 23 ++-- .../Platform/Windows/SimpleOpenGlControl.cs | 3 + 5 files changed, 194 insertions(+), 47 deletions(-) diff --git a/Documentation/Changelog.txt b/Documentation/Changelog.txt index 8478c758..6200dc94 100644 --- a/Documentation/Changelog.txt +++ b/Documentation/Changelog.txt @@ -1,20 +1,109 @@ [Legend: complete('+') | WIP('*') | missing('-')] --------------------------- - OpenTK 0.9.8-1 -> 0.9.8-2 + OpenTK 0.9.9-1 -> 0.9.9-2 --------------------------- -+ Bind - + Fixed handling of string arrays. + ++ 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 - + Fixed wrappers for functions taking string arrays: TranformFeedbackVaryings, GetUniformIndices, GetShaderSource. + + 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 - + X11XrandrDisplayDevice now ignores invalid resolutions returned by XRandR. - + + 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 - + TextPrinter - + Fixed handling of text color parameter in TextPrinter.Print(). + + Merged project into OpenTK.Compatibility. + ------------------------- OpenTK 0.9.9 -> 0.9.9-1 @@ -54,6 +143,22 @@ + Glu is now marked as obsolete. + Support for multisampled contexts (Windows-only at the moment). +--------------------------- + OpenTK 0.9.8-1 -> 0.9.8-2 +--------------------------- ++ Bind + + Fixed handling of string arrays. + ++ OpenTK + + Graphics + + Fixed wrappers for functions taking string arrays: TranformFeedbackVaryings, GetUniformIndices, GetShaderSource. + + Platform + + X11XrandrDisplayDevice now ignores invalid resolutions returned by XRandR. + ++ OpenTK.Utilities + + TextPrinter + + Fixed handling of text color parameter in TextPrinter.Print(). + ------------------------- OpenTK 0.9.8 -> 0.9.8-1 ------------------------- diff --git a/Documentation/License.txt b/Documentation/License.txt index 8643e933..35066bd4 100644 --- a/Documentation/License.txt +++ b/Documentation/License.txt @@ -26,7 +26,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI -OpenTK.Compatibility offers the Tao namespace, which includes portions of the Tao Framework library. These portions are covered by the following license: +OpenTK.Compatibility includes portions of the Tao Framework library (Tao.OpenGl, Tao.OpenAl and Tao.Platform.Windows.SimpleOpenGlControl). These portions are covered by the following license: Copyright ©2003-2007 Tao Framework Team http://www.taoframework.com diff --git a/Documentation/Release.txt b/Documentation/Release.txt index e8492aa6..3893056d 100644 --- a/Documentation/Release.txt +++ b/Documentation/Release.txt @@ -1,52 +1,66 @@ -The Open Toolkit 0.9.9-1 Beta +The Open Toolkit 0.9.9-2 Beta [Overview] -This is the first preview release of what will become OpenTK 1.0. Major changes: -* Initial OpenGL ES support -* OpenCL bugfixes. -* Math API improvements. -* Internal improvements to DisplayDevice and DisplayResolution. +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 note that this is a work-in-progress snapshot release and should only be used for testing purposes. - -Visit http://www.opentk.com to report issues or request features. +Please visit http://www.opentk.com to report issues or request features. [Resolved issues] -[#744] -[#917] -[#955] -[#964] -[#1005] -[#1021] -[#1032] -[#1035] -[#1037] -[#1050] -[#1060] +[#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 or 2.4.2+, or use the precompiled binaries. +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 MacOS at this time. +Joystick input is not supported on Mac OS X at this time. -OpenGL 3.0 is not supported on MacOS 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. + [API changes] @@ -54,6 +68,38 @@ The new GameWindow implementation may not function correctly on Mac OS X. 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: diff --git a/Documentation/Todo.txt b/Documentation/Todo.txt index f088bc7c..3ff249b5 100644 --- a/Documentation/Todo.txt +++ b/Documentation/Todo.txt @@ -1,37 +1,30 @@ [General] -+ Split OpenTK.Utilities from the core OpenTK. ++ Split TextPrinter from the core OpenTK. + Change all public APIs to conform to the class library interface guidelines. + Revisit all classes and make sure IDisposable is correctly implemented. -+ Remove System.Windows.Forms dependence. ++ Remove System.Windows.Forms dependency. -[OpenTK.Graphics.GL] +[OpenTK.Graphics.OpenGL] + Improve performance for functions that return StringBuilders. -+ Enforce PureValue constraint in generic classes. ++ Enforce BlittableValueType constraint in generic classes. + Improve performance for functions that take generic arrays. + Fix documentation - parameter mismatches. +[OpenTK.Compute] +[OpenTK.Graphics.ES*] ++ Improve the API. + [OpenTK.Graphics.GraphicsContext] -+ FSAA support (very simple, now that GL3 support has been added.) + Implement GL3 support on Mac OS X. + Improve API for context sharing (add a sharedContext parameter to the context constructor). [OpenTK.GLControl] + Improve the designer interface. -+ Move to a separate assembly. [OpenTK.Input] + Implement joystick support on Mac OS X. + Implement GameWindow-independent input drivers. + Implement support for multiple mice and keyboards. -[OpenTK] -+ Move to the OpenTK namespace instead of OpenTK. -+ Improve performance. -+ Improve API. - [Examples] -+ Add GL3 examples. + Add more comprehensive Graphics and Audio tutorials. - -[OpenTK.Compute] -+ Begin the implementation. \ No newline at end of file diff --git a/Source/Compatibility/Tao/Platform/Windows/SimpleOpenGlControl.cs b/Source/Compatibility/Tao/Platform/Windows/SimpleOpenGlControl.cs index 8f2cc2ca..2edf47db 100644 --- a/Source/Compatibility/Tao/Platform/Windows/SimpleOpenGlControl.cs +++ b/Source/Compatibility/Tao/Platform/Windows/SimpleOpenGlControl.cs @@ -3,6 +3,9 @@ MIT License Copyright ©2003-2006 Tao Framework Team http://www.taoframework.com +Copyright ©2009 the Open Toolkit library +http://www.opentk.com + All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy