Opentk/Documentation/Changelog.txt
2010-10-02 18:52:34 +00:00

1987 lines
95 KiB
Text

------------------------------
OpenTK 1.0 beta-3 -> 1.0 rc1
------------------------------
2010-03-24 the_fiddler
* Build.exe, Source/Build/Resources/DoxyFile.txt: Modified doxygen
script to ignore .svn directories.
* Source/Build/Build.cs: Improved documentation and added lib
target (builds project files directly).
* Documentation/Manual.pdf: Added manual to source control. This
file is a pdf copy of http://www.opentk.com/book/export/html/111,
converted to pdf format manually (it is not part of the regular
build process).
* Build.exe, Source/Build/Build.cs: Print total build time.
* Source/OpenTK/Platform/X11/X11GLNative.cs: Set initial values for
window bounds and client rectangle to ensure the various
properties return correct values inside the constructor and Load
event. Fixes issue [#1649]: "WindowBorder.Fixed causes 1x1 sized
window on Linux".
* ., Documentation: Update svn:ignore to ignore documentation
source and Visual Studio solution upgrade files.
* Source/Bind/Specifications/GL2/enumext.spec,
Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Added
EXT_texture_compression_s3tc tokens to PixelInternalFormat.
Previously, only the srgb s3tc tokens were available there, now
we have both srgb and rgb tokens.
* Source/Compatibility, Source/Examples, Source/GLControl,
Source/OpenTK: Added pidb files to svn:ignore.
* Build.exe: Updated Build.exe to the latest version that includes
nsis and all targets.
* Installers/Nsis/opentk.nsi: Enabled all languages and add source
code and documentation to the generated installer.
* Source/Build/Build.cs, Source/Build/BuildNsis.cs,
Source/Build/BuildProject.cs,
Source/Build/Resources/OpenTK.Prebuild.xml: * Added "nsis" build
target. * Added "all" build target, that creates solutions,
builds them, creates documentation and runs the nsis target
automatically. * Added support for building the generated
solutions through Build.exe (using Microsoft BuildEngine). This
is necessary for the "all" target. * Patch Prebuild output to fix
csproj paths in the generated solutions.
* Source/OpenTK/GameWindow.cs: Disabled hack for modal event loop
when click-dragging on windows. Threaded rendering is now
supported and provides a superior solution.
* Source/OpenTK/Platform/X11/API.cs: Threaded X should be
initialized both in debug and release modes.
* Source/Build/Properties/Resources.Designer.cs,
Source/Build/Properties/Resources.resx,
Source/Compatibility/Properties/Resources.Designer.cs,
Source/Compatibility/Properties/Resources.resx,
Source/Examples/Properties/Resources.Designer.cs,
Source/Examples/Properties/Resources.resx: Use forward slashes in
resource paths in order to maintain compatibility with xbuild
2.6. See http://www.opentk.com/node/1551
2010-03-23 the_fiddler
* Build.exe, Installers, Installers/Nsis,
Installers/Nsis/opentk.nsi, Source/Build/Build.cs,
Source/Build/BuildNsis.cs,
Source/Build/Properties/AssemblyInfo.cs,
Source/Compatibility/Properties/AssemblyInfo.cs,
Source/Examples/Properties/AssemblyInfo.cs,
Source/GLControl/Properties/AssemblyInfo.cs,
Source/OpenTK/Properties/AssemblyInfo.cs: * Added Nsis installer
script. * Added support for Nsis installer generation in
OpenTK.Build. * Updated project titles. * Bumped version numbers
for 1.0-rc1 release.
* Source/OpenTK/Platform/Windows/WinGLContext.cs: Print
success/failure of wglShareLists. In case of failure, print error
code to simplify debugging.
2010-03-12 the_fiddler
* Source/OpenTK/Graphics/GraphicsContext.cs,
Source/OpenTK/Graphics/IGraphicsContext.cs,
Source/OpenTK/Platform/Dummy/DummyGLContext.cs,
Source/OpenTK/Platform/MacOS/AglContext.cs,
Source/OpenTK/Platform/Windows/WinGLContext.cs,
Source/OpenTK/Platform/X11/X11GLContext.cs: Make LoadAll() method
available to IGraphicsContext. Avoids the need for ugly casts of
GraphicsContext to IGraphicsContextInternal when loading entry
points (for example when trying to use an external, dummy
context).
* Source/OpenTK/Platform/X11/API.cs: XCloseDisplay causes crash in
libGL. Removed as a temporary workaround while investigating the
issue.
* Source/OpenTK/Platform/X11/X11DisplayDevice.cs,
Source/OpenTK/Platform/X11/X11Factory.cs,
Source/OpenTK/Platform/X11/X11XrandrDisplayDevice.cs: * Do not
blow up when XRandR extension is not available. Fixes issue
[#1331]: "XRandR does not work with Nvidia dynamic TwinView
enabled". * Renamed X11XrandrDisplayDevice to X11DisplayDevice as
it should provide more code-paths than only XRandR.
2010-03-11 the_fiddler
* Source/OpenTK/Platform/X11/X11GLNative.cs: * Added support for
reading the actual window borders (WM decoration) through
_NET_FRAME_EXTENTS. Updated Bounds property to use the actual
border size. * Refactored parts of the event loop into separate
functions for improved code clarity. * Updates the window
location or size now immediately process pending events. Fixes
issue [#1605]: "LINUX X, Y, Width, Height not being updated."
* Source/OpenTK/Platform/X11/Functions.cs: XMoveWindow was
incorrectly p/invoking XResizeWindow instead of XMoveWindow.
Fixes issue [#1599]: GameWindow.X or Y don't work correctly on
Linux.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: In the current
implementation, ClientRectangle origin always starts at (0,0).
Location is used for Bounds (the outer rectangle) and was not
used correctly here.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: * Raise only a
single Resize event when changing WindowBorder or WindowState.
Fixes issue [#1461]: "OnResize called multiple times when
changing WindowState." * Refactored WindowBorder and WindowState
parts into new private methods for increased clarity. *
* Source/Examples/OpenTK/GameWindow/ThreadedRendering.cs: Serialize
viewport updates between main and rendering thread to avoid race
conditions.
* Source/OpenTK/Platform/Windows/API.cs: Hide internal members from
doxygen documentation. Fixes issue [#1617]: "Hide internal /
private members for the function reference".
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Use Guid for class
name instead of trying to create our own unique name. Fixes issue
[#1622]: "WinGLNative's window class registration strategy does
not take AppDomains into account" (thanks kring789!)
---------------------------------
OpenTK 1.0 beta-2 -> 1.0 beta-3
---------------------------------
2010-03-09 the_fiddler
* Source/Compatibility/Properties/AssemblyInfo.cs,
Source/Examples/Properties/AssemblyInfo.cs,
Source/GLControl/Properties/AssemblyInfo.cs,
Source/OpenTK/Properties/AssemblyInfo.cs: Updated version numbers
for 1.0-beta3 release.
2010-03-05 the_fiddler
* Build.exe: Added error messages for missing doxygen or latex
installations.
* Source/Build/Build.cs: Added error messages for missing doxygen
or latex installations.
* Source/OpenTK/Platform/X11/Functions.cs: Removed unused code.
* Source/OpenTK/Platform/X11/API.cs,
Source/OpenTK/Platform/X11/X11GLContext.cs,
Source/OpenTK/Platform/X11/X11GLNative.cs,
Source/OpenTK/Platform/X11/X11GraphicsMode.cs: Ensure that all X
function calls are protected by XLockDisplay/XUnlockDisplay.
Fixed nasty deadlock bug due to (incorrectly) nested XLockDisplay
calls. Removed XLockDisplay from methods that do not use a
display connection.
* Source/OpenTK/GameWindow.cs: Do not access VSync property without
checking for a current context (avoids
GraphicsContextMissingException when the user moves the context
to its own rendering thread.)
* Source/Examples/OpenGL/1.5/VertexBufferObject.cs,
Source/Examples/OpenTK/GameWindow/ThreadedRendering.cs,
Source/Examples/Shapes/VertexPositionColor.cs: Added example for
threaded rendering (where OpenGL rendering is performed on its
own thread.) Moved VertexPositionColor struct to its own file, to
simplify sharing between samples.
* Source/Examples/Main.cs: Added missing license information.
* Source/OpenTK/Platform/X11/Bindings/Glx.cs: * Glx.cs: Do not use
ContextHandle directly as a p/invoke parameter (not portable).
* Source/OpenTK/Platform/Dummy/DummyGLContext.cs,
Source/OpenTK/Platform/MacOS/CarbonWindowInfo.cs,
Source/OpenTK/Platform/Windows/API.cs,
Source/OpenTK/Platform/Windows/WinGLContext.cs,
Source/OpenTK/Platform/Windows/WinGLNative.cs,
Source/OpenTK/Platform/Windows/WinRawMouse.cs,
Source/OpenTK/Platform/Windows/WinWindowInfo.cs: Marked internal
documentation as such, to avoid littering doxygen output.
* Source/Examples/OpenTK/Test/GameWindowStates.cs: * Minor code
cleanup and reorganization. * Added support for changing the
window size via + and - keys. * Moved key handling to the KeyDown
event. The user can now press and hold a key to observe how the
GameWindow reacts.
* Source/OpenTK/Platform/X11/X11GLNative.cs: * Protect all xlib
calls by XLockDisplay/XUnlockDisplay. * Remove
SubstructureNotifyMask, as we are not creating any child windows.
* Return ClientSize instead of Bounds.Size and Location instead
of Bounds.Location for the Size and Location properties
respectively. This aligns the implementation of these properties
on win32 and x11.
2010-03-02 the_fiddler
* Source/Compatibility/Properties/AssemblyInfo.cs,
Source/Examples/Properties/AssemblyInfo.cs,
Source/GLControl/Properties/AssemblyInfo.cs,
Source/OpenTK/Properties/AssemblyInfo.cs: Bumped version numbers
for release.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: X and Y properties
now correctly get and set the window location on screen.
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Allow arrow keys
to move the window around the screen.
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Added overloads for
Vector[234]d and Matrix4d for a large number of helper functions.
Fixes issue [#1596]: "Vector3d and Vector2d support in Functions
like GL.Vertex3(), GL.Color3(), GL.TexCoord2() etc.".
* Source/OpenTK/GameWindow.cs: Replaced tabs with spaces.
GameWindow no longer raises a Resize event before Load. This was
a hack that was introduced to work around some design limitations
in the early days of the library. These limitations no longer
hold (INativeWindow size is now set independently of the Resize
event), so the hack is no longer necessary. The To avoid breaking
existing applications, a Resize event is still raised
unconditionally after Load is complete.
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Display
information on mouse location and window position/size.
* Source/OpenTK/NativeWindow.cs: Use retainEvents parameter
according to the documentation (parameter was left unused
before).
* Source/OpenTK/Platform/Windows/API.cs,
Source/OpenTK/Platform/Windows/WinGLNative.cs: Ensure window is
brought to the top of the z-order when it becomes visible for the
first time (typically when GameWindow.Run() is called.) Ensure
window bounds are correctly restored after leaving fullscreen
mode, by restoring window border before setting the bounds.
2010-02-06 the_fiddler
* Source/Build/Build.cs: * Build.cs: Corrected filename casing for
default doxygen target (should be Doxyfile, not DoxyFile).
2010-02-04 the_fiddler
* Build.exe: Updated with documentation support.
* Source/Build/Build.cs: Improved output messages when generating
documentation.
* Source/Build/Build.cs, Source/Build/Resources/DoxyFile.txt: Do
not report doxygen warnings. Run pdflatex and makeindex in quiet
mode.
* Source/Build/Build.cs,
Source/Build/Properties/Resources.Designer.cs,
Source/Build/Properties/Resources.resx,
Source/Build/Resources/DoxyFile.txt: Added support for 'doc'
target, which generates html and pdf documentation (requires
doxygen and latex). Fixed implementation of DeleteFiles and
DeleteDirectories.
* Documentation/Source: Removed empty source documentation
directory from source control. This directory is created as
necessary when generating documentation.
2010-02-03 the_fiddler
* Source/Bind/Specifications/GL2/enumext.spec,
Source/Bind/Specifications/GL2/gloverrides.xml,
Source/OpenTK/Graphics/OpenGL/GL.cs,
Source/OpenTK/Graphics/OpenGL/GLCore.cs,
Source/OpenTK/Graphics/OpenGL/GLDelegates.cs,
Source/OpenTK/Graphics/OpenGL/GLEnums.cs,
Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Added explicit
ActiveUniformParameter enum for GetActiveUniforms function. Fixes
issue [#1443]: "GetActiveUniforms parameter name".
* Source/Bind/Specifications/GL2/enumext.spec,
Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Added missing
TEXTURE_LOD_BIAS token to TextureParameterName. Fixes issue
[#1531]: "TextureParameterName enum missing TEXTURE_LOD_BIAS
element".
* Source/Bind/Specifications/GL2/enumext.spec,
Source/Bind/Specifications/GL2/gloverrides.xml,
Source/OpenTK/Graphics/OpenGL/GL.cs,
Source/OpenTK/Graphics/OpenGL/GLCore.cs,
Source/OpenTK/Graphics/OpenGL/GLDelegates.cs,
Source/OpenTK/Graphics/OpenGL/GLEnums.cs,
Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Added specific
ArrayCap enum for Enable/DisableClientState. Fixes issue [#1538]:
"GLCore.cs: EnableClientState()".
* Source/OpenTK/Graphics/Color4.cs: Color4.ToArgb() should scale
components from clamped floats [0.0, 1.0] to unsigned bytes [0,
255]. Fixes issue [#1504]: "Color4.ToArgb returns wrong results".
* Source/OpenTK/Math/Vector2d.cs, Source/OpenTK/Math/Vector3d.cs,
Source/OpenTK/Math/Vector4d.cs: Converted single-precision
constants to double-precision in double-precision calculations.
* Source/OpenTK/Math/Vector2d.cs, Source/OpenTK/Math/Vector3d.cs,
Source/OpenTK/Math/Vector4d.cs: Do not cast to float when
calculating double-precision vector Length. Fixes issue [#1542]:
"Vector3d.Length casts result to float".
2010-01-28 kanato
* Source/OpenTK/Platform/MacOS/AglContext.cs,
Source/OpenTK/Platform/MacOS/CarbonGLNative.cs: Fix reported
Width, Height properties for full screen window.
* Source/OpenTK/GameWindow.cs: Correct NullReferenceException when
initializing GameWindow with GameWindowFlags.FullScreen.
2010-01-21 the_fiddler
* Source/OpenTK/Graphics/GraphicsContext.cs: Use the correct
GetCurrentContext() implementation depending on whether we are
using native or embedded (EGL) contexts.
2010-01-20 the_fiddler
* Source/OpenTK/Platform/Egl/EglWinPlatformFactory.cs,
Source/OpenTK/Platform/Egl/EglX11PlatformFactory.cs: Use
Egl.GetCurrentContext() instead of Wgl/Glx.GetCurrentContext() in
EglContext.
2010-01-11 kanato
* Source/OpenTK/Platform/MacOS/CarbonGLNative.cs: Backport
Width/Height fix (rev. 2577) for MacOS implementation.
2009-12-27 the_fiddler
* Source/OpenTK/Platform/Egl/EglContext.cs: Use the graphics mode
that was selected by EglGraphicsMode.SelectGraphicsMode() instead
of the native, platform-specific one. Fixes issue [#1483]: "ES20
application problem, Graphicmode with stencil buffer?"
* Source/OpenTK/Platform/Egl/EglWinPlatformFactory.cs: Try to
retrieve the EGL display for the current DC before falling back
to the default display.
* Source/OpenTK/Platform/Egl/Egl.cs,
Source/OpenTK/Platform/Egl/EglContext.cs,
Source/OpenTK/Platform/Egl/EglGraphicsMode.cs,
Source/OpenTK/Platform/Egl/EglWinPlatformFactory.cs,
Source/OpenTK/Platform/Egl/EglWindowInfo.cs,
Source/OpenTK/Platform/Egl/EglX11PlatformFactory.cs: Replaced
struct wrappers over IntPtr by plain IntPtr types. This should
ensure correct p/invoke behavior regardless of the OS/CPU.
* Source/OpenTK/GameWindow.cs: Avoid enabling VSync repeatedly,
when VSyncMode is Adaptive and TargetRenderPeriod is 0. Should
remove jitter observed on specific configurations. Solves issue
[#1482]: "OnRenderFrame elapsed time".
* Source/Examples/OpenGLES/2.0/SimpleWindow20.cs: Renamed, since
example doesn't use immediate mode. Removed unused code.
2009-12-26 the_fiddler
* Source/OpenTK/Audio/AudioContext.cs,
Source/OpenTK/Platform/X11/Bindings/Glx.cs,
Source/OpenTK/Platform/X11/X11GLContext.cs,
Source/OpenTK/Platform/X11/X11GLNative.cs,
Source/OpenTK/Platform/X11/X11Input.cs,
Source/OpenTK/Platform/X11/X11WindowInfo.cs: Marked as internal
so they don't appear in doxygen documentation.
2009-12-22 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Avoid NRE when
setting the foreground window in WindowMessage.CREATE. Fixes
issue [#1467]: "Failure to initialize on Windows."
* Source/OpenTK/Input/MouseDevice.cs: Corrected rounding of
negative delta values. Fixes issue [#1446]:
"MouseWheelEventArgs.Delta".
2009-12-18 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Calculate the
correct client rectangle when modifying width or height. Fixes
issue [#1457]: "GameWindow Width and Height properties are
inconsistent".
2009-12-15 the_fiddler
* Source/OpenTK/OpenTK.dll.config: Added missing OpenCL dllmap for
Mac OS X (thanks chrisse27).
2009-12-14 the_fiddler
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: * GLHelper.cs: Fixed
StackOverflowException in TexCoordPointer overload. (Issue
[#1444]: "TexCoordPointer creates StackOverflow").
2009-12-09 the_fiddler
* Source/Examples/OpenGLES/1.1/SimpleWindow.cs,
Source/Examples/OpenGLES/2.0/SimpleWindow20.cs: ClearColor takes
a clamped float in the range 0.0-1.0, instead of a byte argument.
* Source/OpenTK/Platform/EmbeddedGraphicsContext.cs: Do not attempt
to load ES10 and ES11 entry points, as these are disabled in
1.0.0.
2009-12-06 the_fiddler
* Source/OpenTK/Audio/OpenAL/AL/AL.cs: Clarified documentation for
alGetListener3f parameters.
* Source/Bind/Specifications/GL2/enumext.spec,
Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Added missing 3.1 core
PRIMITIVE_RESTART token. Fixes issue [#1422]: "Missing
EnableCap.PrimitiveRestart".
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Removed IME class
style. Fixes the alt-tab order issue, where NativeWindows would
always appear last in the tab order (issue [#1244]: "Alt+Tab
weirdness"). Removed VRedraw and HRedraw class styles (not
necessary, since we are not relying on WM_PAINT messages).
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Removed unused
code.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Ensure window is
activated and focused when created.
* Source/OpenTK/GameWindow.cs,
Source/OpenTK/Platform/X11/X11GLContext.cs,
Source/OpenTK/Platform/X11/X11GLNative.cs: Do not call Dispose()
automatically on GameWindow.Close(). Ensure that Unload event is
raised before window destruction, Ensure that Render and
UpdateFrame events are not called once the shutdown sequence is
initiated.
* Source/OpenTK/Platform/Windows/API.cs,
Source/OpenTK/Platform/Windows/WinGLNative.cs: *
OpenTK/Platform/Windows/API.cs: added SetForegroundWindow
dllimport.
* OpenTK/Platform/Windows/WinGLNative.cs: Move window to the
foreground before entering fullscreen mode.
2009-11-25 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Correctly reset
Visible state when changing WindowBorder. Fixes issue [#1418]:
"[OpenTK] Invisible window when changing from Fullscreen to
Normal WIndowState on Windows 7".
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Fixed build
breakage introduced in r2551.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Removed stale
code.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Use
TrackMouseEvent function for generating MouseEnter/MouseLeave
events. Resolves issues associated with SetCapture and windows
focus (bug [#1419]: "[OpenTK] NativeWindow reported as focused
whenever mouse enters its area, even without clicking (win32)").
* Source/OpenTK/Platform/X11/X11GLNative.cs: * X11GLNative.cs: Only
raise WindowStateChanged when the relevant PropertyNotify event
arrives. Fixes issue [#966]: "[GameWindow] Changing WindowBorder
from Hidden to Normal/Fixed does not update the relevant property
on KDE4.2".
* Source/Examples/OpenGL/1.1/VertexArrays.cs,
Source/Examples/OpenGL/1.1/VertexLighting.cs,
Source/Examples/OpenGL/GLSL/SimpleGLSL.cs,
Source/Examples/OpenTK/GameWindow/FullscreenAntialias.cs,
Source/Examples/OpenTK/GameWindow/SimpleWindow.cs,
Source/Examples/OpenTK/Test/Multithreading.cs,
Source/Examples/Utilities.cs: Normalized keyboard handling to use
F11 for fullscreen/normal switches.
2009-11-23 kanato
* Source/OpenTK/Platform/MacOS/AglContext.cs: MacOS: Fix context
sharing.
* Source/OpenTK/GameWindow.cs, Source/OpenTK/NativeWindow.cs,
Source/OpenTK/Platform/MacOS/AglContext.cs,
Source/OpenTK/Platform/MacOS/CarbonGLNative.cs,
Source/OpenTK/Platform/MacOS/CarbonWindowInfo.cs: MacOS:
Implement CarbonWindowInfo hack for going fullscreen.
---------------------------------
OpenTK 1.0 beta-1 -> 1.0 beta-2
---------------------------------
2009-11-17 the_fiddler
* Removed unused code.
* Fixed OnUpdateFrame timing calculation (the previous
implementation could overshoot the target by up to 50%).
Refactored Update-/RenderFrame dispatching into a separate
method.
* Updated release notes for 1.0 beta-2 release.
* Bumped version numbers for 1.0 beta-2 release.
* Added VertexAttribPointer(..., int) and DrawElements(..., int)
overloads.
* Fixed NormalPointer and FogCoordPointer parameters. Added missing
TexCoordPointer(..., int) overload. Added DrawElements(..., int)
overload. Renamed the last parameter from pointer to offset, to
clarify its intent. (Fixes isse [#1386]: "Add overloads for
TexCoordPointer and NormalPointer".)
* Completely disabled CL10, ES10 and ES11 wrappers. They won't be
in the 1.0 release, we can reduce download size a bit.
* Type, Parameter, ParameterCollection and Function classes now
implement IComparable directly (rather than casting to strings
and comparing those). Modified comparison order to place pointer
overloads after reference or array overloads. Fixes issue
[#1098]: "[Bind] Work around VS bug by ensuring pointer
parameters are generated last".
2009-11-16 the_fiddler
* Added strongly-typed tokens for GetActiveUniformBlock, which was
introduced in OpenGL 3.1. Fixes issue [#1216]: "[GL]
GetActiveUniformBlock* methods take ArbUniformBufferObject
parameters".
* Added new OpenGL 3.1 tokens for ARB_texture_rectangle,
ARB_shader_objects and EXT_gpu_shader4. Fixes issue [#1355]:
"TextureRectangle tokens for ActiveUniformType".
* VertexAttribIPointer should take the integer subset
(VertexAttribIPointerType) of VertexAttribPointerType. Fixes
issue [#1166]: "VertexAttribIPointer pointer type parameter".
* Removed invalid BGRA token from VertexAttribPointerType.
* Made unix kernel detection less strict. The program is now
allowed to run even the specific kernel name is unknown. Partly
fixes issue [#1382]: "OpenTK and other Unix OS".
* Added new OpenGL 3.x tokens to GenerateMipmap. Fixes issue
[#1162]: "GL.GenerateMipmap argument".
* Vector3(d).Cross: do not modify 'result' more than once to ensure
that Cross(ref a, ref b, out a) works correctly. Optimized
vector-quaternion transform. Fixes issue [#1373]: "[Math]
optimize Vector transform by Quaternion".
* Changed vector-quaternion transformations to use standard q * v *
q^-1 convention. Fixes issue [#1372]: "[Math] Vector
transformation by Quaternion follows non-standard quaternion math
convention".
* Added support for fractional mouse wheel values. Fixes issue
[#1279]: "Mouse wheel does not seem to work".
* Renamed "Entry" to "Unmanaged Name" to clarify its purpose.
* Make context current on loading thread and be more defensive when
retrieving unmanaged entry points. Resolves issue [#1378]:
"OpenGL Extensions test fails".
* Launch samples on a different thread than the launcher. Samples
may install their own message loops and some operating systems do
not behave correctly with multiple message loops on a single
thread.
* Preserve the sign of the mouse position. Fixes issue [#1376]:
"mouse position".
* Fixed InvalidCastException in keyboard logging delegates.
2009-11-15 kanato
* MacOS: Fix crash in CheckEnterLeaveEvents if using WinForms too.
* MacOS: Correct resizing behavior and correctly implement Bounds,
ClientRectangle, and ClientSize getters and setters.
* MacOS: Add proper icon support for the dock.
* MacOS: Implement Focused property and FocusChanged event.
* MacOS: Implement mouse enter / leave events.
2009-11-14 kanato
* MacOS: Clean up AglContext destruction code. Implement
INativeWindow.Close method.
* MacOS: Several minor fixes: * Implement MouseWheel event *
Implement KeyPress event * Fix generation of MouseMove events *
Fix right mouse button up event
* MacOS: Fix bug where application started from the command line
would not be in the foreground and not respond to keyboard
events.
2009-11-12 the_fiddler
* Do not hook ProcessExit event if an X server is not available.
Should fix issue [#1364]: 1.0 beta-1 throws
TypeInitializationException in OpenTK.Platform.X11.API when
running on windows. Cleaned up stale comments and code.
2009-11-11 the_fiddler
* * Vector4.cs: * Vector3.cs: * Vector2.cs: * Vector4d.cs: *
Vector3d.cs: * Vector2d.cs: Removed code using C# 3.0 features.
* * BlittableValueType.cs: Clarify how BlittableValueType<T>.Stride
works on non-blittable types.
* * Source/OpenTK/BlittableValueType.cs: Removed struct constraint.
Sometimes consumers of this class may not be able to use struct
generic constraints - the class is now usable in this case. *
Source/Examples/OpenTK/Test/BlittableValueTypes.cs: Test
BlittableValueType class using several different types.
------------------------------
OpenTK 0.9.9-3 -> 1.0 beta-1
------------------------------
2009-11-10 the_fiddler
* Added missing license information.
* Updated documentation for release.
* Disabled CL10, ES10 and ES11 bindings which were not finalized in
time for OpenTK 1.0.
* Updated documentation for release.
* Color4Serialization example now correctly prints its output
messages.
* Color4(byte, byte, byte, byte) constructor now correctly
normalizes values to the 0.0 - 1.0 range.
2009-11-09 the_fiddler
* Added keyfiles to ignore list.
* Fixed keyfile handling in Visual Studio.
* Updated ignore rules.
* Updated ignore rules.
* Branched for 1.0 release.
* Fixed a large number of recurring spelling mistakes in
documentation (patch by iRBiS). Fixes issue [#1341]: "Vector4
constructor describes w component as z component + other spelling
corrections".
* Fixed documentation which describes w components as z components
(patch by iRBiS).
* Updated ignore lists.
2009-11-09 kanato
* MacOS: Hack for AGL to have access to the display device
specified when a NativeWindow is created.
* MacOS: Detect display boundaries so created windows are placed in
the right spot.
* MacOS: Fix event from user clicking close box to properly report
that window doesn't exist anymore.
* Mac OS X Fix for GameWindow to call glContext.Update when resized
2009-11-08 the_fiddler
* Added System.Drawing reference back to QuickStart project (see
previous commit).
* Disabled OpenTK.Point, Size and Rectangle structures that were
meant to replace their System.Drawing implementations until the
correct course of action can be determined. This change is too
disruptive to existing applications, especially if they are also
using Windows.Forms (see discussion here:
http://www.opentk.com/node/1348).
* Don't display window by default, unless "Visible = true" is
called. Allows the creation of invisible windows for secondary
GraphicsContexts.
* Added a second terminating 0 to attribute list, trying to work
around issue [#1352]: "Occasional AccessViolationExceptions when
creating the GLControl".
2009-11-07 the_fiddler
* Added system-defined colors.
Added and improved constructors (more versatile).
Added ToArgb() method for improved System.Drawing.Color interop.
* Use SHOW command instead of SHOWNORMAL when making a window
visible, since SHOWNORMAL will un-maximize a fullscreen or
maximized window.
Do not force an invisible window to become visible when modifying
its state or borders.
* Always set the DisplayDevice.Bounds to a correct value. Fixes
issue [#1339]: "DisplayDevice.Bounds not set".
* Do not check for an X server if we detect Mac OS X. Should solve
issue [#1338]: "Running apps in Mac OSX start a application
called X11".
2009-11-06 the_fiddler
* Update the context when the native window is resized.
* MacOS may have an X server installed. Prefers the native
Carbon/Quartz platform driver over X in this case (same issue as
rev. 2465).
* Correctly set the primary device in the DisplayDevice
constructor.
* MacOS can have an X server installed. Modified the code so that
it prefers the native Carbon/Quartz platform driver over X in
this case.
* Fixed spelling of hertz and fps. Fixes issue [#1333]: "Spelling
of SI units in documentation and captions". Patch by iRBiS.
* Return proper CarbonWindowInfo instance instead of
DummyWindowInfo.
* * Rectangle.cs: Fixed ToString formatting code.
* * Platform/Windows/WinDisplayDevice.cs:
* Platform/MacOS/QuartzDisplayDeviceDriver.cs: Updated to use the
new
DisplayDevice constructors.
* Platform/X11/X11XrandrDisplayDevice.cs: Query Xinerama for the
exact
bounds of each display device, if available.
Use global X lock to protect from multithreaded access.
* * DisplayDevice.cs: Made DisplayDevice properties settable
internally (simplifies device detection code).
Bounds property is now independent of the default resolution.
* DisplayResolution.cs: Obsoleted the Bounds property, as this
becomes
invalid as soon as the resolution of any display device is
changed.
2009-11-05 the_fiddler
* * X11GLNative.cs: Convert from ASCII to the default encoding
before generating KeyPress events (allows support for simple
scripts that do not use composition.)
* * X11GLNative.cs: Implemented KeyPress event (no support for
input
methods yet).
* Functions.cs: Added XLookupString and XRefreshKeyboardMapping
methods for simple ANSI text input.
2009-11-04 the_fiddler
* Removed System.Drawing dependency from QuickStart.
* Added missing TitleChanged event.
* Removed unused code.
* Cleaned up deprecated methods.
* Cleaned up a large number of documentation issues.
* Updated deprecation message with specific instructions on how to
solve the issue.
* Added helper overloads for OpenTK.Point/Rectangle structures.
* Enabled System.Drawing.Point/Size/Rectangle replacements.
* Refactored timer installation/removal into their own methods.
* Added simpler constructor overload for external GraphicsContexts.
* Don't forget to load all bindings when constructing an external
context - this constructor was added for precisely this reason,
after all.
* Deprecated the LoadAll() method in favor of the new
GraphicsContext constructors.
* Added missing base.On* calls.
* Support external EGL contexts.
* Added missing documentation to GraphicsContext constructor.
* Renamed internal BindingsBase.LoadAll/Load methods to
LoadEntryPoints/LoadEntryPoint, in order to avoid name clashes
with the static GL.LoadAll() method.
Added GraphicsContext() constructor that takes an existing, valid
OpenGL context. This can be used for interop with third-party
toolkits which create the OpenGL context themselves.
* Set window title and icon.
* Doubled the size of particles and made them slightly faster.
* Cleaned up sample, added color and motion.
* Initialize threads before calling any other X methods.
* Removed unnecessary debugging messages from main loop.
* Added Toolkit.Init() method that can be used to configure the
underlying platform correctly when using OpenTK along with other
toolkits (e.g. OpenTK+GTK# on X, where GTK# does not initialize
threads).
* Default window style flags can be constants rather than static
readonly fields.
Throw an exception if we fail to register the window class, the
previous solution (check for "class already exists" error) was a
workaround for a threading issue that has been solved.
Set the small icon when registering the class.
* Now recognizes Resources folder for Examples project.
Added icon to Examples project.
* Added default icon to samples and the example browser.
* Added default application icon.
2009-11-03 the_fiddler
* Fixed ClassName and ModalLoopTimerId when constructing multiple
WinGLNative windows in parallel.
WinGLNative windows are now correctly focused when clicked on the
client area.
* Serialize context construction to avoid threading issues with
shared contexts.
* Avoid static caching of extension strings and improve
multithreading behavior - WGL extension checking is fast enough
that caching is not very useful.
* Added SyncRoot object to BindingsBase that can be used to protect
shared state in the various bindings.
* Fixed race condition in GraphicsMode.Default.
* No need to burn 100% CPU time just for a spinning cube!
(Especially important for the multithreading test, which opens
multiple such windows).
* Use new string(sbyte*) instead of Marshal.PtrToStringAnsi to
increase performance when calling GetString to retrieve the list
of available extensions.
* Implemented Tranform(Vector, Quaternion) overloads. Fixes issue
[#1028]: "[Math] Add vector transformation by quaternion".
* Deprecated Mult in favor of Multiply.
Modified operator * to use Multiply internally (reduces code
duplication).
* Fixed Vector3.Transform signature to return a Vector3, not a
Vector4. It was previously impossible to transform a Vector3
structure without intermediate conversions to Vector4.
* Modified Transform(ref Vector4, ref Matrix4, out Vector4)
overload to work correctly when the ref and out parameters point
to the same Vector4.
Modified Transform(Vector4, Matrix4): Vector4 to call the
reference overload internally. Faster and reduces code
duplication.
* Added missing TextureBuffer token to BufferTarget and
TextureTarget enums (promoted from ARB_texture_buffer_object).
Fixes issue [#1313]: "TextureBuffer target".
* Added type-safe parameters to FramebufferTexture (fixes issue
[#1303]: "[GL] fix FramebufferTexture parameters").
* Added multithreading test to verify GameWindow behavior with
multiple threads.
* * DocProcessor.cs: Remove any trailing newlines in XML docs.
Output
between Mono/Linux and .Net/Windows is now consistent.
2009-11-02 the_fiddler
* Use more aggressive xlib locking following the advice of the
multithreaded X manpages (needs work).
* Do not allow MakeCurrent() to change the display connection of
the context. This would result in an X error and the change
allows us to simplify shutdown/cleanup logic.
* * Matrix4d.cs: M44 should be 1.0 to conform with GL.Ortho().
Fixes issue [#1307]: "GL.Ortho behaves other than combination of
OpenTK.Matrix4d.CreateOrthographic and GL.MultMatrix".
* Qualify System.Drawing.Rectangle/Point/Size structs fully when
necessary, to avoid namespace clash with
OpenTK.Rectangle/Point/Size.
* Added experimental Icon and IconConverter implementations from
Mono.
Modified INativeWindow implementations to not qualify Icon class
fully, so we can change the implementation between System.Drawing
and OpenTK at will (using the EXPERIMENTAL #define).
* Improved interoperation with System.Drawing with new addition,
subtraction and implicit conversion operators, as well as
additional method overloads.
Only expose fields through public properties to allow for
parameter validation.
2009-11-01 the_fiddler
* Updated version numbers in preparation for release.
* Fixed an issue where "const unsigned [type] [pointer]" parameters
where not parsed correctly. Solves issue [#1300]: "[OpenCL]
Possible bug at CL.CreateProgramWithBinary".
* Added experimental OpenTK.Point/Size/Rectangle alternatives to
System.Drawing, to make OpenTK usable without referencing
System.Drawing (disabled by default, #define EXPERIMENTAL to
test). Modified a number of using directives and namespace
qualifiers to accommodate this change.
* Document that these APIs are incomplete.
2009-10-28 the_fiddler
* Merged es20 branch back into trunk.
* Initialize input vectors to random values.
Use smaller data blocks that can be verified visually.
Perform error checking when executing the kernel.
Wait for the command queue to finish before displaying the
results.
* Recognize and copy dds files as part of example resources.
* Renamed dds textures to not contain strange characters that
confuse Prebuild.
Added checks for extension support to SwizzledParallax sample.
* Return readonly IList<> instead of copying arrays of data.
2009-10-27 the_fiddler
* Track mouse enter/leave events.
* Implemented INativeWindow.MouseEnter/MouseLeave events on Win32
and X11.
* Generate UpdateFrame events even if TargetUpdateFrequency is 0.
According to the documentation, setting this value to 0 will
result in unconstrained UpdateFrame frequency. Fixes issue
[#1294]: "OnUpdateFrame function does not work with maximum
update rate".
2009-10-24 the_fiddler
* Do not qualify Stopwatch fully, to allow it to be overridden by
Minimal.cs if necessary.
* Provide dummy implementations for classes not available on the
iPhone.
* Plane.cs belongs to the 'old' structures.
* Merged Inertia's example and geometry branch,
2009-10-23 the_fiddler
* Fixed x86-specific ABI assumption (do not pass structure directly
when a pointer is expected). Patch by jonp.
* Added dllmap for OpenGL|ES on Mac OS X.
* Debug.WriteLine(object, string) does not work as intended (the
first parameter defines the category). Use Debug.Print instead.
* Fixed x86-specific ABI assumption (do not return structure
directly when a pointer is expected). Patch by jonp.
2009-10-22 the_fiddler
* Do not force control to create its handle in Resize event (the
designer places code that raises this event before the rest of
the events are hooked). Instead, suppress the event and raise it
once the handle is actually created.
2009-10-21 the_fiddler
* Set default class cursor to avoid invalid cursors when entering
the window.
* Added LoadCursor method.
Added CursorName enum (only default arrow cursor is defined for
now).
* Use StringBuilder.Capacity to specify the available buffer size
in OpenGL interop (StringBuilder.Length is invalid in this case).
Added workaround for Mono 1.9.1 issue, where StringBuilder return
truncated results when used in interop. Doubling
----------------------------
OpenTK 0.9.9-2b -> 0.9.9-3
----------------------------
2009-10-21 the_fiddler
* Documentation/Changelog.txt, Documentation/Release.txt, Source/Compatibility/Properties/AssemblyInfo.cs, Source/Examples/Properties/AssemblyInfo.cs, Source/GLControl/Properties/AssemblyInfo.cs: Bumped version numbers and updated documentation in preparation of 0.9.9-3 release.
* Source/Examples/OpenGL/1.1/DisplayLists.cs, Source/Examples/OpenGL/1.1/ImmediateMode.cs, Source/Examples/OpenGL/1.1/Textures.cs, Source/Examples/OpenGL/1.1/VertexArrays.cs, Source/Examples/OpenGL/1.1/VertexLighting.cs, Source/Examples/OpenGL/1.5/VertexBufferObject.cs, Source/Examples/OpenGL/3.0/HelloGL3.cs, Source/Examples/OpenGL/EXT/FramebufferObject.cs, Source/Examples/OpenGL/EXT/GeometryShader.cs, Source/Examples/OpenGL/EXT/GeometryShaderAdvanced.cs, Source/Examples/OpenGL/GLSL/JuliaSetFractal.cs, Source/Examples/OpenGL/GLSL/SimpleGLSL.cs, Source/Examples/OpenGLES/1.1/SimpleWindow.cs, Source/Examples/OpenGLES/2.0/SimpleWindow20.cs, Source/Examples/OpenTK/Fonts/FontRenderingAdvanced.cs, Source/Examples/OpenTK/GameWindow/FullscreenAntialias.cs, Source/Examples/OpenTK/GameWindow/SimpleWindow.cs, Source/Examples/OpenTK/Test/GameWindowStates.cs, Source/OpenTK/GameWindow.cs, Source/QuickStart/Game.cs: OnLoad/OnUnload should be protected, not public, to conform with the class
library design guidelines. This issue was supposed to be fixed in 0.9.9-2, but was apparently overlooked.
* Source/OpenTK/Platform/MacOS/AglContext.cs, Source/OpenTK/Platform/Windows/WinGLContext.cs, Source/OpenTK/Platform/X11/X11GLContext.cs: Avoid accessing OpenTK.Graphics.OpenGL from platform-specific code. Reduces coupling and code-duplication.
* Source/Examples/OpenGL/1.1/DisplayLists.cs, Source/Examples/OpenGL/1.1/Textures.cs, Source/Examples/OpenGL/EXT/FramebufferObject.cs, Source/Examples/OpenGL/EXT/GeometryShader.cs, Source/Examples/OpenGL/EXT/GeometryShaderAdvanced.cs, Source/Examples/OpenGL/GLSL/JuliaSetFractal.cs, Source/Examples/OpenGL/GLSL/SimpleGLSL.cs: Fixed compilation issue caused by OnUnload access modifier changed (public -> protected).
2009-10-20 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Trap WM_SYSCHAR to avoid generating system beeps on Alt+[Key] combinations.
2009-10-19 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs, Source/OpenTK/WindowBorder.cs, Source/OpenTK/WindowState.cs: Revert WindowBorder and WindowState value changes.
Use Nullable types to detect when WindowBorder and WindowState is not set.
* Source/OpenTK/Platform/X11/X11GLNative.cs: * X11GLNative.cs: Added more defensive checks for the existence of the window before issuing XDestroyWindow.
Do not allow multiple calls to XDestroyWindow once the shutdown sequence has been initialized. Fixes issue [#1190]: "GameWindow dispose on linux".
* Source/OpenTK/Platform/X11/X11GLNative.cs: * X11GLNative.cs: Correctly set all necessary ClientMessage fields
for XSendEvent call in Close() method.
* Source/OpenTK/Platform/X11/Functions.cs: * Functions.cs: Added helper function for XSendEvent, so that we
don't need to cast the EventMask to IntPtr.
* Source/OpenTK/Platform/X11/X11GLContext.cs: * X11GLContext.cs: Correctly set GraphicsMode in constructor (resolves issue [#1175]: "Graphics] GraphicsContext.GraphicsMode property returns null on Linux").
* Source/OpenTK/OpenTK.dll.config: Added dllmap for OpenCL on Linux.
* Source/Compatibility/OpenTK.Compatibility.dll.config: Added missing OpenTK.Compatibility.dll.config file. Fixes issue [#1176]: "[Compat] OpenTK.Compatibility is missing dll.config file".
* Source/Examples/OpenCL/VectorAdd.cs: * OpenCL/VectorAdd.cs: Use hCmdQueue instead of hContext and added
missing CL.EnqueueWriteBuffer calls (patch by mike vasiljevs, fixes
issue [#1233]: "OpenCL - AddVector.cs - example corrections").
Output calculation results.
* Source/GLControl/GLControl.cs, Source/GLControl/GLControlFactory.cs: * GLControlFactory.cs: More defensive checks for null GraphicsModes.
* GLControl.cs: More defensive checks for null GraphicsModes.
Set flags, context version and GraphicsMode before calling
InitializeComponents(), as the latter might cause the context to be
created (and we need this information before creating the context).
Fixes ArgumentNullException on Linux.
* Source/OpenTK/Platform/X11/X11GLNative.cs: * X11GLNative.cs: Implemented Icon property for WMs that do not
respect _NET_WM_ICON (e.g. Gnome/Metacity/Compiz).
* Source/OpenTK/Platform/X11/Functions.cs, Source/OpenTK/Platform/X11/Structs.cs: * Functions.cs: Added a number of missing methods relating to
XWMHints, images, pixmaps and root windows.
Implemented Create[Mask|Pixmap]FromImage methods.
* Structs.cs: Added ImageFormat enum.
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Route overloads through GL class instead of calling the Delegates directly. Ensures that automatic error checking will work as expected.
2009-10-18 the_fiddler
* Source/OpenTK/INativeWindow.cs, Source/OpenTK/NativeWindow.cs, Source/OpenTK/Platform/MacOS/CarbonGLNative.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: Implemented icon support.
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Indicate whether the window is focused or not.
* Source/OpenTK/WindowBorder.cs, Source/OpenTK/WindowState.cs: Treat 0 as a special value (necessary for internal purposes).
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Focused property now returns correct values. FocusedChanged event is now correctly raised.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Improved handling if WindowBorder changes when the window is WindowState is Maximized or Fullscreen. Maximized windows now correctly retain their maximized state, while fullscreen windows do not become non-fullscreen when their border is modified.
* Source/OpenTK/Platform/Windows/API.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: * API.cs: added MonitorFromWindow/MonitorFromPoint methods.
* WinGLNative.cs: fixed handling of WindowState.Maximized when WindowBorder is Hidden.
WindowStateChanged events are now correctly raised on all state changes.
2009-10-17 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Do not print window title to debug stream inside the set_Title property. Instead, log an error only when the method call fails. Fixes issue [#1239]: "Debug.Print in Title property".
* Source/Bind/ES/ESGenerator.cs, Source/Bind/Specifications/CL10/overrides.xml, Source/Bind/Specifications/CL10/signatures.xml, Source/Bind/Specifications/ES10/overrides.xml, Source/Bind/Specifications/ES11/overrides.xml, Source/Bind/Specifications/ES20/overrides.xml, Source/Bind/Specifications/GL2/gloverrides.xml, Source/Bind/Structures/Delegate.cs, Source/Bind/Structures/Enum.cs, Source/Bind/Structures/Type.cs, Source/OpenTK/Compute/CL10/CL.cs, Source/OpenTK/Compute/CL10/Enums.cs, Source/OpenTK/Graphics/ES10/ES.cs, Source/OpenTK/Graphics/ES10/Enums.cs, Source/OpenTK/Graphics/ES11/ES.cs, Source/OpenTK/Graphics/ES11/Enums.cs, Source/OpenTK/Graphics/ES20/ES.cs, Source/OpenTK/Graphics/ES20/Enums.cs, Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Added distinct /overrides/add and /overrides/replace elements.
Added check for the existence of override elements before trying to use them (avoids potential null reference exception).
Regenerated bindings using the latest version of the generator.
* Source/Bind/Structures/Function.cs, Source/OpenTK/Graphics/OpenGL/GL.cs: Fixed issue [#1240]: "Generic ref and out wrappers do not copy results to the reference parameter", by assigning the GCHandle.Target back to the reference parameter.
* Source/Bind/Specifications/ES20/overrides.xml, Source/OpenTK/Graphics/ES20/Core.cs, Source/OpenTK/Graphics/ES20/Delegates.cs, Source/OpenTK/Graphics/ES20/ES.cs: Added override for GetProgramInfoLog: infolog parameter should have a flow of 'out'.
2009-10-15 the_fiddler
* Source/GLControl/GLControl.cs: Added workaround for the "Resize event called before GraphicsContext is ready" issue.
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Fixed GetDouble implementation to return correct values (should call GetDouble not GetFloat!) Fixes issue [#1235]: "Matrix4d wrong value on GL.GetDouble".
* Source/GLControl/GLControl.cs: Clarified GrabScreenshot() ObsoleteAttribute message.
2009-10-14 the_fiddler
* Source/Bind/ES/ESGenerator.cs: Support adding new enum definitions through overrides.xml.
* Source/Bind/Structures/Constant.cs, Source/Bind/Structures/Enum.cs: Avoid translating names that do not need translation (i.e. are not in ALL_CAPS).
* Source/OpenTK/Platform/Windows/API.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: Added LoadIcon method.
Made SHFILEINFO non-public.
Modified WinGLNative.cs to use Icon.ExctractAssociatedIcon() to set the application icon (needs work).
* Source/OpenTK/Platform/Windows/API.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: Added support for setting the application (use SHGetFileInfo to retrieve the correct icon and set it when constructing a new window).
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Restore previous window size when leaving fullscreen mode.
* Source/OpenTK/Math/Matrix4.cs, Source/OpenTK/Math/Matrix4d.cs: Corrected documentation on the M42 property. Fixes issue [#1227]: "Matrix4.M42 documentation".
* Source/QuickStart/Game.cs: Fixed documentation on the event args for the Resize event.
Ensure that we call the base method when we override an On* method.
2009-10-13 the_fiddler
* Source/OpenTK/Math/Matrix4d.cs: Added missing CreatePerspectiveFieldOfView and CreatePerspectiveOffCenter methods (fixes issue [#1226]: "Matrix4d.CreatePerspectiveFieldOfView").
Replaced several instances of float values by double equivalents.
2009-10-12 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Workaround for modal loop blocking in ENTERMENULOOP event.
2009-10-09 the_fiddler
* Source/OpenTK/Compute/CL10/Enums.cs: * Enums.cs: Enums now use the inherit from the correct int or long type.
* Source/Bind/Specifications/CL10/signatures.xml: * signatures.xml: Fixed long enum types.
* Source/Converter/ESCLParser.cs: * ESCLParser.cs: Fixed long bitfield detection.
* Source/Bind/ES/ESGenerator.cs, Source/Bind/Structures/Enum.cs: * ES/ESGenerator.cs: Set enum Type property.
* Structures/Enum.cs: Added enum Type property.
Removed Enum(string) constructor in favor of C# 3.0 syntax (new Enum()
{ Name = ... }).
* Source/OpenTK/Compute/CL10/CL.cs: * CL.cs: Removed invalid documentation.
* Source/Bind/GL2/Generator.cs: * Generator.cs: Use Settings.FunctionPrefix when searching for
documentation (instead of hardcoded "gl" prefix).
* Source/Bind/CL/CLGenerator.cs, Source/Bind/Main.cs: * Main.cs:
* CL/CLGenerator.cs: Made CLGenerator inherit from ESGenerator. Reduces code duplication significantly.
* Source/Bind/Specifications/CL10/signatures.xml: * Specifications/CL10/signatures.xml: Updated specs with information on enum types (long or int).
* Source/Converter/ESCLParser.cs: * ESCLParser.cs: OpenCL bitfileds are defines as long, not int. Added 'type' attribute to enums, which can be 'long' or 'int'.
2009-10-07 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Post a close message instead of destroying the window outright, when the user calls the Close() method. Ensures that the user can stop the exit sequence through the IsClosing event.
* Source/OpenTK/GameWindow.cs: * GameWindow.cs: Improved implementation of GameWindow.Exit(). It should now be possible to cancel the exit through the IsClosing event.
* Source/OpenTK/GameWindow.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: Generate Update/ResizeFrame events whenever the window is moved or resized. Partially fix for issue [#1218]: "[NativeWindow] Avoid modal loop during window resize/movement".
* Source/OpenTK/GameWindow.cs: Refactored and simplified the Run() loop.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Added timer callback to WM_ENTERSIZEMOVE messages to avoid stalling the rendering during the modal size/move loop (which occurs when the user clicks the window bar or borders). Still need to find a way to notify the frontend (GameWindow) to process queued up UpdateFrame/RenderFrame events.
* Source/OpenTK/Platform/Windows/API.cs: Added SetTimer, KillTimer and TimerProc bindings.
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: * OpenGL/GLHelper.cs: Removed static GetAddress method in favor of
implementation inherited from GraphicsBindingsBase.
Disabled unused code.
* Source/OpenTK/Graphics/GraphicsContext.cs: * GraphicsContext.cs: Removed unused code.
* Source/OpenTK/Audio/AudioCapture.cs: * AudioCapture.cs: Fixed documentation warning.
* Source/OpenTK/Audio/OpenAL/AL/AL.cs, Source/OpenTK/Audio/OpenAL/Alc/AlcEnums.cs: * AL/AL.cs:
* Alc/AlcEnums.cs: Fixed documentation warnings.
* Source/OpenTK/BindingsBase.cs, Source/OpenTK/Graphics/BindingsBase.cs, Source/OpenTK/Graphics/GraphicsBindingsBase.cs: * BindingsBase.cs:
* Graphics/BindingsBase.cs:
* Graphics/GraphicsBindingsBase.cs: Moved GraphicsBindingsBase to its
own file.
Moved BindingsBase to root OpenTK folder (reason: BindingsBase is not
specific to OpenTK.Graphics anymore).
Documented GetAddress methods.
* Source/OpenTK/Graphics/BindingsBase.cs, Source/OpenTK/Graphics/ES10/Helper.cs, Source/OpenTK/Graphics/ES11/Helper.cs, Source/OpenTK/Graphics/ES20/Helper.cs, Source/OpenTK/Graphics/OpenGL/GLHelper.cs, Source/OpenTK/Platform/X11/GlxHelper.cs, Source/OpenTK/Platform/X11/X11GLContext.cs: * Graphics/ES10/Helper.cs:
* Graphics/ES11/Helper.cs:
* Graphics/ES20/Helper.cs:
* Graphics/BindingsBase.cs:
* Platform/X11/GlxHelper.cs:
* Graphics/OpenGL/GLHelper.cs:
* Platform/X11/X11GLContext.cs: Modified BindingsBase to define
abstract GetAddress method (reason: removes OpenTK.Graphics-specific
code from BindingsBase and allows it to be used in different
bindings).
Implemented GraphicsBindingsBase and modified the OpenGL and OpenGL|ES
bindings to use this.
Modified the GLX bindings to inherit from BindingsBase (reason:
reduces code duplication for extension loading).
2009-10-06 the_fiddler
* Source/OpenTK/Math/Vector2.cs, Source/OpenTK/Math/Vector2d.cs, Source/OpenTK/Math/Vector3.cs, Source/OpenTK/Math/Vector3d.cs, Source/OpenTK/Math/Vector4.cs, Source/OpenTK/Math/Vector4d.cs: Replaced calls to obsolete methods.
Fixed parameters in double versions of BaryCentric() (should be double instead of float).
* Source/OpenTK/Math/Vector2.cs, Source/OpenTK/Math/Vector2d.cs, Source/OpenTK/Math/Vector3.cs, Source/OpenTK/Math/Vector3d.cs, Source/OpenTK/Math/Vector4.cs, Source/OpenTK/Math/Vector4d.cs: Obsoleted Scale() instance method (reason: redundant. Mult()/Multiply() instance/static methods can be used to achieve the same effect).
* Source/OpenTK/Math/Vector2.cs, Source/OpenTK/Math/Vector2d.cs, Source/OpenTK/Math/Vector3.cs, Source/OpenTK/Math/Vector3d.cs, Source/OpenTK/Math/Vector4.cs, Source/OpenTK/Math/Vector4d.cs: Added vector overloads to Multiply and Divide methods.
Renamed Sub to Subtract, Mult to Multiply and Div to Divide (reason: conform with the class library design guidelines).
Obsoleted instance Add, Sub, Mult and Div methods in favor of static ones (reason: reduce API bloat, they are completely redudant).
Improved documentation for new methods.
* Source/OpenTK/Math/Vector2.cs, Source/OpenTK/Math/Vector4.cs: Fixed formatting.
* Source/OpenTK/Properties/AssemblyInfo.cs: Bumped version number.
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Added GetActiveAttrib, GetActiveUniform, GetActiveUniformName and GetActiveUniformBlockName overloads that return strings. Fixes issue [#1213]: "[GL] let GetUniformName() return String".
* Source/OpenTK/Graphics/OpenGL/GLHelper.cs: Added ClearColor(Color4) overload. Fixes issue [#1207]: "[GL] add Color4 argument overload for ClearColor".
2009-09-26 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Raise KeyPress events (handle WindowsMessage.CHAR message).
* Source/OpenTK/KeyPressEventArgs.cs: Made KeyChar property setter internal instead of private. Useful for reusing KeyPressEventArgs structures (instead of allocating a new one on each and every character event).
* Source/OpenTK/IGameWindow.cs: Marked IGameWindow as public.
2009-09-25 the_fiddler
* Source/OpenTK/Platform/X11/X11GraphicsMode.cs: * X11GraphicsMode.cs: Protect the mode queries with XLockDisplay()/XUnlockDisplay().
2009-09-19 the_fiddler
* Source/OpenTK/GameWindow.cs: Ensure the GameWindow is visible when the Run() method is called.
* Source/OpenTK/Platform/Windows/API.cs, Source/OpenTK/Platform/Windows/WinGLNative.cs: Renamed IsWindowVisisble to the correct IsWindowVisible.
2009-09-18 the_fiddler
* Source/GLControl/GLControl.cs: Setting VSync mode should not force control creation. Fixes issue [#1071]: "Not firing Load event for GLControl."
2009-09-13 the_fiddler
* Source/OpenTK/Platform/X11/X11KeyMap.cs: * X11KeyMap.cs: Removed dependency on System.Windows.Forms.
2009-09-10 the_fiddler
* Source/GLControl/GLControl.cs: * GLControl.cs: Added a public getter for the IWindowInfo of the GLControl.
2009-09-08 the_fiddler
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Removed obsolete comment.
* Source/OpenTK/Platform/Windows/WinGraphicsMode.cs: Remove System.Windows.Forms.Control dependency in favor of OpenTK.NativeWindow.
* Source/OpenTK/Platform/Windows/WinGLNative.cs: Construct windows invisible by default. Use 'Visible = true' or 'GameWindow.Run' to display them.
* Source/OpenTK/Platform/Windows/API.cs: Added IsWindowVisible method.
2009-09-07 the_fiddler
* Source/Examples/OpenGL/EXT/GeometryShaderAdvanced.cs: Fixed several code instances that relies on C# 3.0 features.
* Source/Bind/Specifications/GL2/enumext.spec, Source/Bind/Specifications/GL2/gloverrides.xml, Source/OpenTK/Graphics/OpenGL/GL.cs, Source/OpenTK/Graphics/OpenGL/GLCore.cs, Source/OpenTK/Graphics/OpenGL/GLDelegates.cs, Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Updated tokens for ARB_depth_clamp, ARB_vertex_array_bgra, ARB_seamless_cube_map, ARB_provoking_vertex, ARB_draw_elements_base_vertex which where promoted in version 3.2. Fixes issue [#1146]: "[GL3.2] Multiple (minor) corrections".
* Source/Bind/Specifications/GL2/enumext.spec, Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Updated tokens for ARB_geometry_shader4 (promoted in Version 3.2). Fixes issue [#588]: "ARB_geometry_shader4".
* Source/Bind/Specifications/GL2/enumext.spec, Source/Bind/Specifications/GL2/gloverrides.xml, Source/OpenTK/Graphics/OpenGL/GL.cs, Source/OpenTK/Graphics/OpenGL/GLCore.cs, Source/OpenTK/Graphics/OpenGL/GLDelegates.cs, Source/OpenTK/Graphics/OpenGL/GLEnums.cs: Updated tokens for ARB_texture_multisample (promoted in Version 3.2). Fixes issue [#1151]: "ARB_texture_multisample".
* Source/Bind/GL2/Generator.cs: Report an error if a constant does not contain either '=' or 'use' in its definition.
----------------------------
OpenTK 0.9.9-2 -> 0.9.9-2b
----------------------------
+ OpenTK
+ Added AllowPartialTrustedCallers attribute.
---------------------------
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.
-------------------------
OpenTK 0.9.9 -> 0.9.9-1
-------------------------
+ OpenTK
+ Enabled documentation generation in debug builds.
+ Added several missing XML comments to OpenTK.Input, OpenTK.Audio, OpenTK.Math and other namespaces.
+ Audio
+ AL.Lib is now internal, not public.
+ Compute
+ Bitfields are now mapped to 'long' instead of 'int'.
+ GLControl
+ Removed unused code.
+ Input
+ Added Mouse and Keyboard stubs for the new input API.
+ Added common alternative names to OpenTK.Input.Key (e.g. LControl, RControl, ...)
+ Removed None and MaxKeys tokens from OpenTK.Input.Key. Adde Unknown token.
+ Math
+ Namespace OpenTK.Math no longer exists. Math functions are now placed directly inside the OpenTK namespace.
+ Matrix4.Frustum was obsoleted in favor of Matrix4.CreatePerspectiveOffCenter.
+ Matrix4.Perspective was obsoleted in favor of Matrix4.CreatePerspectiveFieldOfView.
-------------------------
OpenTK 0.9.8-1 -> 0.9.9
-------------------------
+ OpenTK
+ Compute
+ Initial support for the OpenCL flat API.
+ Input
+ Keyboard/Mouse/JoystickDevice are now marked as obsolete.
+ GameWindow
+ New properties: Bounds, Size, Location, ClientRectangle, ClientSize, Icon.
+ Size should now contain the correct value inside the GameWindow constructor.
+ The GameWindow should now start at the center of the specified DisplayDevice (Windows-only at the moment).
+ GameWindow no longer relies on Windows.Forms.
+ Graphics
+ 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
-------------------------
+ Bind
+ Fixed wrappers for methods ending in "nv" without being "NV" extensions (e.g. Booleanv).
+ OpenTK
+ Graphics
+ Fixed wrappers for methods ending in "nv" without being "NV" extensions (e.g. GetBooleanv).
+ Math
+ Improved performance for Matrix4/Matrix4d.Mult().
+ OpenTK.Utilities
+ TextPrinter
+ Fixed corruption after calling TextPrinter.Clear()
---------------------
OpenTK 0.9.7 -> 0.9.8
---------------------
+ Bind
+ Merged 3.1 specs.
+ Function overrides are now specified in 'gloverrides.xml' instead of gl.spec. Merging updated specs should now be much easier.
+ Bindings are now generated in alphabetical order. This makes side-by-side comparisons easier whenever the generator or the specs are updated.
+ OpenTK
+ Audio
+ Fixed Alc.CaptureSamples signature and added convenience overloads.
+ Graphics
+ Full OpenGL 3.1 support.
+ All instances of Version* enums have now been replaced. Only a few Version12Deprecated enums remain, pertaining to the ARB_imaging subset.
+ Debug builds now throw an exception whenever an OpenGL error is encountered. Simplifies debugging.
+ GraphicsContext.CreateDummyContext() no longer causes a NullReferenceException.
+ Several new helpers for getting matrices, vectors or setting the viewport.
+ Input
+ Keyboard repeat is now turned off on X11.
+ Mouse deltas are now reported correctly during mouse movements..
+ Platform
+ Device contexts are no longer leaked on Windows. This significantly improves stability of long-running processes and processes with multiple OpenGL contexts.
+ Internal improvements to DummyGLContext.
+ Internal improvements to IPlatformFactory.
+ OpenTK.Utilities
+ TextPrinter
+ Up to 2x better performance with TextPrinterOptions.NoCache.
+ Up to 20x better performance with TextPrinterOptions.Default.
+ Specifying text location now works on Mono. Text width and height is still broken (Mono GDI+ bug).
+ Replaced matrix stack with custom implementation for improved compatibility with buggy drivers or newer OpenGL versions.
+ GL1TextOutputProvider now resets / restores the TextureMatrix.
+ Examples
+ New sample browser that includes documentation and source code (in progress).
+ Removed the console window. Debug messages are now shown inside the sample browser.
---------------------
OpenTK 0.9.6 -> 0.9.7
---------------------
+ Bind
+ Fixed several suffixes that were incorrectly trimmed ("Instanced", "Indexed", "Varyings").
+ CLS-compliant overloads now contain debugging stubs.
+ OpenTK
+ Graphics
* Initial support for OpenGL 3.1. Some functions and tokens aren't yet available in the specs - these will be added in due time.
* Improved type-safety in the OpenGL 3.0 bindings.
+ Automatic error checks now display stacktraces.
---------------------
OpenTK 0.9.5 -> 0.9.6
---------------------
+ Bind
+ Improved heuristics for inline OpenGL documentation.
* Void pointers are now mapped to generic arrays (T[]) or references (ref T), where T : struct. Work in progress (see http://www.opentk.com/node/703).
+ Generated bindings now automatically check for OpenGL errors, when compiled in debug mode.
+ Disabled all generator modes except for GL.
+ OpenTK
+ Fixed all build warnings (apart from missing documentation comments).
+ Graphics
+ Improved inline documentation.
+ Added automatic OpenGL error checking in debug builds.
+ Replaced object overloads with generics for improved type-safety and performance.
+ Updated to version 48 specs (fixed some problems with the transform feedback extension).
+ Platform
+ Fixed GLX context attributes in the GLX_ARB_create_context code path.
+ Revert to the legacy GLX code path for pre-GL3.0 contexts (AMD drivers do not support vsync on GL3.0+).
+ Audio
+ AudioContext now initializes the maximum number of effect slots supported by the drivers.
+ Added IsSynchronized property.
+ Examples
+ New OpenAL example (EFX reverb).
---------------------
OpenTK 0.9.4 -> 0.9.5
---------------------
+ Bind
+ Added support for inline OpenGL documentation.
+ Fixed mapping between signed / unsigned wrappers -> signed / unsigned entry points (casts should no longer be necessary).
+ Build
+ Added System.Xml reference to Bind project.
+ Added new documentation files to Bind project.
+ OpenTK
+ GameWindow / GLControl
+ Added new constructors to select the desired GraphicsContext version and flags.
+ Graphics
+ The GL class now contains inline documentation.
+ It is now possible to specify desired version and flags for the OpenGL context (forward-compatible, debug).
+ Input
+ It is now possible to use devices without axes and/or buttons (e.g. keyboard extensions, tablets).
+ Platform
+ X11 platform driver now uses glXChooseFBConfig for visual selection, if available.
+ X11 platform driver now supports GLX_ARB_create_context (OpenGL 3.0).
+ Examples
+ Extension test now requests an OpenGL 3.0 context.
+ Extension test now shows the parameters of each OpenTK.Graphics.GL function.
---------------------
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
---------------------
+ OpenTK
+ GameWindow
+ Added cancelable Closing event.
+ Exit() method is now thread-safe.
+ Removed ExitAsync() method - use Exit() instead.
+ Graphics
+ Fixed version strings in GL.SupportsExtension().
+ Input
+ Added support for the MouseDevice.Move and .WheelChanged events and improved MouseDevice interface (Issue: "Fix MouseDevice.Move", http://www.opentk.com/node/652).
+ Math
+ Fixed infinite loop in quaternion constructors (Issue: "Quaternion bug", http://www.opentk.com/node/663)
+ Platform
+ MacOS support.
+ Suppressed build warnings for unused methods and fields in the platform bindings.
+ Utilities
+ Fixed TextPrinter bug with colors in high quality (Issue: "TextPrinter (TextQuality.High) failure (with patch to fix)", http://www.opentk.com/node/660)
+ Examples
+ Fixed the JuliaSetFractal and Framebuffer Object examples when the video cards don't support GLSL and FBOs, respectively.
+ General
+ Set mime-type and eol-style properties for .cs and .txt files.
+ Replaced stray tabs with spaces in several files.
---------------------
OpenTK 0.9.1 -> 0.9.2
---------------------
+ Bind
+ Added the Half type to the typemaps.
+ OpenTK
+ Platform
+ Added GdiPlus bindings.
+ Fixed a bug where the KeypardEnter key was reported as Enter on X11.
+ Changed the Time X11 struct from int to IntPtr.
+ Improved GLControl implementations.
+ Graphics
+ Added Color4 struct that can hold floating-point ARGB colors.
+ Added several new overloads to the GL class. Most deal with OpenTK and System.Drawing.Color interoperation.
+ Added support for the Half type.
+ Math
+ Added half and double precision structures.
+ Added missing ref overloads.
+ All structs now implement the IEquatable interface.
+ Added the SerializableAttribute to the Quaternion and Quaterniond structs.
+ Fixed Quaternion/Quaterniond.ToAxisAngle with an angle of 0 degrees.
+ Quaternion/Quaterniond now follow the recommended class library naming conventions.
+ General
+ Fixed build warnings.
+ Eliminated per-frame memory allocations in release builds.
+ Utilities
+ Fonts
+ Updated the layout code to use the new GdiPlus bindings.
+ Added support for near-, far- and center-aligned text.
+ Added support for right-to-left and vertical text (not 100% complete).
+ Added support for subpixel antialiasing (requires GL 1.2 or higher).
+ Examples
+ Improved ExampleLauncher behavior on recent Mono/Linux releases.
+ Switched to the new TextPrinter implementation.
+ Changed background color from SteelBlue to MidnightBlue.
---------------------
OpenTK 0.9.0 -> 0.9.1
---------------------
+ Bind
+ Corrected Glu.NewTess and Glu.DeleteTess (were NewTes and DeleteTes respectively).
+ Corrected typemaping for NurbsObj, QuadricObj, TesselatorObj and FunctionPointer.
+ Fixed a bug that resulted in missing overloads in functions with both pointers and generic parameters (like Glu.TessVertex).
+ Worked around an Intellisense bug, where some overloads might not be reported if the pointer overload was the first one encountered.
+ Fixed naming of 1D, 2D, 3D etc (e.g. Texture2D, which used to be Texture2d).
+ Corrected GL.ReadPixels (was GL.ReadPixel).
+ OpenTK
+ Graphics
+ Fixed Glu tessellation.
+ Refactored/updated DisplayMode and ColorMode. Added docs, fixed a few problematic corner cases. Width/Height are no longer available in DisplayMode.
+ Added DisplayDevice class, to enumerate available display devices (i.e. monitors) and switch resolutions.
+ Added DisplayResolution class, to hold resolution information.
+ Audio
+ Added AudioContext class.
+ Added AudioReader class.
+ GameWindow
+ Implemented WindowBorder property.
+ Implemented WindowState property.
+ Input
+ Fixed MouseDevice events on Linux.
+ Fixed MouseDevice deltas.
+ Platform.X11
+ Simplified input handling.
+ Fonts
+ Moved to OpenTK.Utilities.
+ OpenTK.Utilities
+ Fonts
+ Moved to OpenTK.Graphics from OpenTK.Fonts.
+ Implemented immediate text printing (without caching).
+ Improved width calculation for space characters.
+ Fixed width calucalated by TextureFont.MeasureString.
+ Examples
+ Added GluTessellator example.
+ Added Inertia's Julia Set GLSL example.
+ Added Inertia's OpenAL Playback example.
+ Made several tests public (Input Logger, Resolutions, GameWindow states).
-----------------------
OpenTK 0.3.13 -> 0.9.0
-----------------------
Minor version changed to reflect current progress.
+ Bind
+ Improved token matching rule. More tokens will reference actual enums now, instead of referencing Enums.All.
+ Initial work on duplicate enum removal (still disabled).
+ 'Public' specifier not specified on the generated classes anymore. This is now controlled in the *Helper.cs files.
+ Fixed a couple of possible NRE exceptions.
+ Build
+ Now generates xml documentation on release builds.
+ OpenTK
+ Fonts
+ Fixed a bug in the VboTextPrinter implementation (still disabled).
+ OpenAL
+ AL, Alc, Alu and Alut bindings.
+ Inline documentation.
+ OpenGL
+ Version12-Version21 enums removed in favour of specific tokens.
+ A few new function overloads.
+ Platform
+ Added several new functions to the Windows and X11 namespaces (mouse handling, coordinate transformations, current context query)
+ Initial support for garbage collection of OpenGL resources (disabled).
+ Support for Win 9x and 2000 platforms through new WMInput InputDriver implementation.
+ Fixes to WinRawInput driver (disabled due to memory leaks).
+ GameWindow
+ Now uses GLContext instead of Win/X11GLContext.
+ Math
+ Fix to Vector4.Perspective()
+ Examples
+ Hidden examples now displayed on Ctrl+F1.
+ Bugfixes to GLSL and VBO examples.
+ Input logger works again (hidden example).
-----------------------
OpenTK 0.3.12 -> 0.3.13
-----------------------
+ Bind
+ New transformation to OpenGL enums follows .Net naming conventions (PascalCase, no_underscores).
+ Void* parameters are turned to IntPtr, to improve interop with .Net BCL methods (e.g. BitmapData.Scan0).
+ Now generates only one ref/array/pointer overload for each function, not all possible permutations. Brings Glu down to ~40KB of code (was ~3MB before). Improves compilation times.
+ Improved layout of generated code. Removed some generated local variables (improves speed).
+ Build
+ Now copies example data to output directory.
+ OpenTK
+ Platform
+ Improved [..]GLNative shutdown sequence for all platforms. Fixes shutdown crash under Linux.
+ Removed X11GLControl, WinGLControl. The platform specific code is handled in the WindowInfo and GLContext classes.
+ Fixed issue with flickering GLControls.
* Added VSync support to Windows. Linux will obtain this on next release.
+ GameWindow
+ Improved timing precision.
+ More detailed timing information available.
+ Can now set target UpdateFrame and RenderFrame periods during runtime.
+ VSync support.
+ Improved GameWindow.Exit() handling.
+ Removed obsolete GameWindow.Create and GameWindow.Destroy events.
+ Math
+ Andy Gill implemented Vector2/3/4, Matrix4 and Quaternion methods for OpenTK.
+ Added Box2 struct which defines a rectangular region. Used in OpenTK.Fonts (see below).
- Removed (float*) and (IntPtr) cast operators from Vector234. Added this[] operator.
+ Fonts
+ High quality Texture fonts on all supported platforms (TextureFont class).
+ TextPrinter to draw text on all supported platform (TextPrinter class).
+ OpenGL
+ .Net naming conventions.
+ Many, many more function overloads.
+ Smaller and faster.
+ Even better startup performance.
+ Examples
+ Improved example layout. Now every example contains a Main() method, exactly like it would be if it wasn't launched by the ExampleLauncher.
+ Added ExampleAttribute.
+ Added Fonts, Textures and Text examples.
+ Improved GLSL example (now loads the shader from disk, uses VBO).
- Disabled Vertex Array and Lighting examples, as they were seriously broken.
+ Background changed to Color.SteelBlue for all examples.
+ Kostas Soulakellis created a logo for the OpenTK library. A scaled-down image of the first version is used in the Textures example.
-----------------------
OpenTK 0.3.11 -> 0.3.12
-----------------------
+ Bind
+ Minor output layout updates.
+ OpenTK
+ Platform
+ Renamed Windows.API to Windows.Functions, to match X11.Functions.
+ Added many new functions to both Windows and X11 bindings.
+ Improved inline documentation to Windows and X11 bindings.
+ GameWindow
+ Added timing logic to the Run() function. The target UpdateFrame and RenderFrame rates can be set independently. The GameWindow will try to maintain the UpdateFrame rate, dropping RenderFrames if necessary.
+ GameWindow.Run() now releases unused CPU time.
+ Improved event firing. Resize event called only once now. No need for users to call base.OnXYZ functions.
+ Corrected an issue where GameWindow could could fail to shutdown properly under Windows, due to WinRawInput driver eating up the CLOSE event.
+ GameWindow exposes only one Mouse and Keyboard now. Multiple keyboard/mouse support is provided through the InputDriver, but is still very much a WIP, so better to use the default Keyboard and Mouse devices reported by GameWindow.
+ Added the GameWindow.Title property, which can be used to retrieve or set the GameWindow caption.
+ Added new constructors and CreateWindow overloads.
+ Greatly improved documentation.
+ Internal layout changes, and general performance optimizations.
+ Input
+ Mouse input support through WinRawMouse and X11Mouse drivers.
- Mouse.Wheel and Mouse.WheelDelta are broken on both platforms.
- WinRawMouse is very resource intensive. Expect great performance improvements in the next releases.
+ Added some missing Keyboard keys.
+ Math
+ Added Vector2, Vector3 and Vector4 structs, and basic vector math functions. You can pass these structs directly to functions expecting float*, by casting to (float*).
+ Examples
+ Merged T02: Resizable Window example into T01: Simple Window.
+ Added T02: Vertex Array example.
+ Added T04: Lighting example.
+ Improved keyboard handling.
+ Improved documentation, especially T01: Simple Window.
+ Slightly cleaned up T10: GLSL Example.
+ Examples now use many of the new GameWindow capabilities. Check out T01.
+ Added Shape, IsoSphere, and Cube shapes. OpenTK.Example.Shape for more.
-----------------------
OpenTK 0.3.10 -> 0.3.11
-----------------------
+ Bind
+ Preliminary support for GLU and GLX.
+ Improved generator speed. GLU generation down to 5 seconds (from 6 minutes).
+ Enhanced overload trimming using Regexes. All endings should be handled correctly now.
+ OpenTK
+ Platform
+ Replaced System.Windows.Forms.Message with OpenTK.Platform.Windows.MSG. Corrects deadlocks under 32-bit windows.
+ Added WindowMessage enum from Mono's bindings.
+ GameWindow, GLControl and GLContext
+ Improved shutdown sequence (finalizers only on classes that actually need them).
+ Improved stability (exceptions no longer thrown in finalizers).
+ Corrected deadlock under 32-bit Windows (see above).
+ Added DummyGLControl and DummyGLContext, used in design mode. Improves design speed and resolves Visual Studio crashes.
+ GameWindow Create event marked as obsolete. Use the Load event instead.
+ Input
+ Correctly implemented disposable pattern.
+ OpenGL
+ GL.ClearColor() now accepts a System.Drawing.Color
+ All function endings are trimmed now (see Bind changelog).
+ GCHandles where not freed (bug introduced in 0.3.10).
+ Added preliminary GLU bindings. Tesselation not working yet.
+ Examples
+ Improved ExampleLauncer behavior. Examples are now launched in the main ExampleLauncher thread, and the ExampleLauncher becomes invisible whenever and example is active.
+ Improved example names inside the ExampleLauncher. Renamed some examples to better reflect their contents.
+ Added two new tutorials: 'T01: Simple Window' and 'T02: Resizable Window'
+ Updated the DrawCube() immediate mode functions to use System.Drawing.Colors
+ Resolved issue where 'T10: GLSL Cube' example failed with an NRE when compiled with Mono 1.2.x
+ Added 'W03: Extensions' example.
+ Added 'T04: Lit Cube' example (still needs work).
-----------------------
OpenTK 0.3.9 -> 0.3.10
-----------------------
+ Bind
+ Added Generator for WGL.
+ Corrected bug where trimmed overloads (like Color3) did not call the correct delegates internally (Color3ub called glColor3b)
+ Improved configuration capabilities - can now change the function prefix/postfix, and more.
+ Improved commandline argument handling.
+ OpenTK
+ Platform
+ Added complete WGL bindings (Wgl.cs, WglCore.cs, WglDelegates.cs, WglEnums.cs)
* Should request up-to-date specs from Khronos.
+ GameWindow and GLControl
+ Improved creation/destruction event sequence.
+ Improved loading speed.
+ Corrected long-standing stability issues (moving between GameWindow/GLControl examples no longer results in a crash)
+ Improved compatibility (now works with Mesa3d 7.0.x as well as 6.5.x)
+ Better error handling (although not completely safe by any measure).
+ Corrected client rectangle under Windows GameWindow implementation - now the Viewport correctly corresponds the rendering area.
* Critical bug: deadlock on Windows XP 32-bit. Investigating.
+ Input
+ Slightly improved keyboard handling functions.
+ OpenGL
+ Added convenience overloads for Color[34] that can directly take a System.Drawing.Color struct.
+ Examples
+ Slight improvements to event handling.
+ Improved the ExampleLauncher interface (now responds to key events, added a 'Run Example' button).
OpenTK 0.3.8 -> 0.3.9
+ Bind
+ Does not rely on CodeDOM anymore (wasn't flexible enough).
+ Initial work on gl3, wgl, glx, glu compatibility.
+ Implemented almost all pending features:
+ Extensions in different classes (e.g. GL.ARB.ActiveTexture)
+ Fixed statement instead of GCHandle for improved performance
+ Real pointers instead of IntPtrs
+ CLS-Compliant and non CLS-Compliant overloads (e.g. functions with unsigned parameters).
+ Overloads over the 'basic' function (e.g. GL.Vertex3fv -> GL.Vertex3)
+ Enums now inside the GL class.
+ New commandline options
+ 'legacy': defines compatibility with Tao ('-legacy:tao')
+ 'mode': defines translation mode (e.g. gl2, gl3, wgl etc)
+ 4 files are now generated: GL.cs, GLCore.cs, GLDelegates.cs, GLEnums.cs
+ Build
+ Corrected sharpdev target (was generating monodev projects before)
+ Added sharpdev2 target.
+ OpenTK
+ GameWindow
+ Added support for keyboard input. Windows (raw input) and linux drivers.
* Improved GameWindow events (Load, Create, Destroy). Still incomplete.
* Fixed several crash bugs.
- Crashes observed when frequently creating/destroying GameWindows.
+ Input
* Interface for input devices: keyboard, mouse.
* Driver implementation for windows (raw input) and linux.
+ Works with GameWindow.
- Does not work with GLControl, yet.
+ Platform
+ X11 enhanced with Mono's X11 bindings.
* Work on platform interop utilities.
+ Minor additions to Windows.API
+ Examples
+ New GL interface.
* Temporarily disabled incomplete examples.
OpenTK 0.3.7 -> 0.3.8
+ New project layout. Only four projects remain under the 'Source' directory: Bind, Build, Examples, OpenTK
+ The whole library (Platform, Windowing, OpenGL, etc.) is now contained in the OpenTK.dll.
+ Build contains the new build system.
+ Bind contains the opengl binding generator.
+ Examples contains examples showcasing OpenTK and OpenGL.
+ Build
+ Improved console output.
+ Added support for debug target.
+ Better handling of wrong targets.
+ Moved Prebuild.xml to the Build folder.
+ OpenTK
- Removed OpenTK.Framework (superseded by GameWindow)
+ GameWindow (new, incomplete)
+ Creates render window through system calls.
+ Interface suited for games.
+ Resize event support.
+ Error handling.
- No keyboard input yet.
+ Platform
+ Numerous additions, bugfixes in OpenTK.Platform.Windows, OpenTK.Platform.X11.
+ Changed the class and namespace names.
+ Added IGLContext, IGLControl, IGameWindow, INativeWindow, IResizable interfaces.
+ Added class GLContext : IGLContext. Platform specific implementations in WinGLContext and X11GLContext.
+ Added class GLControl : IGLControl. Platform specific implementations in WinGLControl and X11GLControl.
+ Added classes WinGLNative, X11GLNative : INativeWindow.
+ Added visual studio design support for GLControl.
+ Input
* Do not use yet, it is not ready.
+ Examples
+ Added an example launcher
+ Two example categories for now: Tutorials (showcasing GameWindow) and WinForms (showcasing GLControl)
+ Added Tutorials.VBO example (incomplete)
+ Added WinForms.FirstWindow example.
+ Ported some of the old examples over.
* More work on examples and tutorials on the next version.
OpenTK 0.3.6 -> 0.3.7
+ OpenTK.Build
+ Added new, (more) cross-platform build system, written on C#. This takes the place of the scripts and batch files used to compile OpenTK up till now.
+ Removed all build scripts.
+ OpenTK.Framework
+ Now builds under Linux.
+ OpenTK.OpenGL.Bind
+ Synced with Tao.GlBindGen beta 2.1.3.6
+ Enabled ref/out overloads.
+ Added GLenum, which contains all opengl enumerants (useful for 'polymorphic' opengl functions).
+ OpenTK.OpenGL
+ ref/out overloads and GLenum (see above).
+ Fixed extension loading under Mac OS X.
+ Improved compatibility with 64bit platforms.
OpenTK 0.3.5 -> 0.3.6
+ OpenTK.OpenGL.Bind
+ Synced with Tao.GlBindGen codebase.
+ Uses CodeDOM internally for code generation.
+ Updated to latest specs (which include shader model 4).
+ OpenTK.OpenGL (Low level)
+ All OpenGL extensions are now generated (up to shader model 4).
+ Decorated imports and delegates with the SuppressUnmanagedCodeSecurity attribute. Major speed improvements in CPU-bound applications.
+ More robust and faster static initialisation for the GL class.
+ Updated GLHelper.cs, with methods to obtain or reload OpenGL entry points, as well as query for supported extensions.
+ Got rid of "object" overloads for typed arrays.
+ All known bugs are now fixed.
+ OpenTK.OpenGL (High level)
+ Added the DisplayList class.
+ OpenTK.Examples.OpenGL
+ Added the Basic.DisplayLists example.
OpenTK 0.3.4 -> 0.3.5
+ Thanks to Erik Ylvisaker's hard work, OpenTK now works under both Windows and X11.
+ The GLContext class now contains all needed code for mode switching.
+ The Framework class structure has been updated. Less code is duplicated between GLContext and Framework now.
+ Three new examples have been added: OpenGL.Basic.Lesson01 (equivalent to OpenGL.GLSL.Lesson01 without the shaders), OpenGL.Basic.QueryDisplayModes which shows a list of all available display modes, and OpenGL.Basic.NoFramework which shows how to use OpenGL Contexts directly (without relying on the framework).
+ New bindings for X and the XF86 extension.
+ New build system based on Prebuild and NAnt (similar to the one used in Tao or Mono.XNA).
+ Updates to the OpenTK.OpenGL.DisplayMode and ColorDepth classes.
+ More XML documentation blocks added to functions and classes.
+ Major update to OpenTK.OpenGL.Bind (see that changelog for more info).
+ Revamped GL class (it is self contained now).
+ Revamped GLContext class (it is no longer bound to the GL class initialisation).
+ Cleaner code, new functions, comments and many new wrappers.
+ Updated the spec files for opengl 2.1.
+ Added the new 64 bit types to the typemaps (gl.tm and csharp.tm)
+ The bugs in the specs are still there:
+ SGIX_icc_texture is still commented out, while enums use it.
+ LightProperty is still used by constants (the correct enum is LightParameter).
+ I think I should contact someone at the Khronos group about these. For the time being I worked around them, by adding a special case for LightProperty in the translator, and adding the SGIX enum to the missing parameters.
+ See also: http://www.haskell.org/HOpenGL/spec_bugs.html (lots of useful information on that site).
+ Directory structure updates.
+ Now every project has its own documentation.
+ The spec files for OpenGL now reside in the Source/OpenTK/OpenGL directory.
+ Minor updates to the wgl bindings (int -> IntPtr).
+ Tested the binding generator with the glx specs (the reader and the enum writer work ok, the trnaslator and the other writers will need updating).
+ Renamed the GLForm to Framework.
+ The Framework now resides in its own project directory.
OpenTK 0.3.3 -> 0.3.4
+ Corrected the crash error in Release mode (it was caused by trying to Marshal the System.Windows.Forms.Message struct to PeekMessage - adding my own Message struct corrected the issue).
+ Corrected the call to glShaderSource GLSL.Lesson01. Now the correct number is passed to the count parameter, while the null parameter was changed to IntPtr.Zero (Mono now no longers fails in this call).
+ Updated the GLSL.Lesson01 example to use GetShaderInfoLog on compilation failure.
+ OpenTK.OpenGL.Bind 0.7.5.1 -> 0.7.5.2 (see Bind changelog for more information)
+ Full Mono support under windows.
OpenTK 0.3.2 -> 0.3.3
+ OpenTK.OpenGL.Bind 0.7.5 -> 0.7.5.1 (see Bind changelog for more information)
+ Added the GLForm class which sets the base for cross-platform screen, context and keyboard handling.
+ Can now change between fullscreen and windowed modes.
+ Temporarily removed all examples except for GLSL.Lesson01, which has been updated to use the new GLForm class.
OpenTK 0.3.1 -> 0.3.2
+ OpenTK.OpenGL.Glu: Eliminated the temporary IntPtr variable in the GetString and ErrorString functions.
+ Specifications.cs_types.txt: Changed types in order to be CLS compliant.
+ OpenTK.OpenGL.Bind 0.7.4 -> 0.7.5
+ Added the GLSL.Lesson01 example.
OpenTK 0.3.0 -> 0.3.1
+ Updated the binding generator to version 0.7.4, based on the work done for Tao.
+ Updated the Context load functions. Now Context loads all functions are extensions, and the derived classes override this behavior as needed.
+ Changed the uint array used in the DisplayLists example to an int array.
+ Added the changelog! :)