diff --git a/Build/Instructions.txt b/Build/Instructions.txt index c45074f5..be5435b9 100644 --- a/Build/Instructions.txt +++ b/Build/Instructions.txt @@ -1,22 +1,19 @@ -How to build OpenTK: +Installation -1) Install nant from (http://nant.sourceforge.net/) -2) Navigate to the Build folder and execute Build.exe: - 2a) Under Linux/Mac OS X, type 'mono Build.exe mono' or 'mono Build.exe mono debug' for the release/debug versions of the library. - 2b) Under Windows type 'build net' (or 'build net debug'). -3) The binaries (library, examples) are placed in the Binaries/Release or Binaries/Debug folder. +OpenTK does not require installation. Simply decompress the archive to a folder of your choice. -There are other parameters you can pass to Build.exe. A brief list: +Usage -net - build using the .Net framework. -mono - build using Mono. -debug - build the debug version (e.g. 'build net debug'). +To use OpenTK, you need to reference OpenTK.dll from your project. The way you do this changes from IDE to IDE - refer to http://www.opentk.com/doc for specific instructions. -clean - delete intermediate object files and projects (reclaim some space, the binaries are not touched). -distclean - delete intermediate and final object files (reclaim all space used during compilation). +In any case, make sure the OpenTK.dll.config file is copied to the output directory along OpenTK.dll. This file is *required* for OpenTK to work on Linux and Mac OS X. -vs2005 (vs) - create project files for Visual Studio 2005. -monodev (md) - create project files for MonoDevelop. -sharpdev (sd) - as above, for SharpDevelop. -sharpdev2 (sd2) - as above, for SharpDevelop2. \ No newline at end of file + +Build instructions + +If you have Visual Studio 2005/2008 or MonoDevelop 2 (post-beta1), simply open OpenTK.sln in the Build/ folder. + +If you wish build from the commandline, install nant (http://nant.sourceforge.net) and execute Build.exe in the Build/ folder. + +The resulting binaries are placed in the Binaries/Release or Binaries/Debug folder. \ No newline at end of file diff --git a/Documentation/Changelog.txt b/Documentation/Changelog.txt index 7b2399dc..45d44b97 100644 --- a/Documentation/Changelog.txt +++ b/Documentation/Changelog.txt @@ -1,5 +1,42 @@ [Legend: complete('+') | WIP('*') | missing('-')] +--------------------- +OpenTK 0.9.3 -> 0.9.4 +--------------------- + ++ Bind + + Emits metadata for GL wrappers: entry point, OpenGL version and extension. + + Adds license information to the generated bindings. + ++ Build + + Promps for input when no arguments are specified. This means you can now build or create the OpenTK solution without opening a terminal. + ++ OpenTK + + GameWindow + + Added support for JoystickDevices. + + Input + + Added JoystickDevice and IJoystickDriver. + + Platform + * Implemented joystick support (Windows and Linux only at the moment). + + Graphics + + Added typesafe support for GL3 functions and enums: ARB_framebuffer_object, ARB_color_buffer_float, ARB_texture_rg, ARB_texture_ compression_rgtc, ARB_texture_float, EXT_texture_integer, EXT_texture_array + + Added support for the complete GL3 spec. + * Added support for creating GL3.0-level contexts (Windows only at the moment). + + Added metadata to the GL wrappers. + + Implemented GL.SupportsFunction(MethodInfo). + ++ Utilities + + Fixed GL1.1 fallback when GL.BlendColor is not supported. + ++ Examples + + New Extensions viewer that displays the new GL metadata (needs .Net or Mono 2.4+ for full compatibility, but will run on older Mono versions). + + Moved extensions viewer to the Tests category. + ++ General + + Set mime-type and eol-style properties to the .spec and .tm files. + + + --------------------- OpenTK 0.9.2 -> 0.9.3 --------------------- diff --git a/Documentation/Release.txt b/Documentation/Release.txt index 1e1641c7..2bccb624 100644 --- a/Documentation/Release.txt +++ b/Documentation/Release.txt @@ -1,33 +1,21 @@ -The Open Toolkit 0.9.3 Beta Release notes +The Open Toolkit 0.9.4 Beta Release notes -This release introduces Mac OS X support, improves the MouseDevice and -GameWindow APIs and fixes several occurences of bitrot in the codebase. +[ Overview] -Work will now focus on joystick and GL3.0 support. +This release adds Joystick support for Windows and Linux, introduces GL3 +functions and tokens and adds support for creating GL3 contexts on Windows. + +Some minor TextPrinter bugs have also been fixed. Please report any issues you may encounter at http://www.opentk.com. -API changes +[API changes] -The MouseDevice.ButtonDown and .ButtonUp events have changed signatures to better -conform to the BCL conventions. This is a breaking change. Please change your relevant -event handler signatures from: +No source-level breaking changes were introduced in OpenTK 0.9.4. +Binary-level compatibility is not preserved in beta releases. -void ButtonHandler(MouseDevice sender, MouseButton button) -{ -} - -to: - -void ButtonHandler(object sender, MouseButtonEventArgs e) -{ -} - -The MouseDevice.XDelta, .YDelta and .WheelDelta properties have been deprecated and -will be removed at a later version. Please use the Move and WheelChanged events -instead, or track mouse deltas manually. - -GameWindow.ExitAsync() is no longer available. Please use GameWindow.Exit(), -instead. \ No newline at end of file +GL3 support may expose your applications to driver bugs. A future +release will make it possible to choose between GL2- and GL3- +compatible contexts. \ No newline at end of file diff --git a/Documentation/Todo.txt b/Documentation/Todo.txt index 38614b65..1e70c5ab 100644 --- a/Documentation/Todo.txt +++ b/Documentation/Todo.txt @@ -1,52 +1,50 @@ -Generic Todos: -+ Correctly implement disposable pattern in all relevant classes (WIP as of 0.3.8). -+ Investigate startup lag. -+ Investigate call performance (+-5%) (AMD Venice 3200+ @2250MHz, Vista Business x64, .Net 2.0 x64 optimized build) - + Dummy managed call: - + Inline function: 100000000 calls/second. - + Function with try: 74500000 calls/second. <--- With try { } finally { } block - - Delegates loaded with reflection: - + GL.Vertex2f: 21878992 calls/second. (wrapper->delegate->import->unmanaged) - + GL.Vertex2fv: 23237133 calls/second. <--- 'fixed' statement. - + GL.ARB.ActiveTexture: 20133679 calls/second. (wrapper->delegate->unmanaged) - * GL.ColorPointer: 2870254 calls/second. <--- GCHandle.Alloc and Free - + Delegates loaded with constructors: - + GL.Vertex2f: 22396040 calls/second. - + GL.Vertex2fv: 22448539 calls/second. <--- fixed statement - + GL.ARB.ActiveTexture: 19920181 calls/second. - * GL.ColorPointer: 2340392 calls/second. <--- GCHandle.Alloc and Free - * GL.Vertex2fv: 2260000 calls/second. <--- GCHandle.Alloc and Free - + Direct DllImport (import->unmanaged) - + glVertex2f_1: 10445125 calls/second. <--- Unmanaged Code Security active - + glVertex2f_2: 24684893 calls/second. <--- Unmanaged Code Security suppressed - + glVertex2fv: 25896611 calls/second. <--- Unmanaged Code Security suppressed +[General] ++ Split OpenTK.Utilities 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. + +[OpenTK.Graphics.GL] ++ Improve performance for functions that return StringBuilders. ++ Inline XML documentation. + +[OpenTK.Graphics.GraphicsContext] ++ Make it possible to choose between GL2 and GL3 contexts. ++ FSAA support (very simple, now that GL3 support has been added.) + +[OpenTK.GLControl] ++ Improve the designer interface. + +[OpenTK.Input] ++ Implement joystick support on Mac OS X. ++ Implement GameWindow-independent input drivers. ++ Implement support for multiple mice and keyboards. + +[Examples] ++ Add GL3 examples. ++ Add more comprehensive Graphics and Audio tutorials. + +[OpenTK.Compute] ++ Begin the implementation. +[Call performance] -Bind: -* Implement Glx bindings. - - -OpenTK.Graphics todos: -* Improve performance for functions that return StringBuilders. -* Improve performance for functions that use GCHandles. -* Inline XML documentation. - - -OpenTK.Platform: -* GLContext class: - + FSAA support. -* GLControl class: - + Improve the designer interface. - - -OpenTK.Input todos: -+ Implement Joystick input. - - -Examples: -+ Add more Tutorials and WinForms examples. - - -OpenTK.Audio todos: -+ Ogg loader. \ No newline at end of file +AMD Venice 3200+ @2250MHz, Vista Business x64, .Net 2.0 x64 optimized build (+-5%): ++ Dummy managed call: + + Inline function: 100000000 calls/second. + + Function with try: 74500000 calls/second. <--- With try { } finally { } block ++ Delegates loaded with reflection: + + GL.Vertex2f: 21878992 calls/second. (wrapper->delegate->import->unmanaged) + + GL.Vertex2fv: 23237133 calls/second. <--- 'fixed' statement. + + GL.ARB.ActiveTexture: 20133679 calls/second. (wrapper->delegate->unmanaged) + * GL.ColorPointer: 2870254 calls/second. <--- GCHandle.Alloc and Free ++ Delegates loaded with constructors: + + GL.Vertex2f: 22396040 calls/second. + + GL.Vertex2fv: 22448539 calls/second. <--- fixed statement + + GL.ARB.ActiveTexture: 19920181 calls/second. + * GL.ColorPointer: 2340392 calls/second. <--- GCHandle.Alloc and Free + * GL.Vertex2fv: 2260000 calls/second. <--- GCHandle.Alloc and Free ++ Direct DllImport (import->unmanaged) + + glVertex2f_1: 10445125 calls/second. <--- Unmanaged Code Security active + + glVertex2f_2: 24684893 calls/second. <--- Unmanaged Code Security suppressed + + glVertex2fv: 25896611 calls/second. <--- Unmanaged Code Security suppressed diff --git a/Source/Bind/Properties/AssemblyInfo.cs b/Source/Bind/Properties/AssemblyInfo.cs index f91ec16b..2ae658c8 100644 --- a/Source/Bind/Properties/AssemblyInfo.cs +++ b/Source/Bind/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.9.9.4")] -[assembly: AssemblyFileVersion("0.9.9.4")] +[assembly: AssemblyVersion("0.9.9.5")] +[assembly: AssemblyFileVersion("0.9.9.5")] diff --git a/Source/Build/Properties/AssemblyInfo.cs b/Source/Build/Properties/AssemblyInfo.cs index 4fdbdc38..6ac76dbf 100644 --- a/Source/Build/Properties/AssemblyInfo.cs +++ b/Source/Build/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.9.1.0")] -[assembly: AssemblyFileVersion("0.9.1.0")] +[assembly: AssemblyVersion("0.9.4.0")] +[assembly: AssemblyFileVersion("0.9.4.0")] diff --git a/Source/Examples/Properties/AssemblyInfo.cs b/Source/Examples/Properties/AssemblyInfo.cs index fb7b59da..09a2e28b 100644 --- a/Source/Examples/Properties/AssemblyInfo.cs +++ b/Source/Examples/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.9.3.0")] -[assembly: AssemblyFileVersion("0.9.3.0")] +[assembly: AssemblyVersion("0.9.4.0")] +[assembly: AssemblyFileVersion("0.9.4.0")] diff --git a/Source/OpenTK/Properties/AssemblyInfo.cs b/Source/OpenTK/Properties/AssemblyInfo.cs index be1be336..da57809b 100644 --- a/Source/OpenTK/Properties/AssemblyInfo.cs +++ b/Source/OpenTK/Properties/AssemblyInfo.cs @@ -31,5 +31,5 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("0.9.3.0")] -[assembly: AssemblyFileVersion("0.9.3.0")] +[assembly: AssemblyVersion("0.9.4.0")] +[assembly: AssemblyFileVersion("0.9.4.0")] diff --git a/Source/Utilities/Properties/AssemblyInfo.cs b/Source/Utilities/Properties/AssemblyInfo.cs index 176ea173..e5282a7c 100644 --- a/Source/Utilities/Properties/AssemblyInfo.cs +++ b/Source/Utilities/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("0.9.3.0")] -[assembly: AssemblyFileVersion("0.9.3.0")] +[assembly: AssemblyVersion("0.9.4.0")] +[assembly: AssemblyFileVersion("0.9.4.0")]