Stefanos A [Fri, 13 Dec 2013 23:19:03 +0000 (00:19 +0100)]
Added nuget lib directory to gitignore
Stefanos A [Fri, 13 Dec 2013 09:52:11 +0000 (10:52 +0100)]
Added nuget build target to OpenTK.sln
Stefanos A [Fri, 13 Dec 2013 09:51:34 +0000 (10:51 +0100)]
Added nuget build target
This will create a nupkg file for OpenTK and copy it to the base
directory. Version information is currently hardcoded to 1.1 (this
should be fixed.)
Stefanos A [Mon, 9 Dec 2013 22:46:07 +0000 (23:46 +0100)]
Cache size of char
BlittableValueType<char> caches the size of the type parameter. This
way, we avoid calling Marshal.SizeOf repeatedly for every keyboard
event.
Stefanos A [Mon, 9 Dec 2013 22:44:51 +0000 (23:44 +0100)]
Eliminated memory allocations in Keyboard events
Stefanos A [Mon, 9 Dec 2013 22:43:36 +0000 (23:43 +0100)]
Do not generate KeyPress events for non-printable characters
Stefanos A [Sun, 8 Dec 2013 20:07:46 +0000 (21:07 +0100)]
Merge branch 'enumfix'
Stefanos A [Sun, 8 Dec 2013 15:20:30 +0000 (16:20 +0100)]
Regenerated bindings
Stefanos A [Sun, 8 Dec 2013 15:20:22 +0000 (16:20 +0100)]
Added overloads for compatibility with 1.0 and 1.1 APIs
Stefanos A [Sun, 8 Dec 2013 15:20:04 +0000 (16:20 +0100)]
Maintain Obsolete property when cloning a function
Stefanos A [Sun, 8 Dec 2013 15:19:46 +0000 (16:19 +0100)]
Create convenience overloads based on wrappers, not entry points
It makes sense to generate convenience overloads for each relevant
wrapper function, instead of each entry point. This way, we generate
convenience overloads for every wrapper in overrides.xml (even wrappers
for background compatibility), which would otherwise be ignored.
parallels [Sun, 8 Dec 2013 11:38:06 +0000 (12:38 +0100)]
Fix for issue #16 "X11 misreported as unsupported platform"
Stefanos A. [Fri, 6 Dec 2013 17:37:11 +0000 (18:37 +0100)]
Regenerated bindings
Stefanos A. [Fri, 6 Dec 2013 17:37:03 +0000 (18:37 +0100)]
Updated to Revision 24389
Stefanos A. [Fri, 6 Dec 2013 17:36:31 +0000 (18:36 +0100)]
Improved handling of enum parameters
When a function parameter matches a strongly-typed enum, the parameter
type is explicitly set to that enum. This fixes issues with function
parameters referring to enums whose names change after translation.
Stefanos A. [Fri, 6 Dec 2013 17:28:38 +0000 (18:28 +0100)]
Cleaned up instructions for Converter.exe
Stefanos A. [Thu, 5 Dec 2013 16:44:13 +0000 (17:44 +0100)]
ClientRectangle should not affect window location
Fixes issue #13
Stefanos A. [Thu, 5 Dec 2013 11:05:26 +0000 (12:05 +0100)]
Move installer to destination directory
This reduces the garbage left behind by the installer generation script.
Stefanos A. [Thu, 5 Dec 2013 11:04:58 +0000 (12:04 +0100)]
Streamlined nsis installer
OpenAL is now included in the Dependencies/ folder and NShader is no
longer linked to by the installer.
Stefanos A. [Thu, 5 Dec 2013 11:04:15 +0000 (12:04 +0100)]
Ignore generated installers
Stefanos A. [Thu, 5 Dec 2013 10:42:01 +0000 (11:42 +0100)]
Corrected zip build script
Excluded items are now really excluded.
Stefanos A. [Mon, 2 Dec 2013 22:39:36 +0000 (23:39 +0100)]
Workaround for #5
WS_CLIPCHILDREN and WS_CLIPSIBLINGS appear to cause flickering on
specific video cards. OpenGL appears to work correctly without these, so
we'll disable them to return to OpenTK 1.0 behavior.
Stefanos A. [Mon, 2 Dec 2013 22:37:22 +0000 (23:37 +0100)]
Fixed centering for non DPI-aware applications
Stefanos A. [Mon, 2 Dec 2013 22:37:00 +0000 (23:37 +0100)]
DPI-scaling should affect resolution
The correct resolution will now be reported depending on whether the
application is DPI-aware.
Stefanos A. [Mon, 2 Dec 2013 21:34:39 +0000 (22:34 +0100)]
High-resolution mode is enabled by default
Stefanos A. [Mon, 2 Dec 2013 21:18:16 +0000 (22:18 +0100)]
Made DPI-awareness configurable (issue #6)
It is now possible to indicate that an application is not DPI-aware. In
that case, OpenTK will let the operating system handle DPI scaling. This
results in worse visuals (pixel doubling) but allows non DPI-aware
applications to continue working.
Stefanos A. [Fri, 22 Nov 2013 17:25:30 +0000 (18:25 +0100)]
Add test for new text input events
Elias Holzer [Fri, 22 Nov 2013 17:05:11 +0000 (18:05 +0100)]
Implemented KeyPress event for Sdl2NativeWindow.
Elias Holzer [Fri, 22 Nov 2013 17:04:53 +0000 (18:04 +0100)]
Implemented KeyDown and KeyUp events for Sdl2NativeWindow.
Elias Holzer [Fri, 22 Nov 2013 17:03:17 +0000 (18:03 +0100)]
Enabled KeyDown and KeyUp events in NativeWindow.
Stefanos A. [Fri, 22 Nov 2013 13:10:21 +0000 (14:10 +0100)]
Fix "CursorVisible bugs"
When we enter the modal resize loop on Windows with ClipCursor set, we
cause a feedback loop where every resize causes the cursor to move and
every move causes a new resize. To fix this, we need to ungrab the
cursor when we are enter the modal loop.
Stefanos A. [Thu, 21 Nov 2013 23:32:42 +0000 (00:32 +0100)]
Updated release notes
Stefanos A. [Thu, 21 Nov 2013 18:44:12 +0000 (19:44 +0100)]
Updated todo list
Stefanos A. [Thu, 21 Nov 2013 08:34:34 +0000 (09:34 +0100)]
Updated build instructions.
Stefanos A. [Thu, 21 Nov 2013 08:34:06 +0000 (09:34 +0100)]
Fix exceptions on reused OpenGL context handles
Implementations may reuse OpenGL context handles that have been
destroyed. If a context is finalized but not Disposed, then OpenTK may
keep a reference to the old context handle, causing a crash when the
same handle is returned for a new context. To fix that, new context
handles will now replace old handles in case of a clash.
Stefanos A. [Thu, 21 Nov 2013 08:31:32 +0000 (09:31 +0100)]
Destroy SDL window when finalized
SDL_DestroyWindow must be called on the main thread. If the window is
finalized, the finalizer will push a CLOSE event to the event loop
(thread-safe) and the window will be destroyed on the main thread.
Stefanos A. [Wed, 20 Nov 2013 17:05:45 +0000 (18:05 +0100)]
Fixed #5
We need to release the cursor before closing a GameWindow, otherwise
subsequent GameWindows may fail to receive mouse events.
Stefanos A. [Wed, 20 Nov 2013 12:12:42 +0000 (13:12 +0100)]
Toolkit.Init() now returns a concrete class
This gives us room for expansion in the future, if necessary.
Stefanos A. [Wed, 20 Nov 2013 12:05:49 +0000 (13:05 +0100)]
Removed incorrect comment
Stefanos A. [Wed, 20 Nov 2013 08:10:12 +0000 (09:10 +0100)]
Fixed #4
Sdl2InputDriver.Dispose() would call SDL_DelEventWatch with a different
"user_data" parameter than SDL_AdEventWatch. This caused the EventFilter
to remain registered and subsequently crash when closing and reopening a
window.
Stefanos A [Wed, 20 Nov 2013 07:15:42 +0000 (08:15 +0100)]
Completed compatibility overloads for OpenTK 1.0
Stefanos A [Wed, 20 Nov 2013 07:14:58 +0000 (08:14 +0100)]
Do not trim 's' from Groups
Stefanos A. [Mon, 18 Nov 2013 17:51:38 +0000 (18:51 +0100)]
Aligned GL core and compat enums
Stefanos A. [Mon, 18 Nov 2013 17:38:03 +0000 (18:38 +0100)]
Removed stale QuickStart project
Instead of QuickStart.sln, we should provide proper templates.
Stefanos A. [Mon, 18 Nov 2013 17:35:23 +0000 (18:35 +0100)]
Do not call SDL.GetVersion unless requested
Stefanos A [Mon, 18 Nov 2013 17:30:18 +0000 (18:30 +0100)]
Reverted 'h' suffix detection
This causes too many breaking changes in the NV namespace.
Stefanos A [Mon, 18 Nov 2013 17:29:44 +0000 (18:29 +0100)]
More compatibility overloads for OpenGL
Stefanos A [Mon, 18 Nov 2013 17:21:31 +0000 (18:21 +0100)]
Improved suffix detection. Support index-based parameter overloading.
Stefanos A. [Mon, 18 Nov 2013 12:49:06 +0000 (13:49 +0100)]
Implemented IEquatable<ColorFormat>
This eliminates memory allocations when storing and comparing
ColorFormat structures.
Stefanos A [Mon, 18 Nov 2013 12:28:44 +0000 (13:28 +0100)]
Added OpenGL overloads for OpenTK-1.0 compatibility
Stefanos A [Mon, 18 Nov 2013 00:10:01 +0000 (01:10 +0100)]
Added compatibility overloads for ES 2.0
Stefanos A [Sun, 17 Nov 2013 22:57:38 +0000 (23:57 +0100)]
Aligned FBO API with desktop OpenGL
Stefanos A [Sun, 17 Nov 2013 22:56:51 +0000 (23:56 +0100)]
Allow overriding of function names
Stefanos A [Sun, 17 Nov 2013 22:56:37 +0000 (23:56 +0100)]
Added OpenGL ES 2.0 documentation
Stefanos A [Sun, 17 Nov 2013 20:27:22 +0000 (21:27 +0100)]
Removed debugging code
Stefanos A [Sun, 17 Nov 2013 20:27:09 +0000 (21:27 +0100)]
Handle overloads with different element counts
Stefanos A [Sun, 17 Nov 2013 20:26:28 +0000 (21:26 +0100)]
Improved and documented IEquatable vs IComparable
Stefanos A [Sun, 17 Nov 2013 00:46:56 +0000 (01:46 +0100)]
Regenerated bindings
Stefanos A [Sun, 17 Nov 2013 00:46:27 +0000 (01:46 +0100)]
OpenGL overrides for compatibility
Added overrides to maintain backwards compatibility with
OpenTK.Graphics.OpenGL.GL. These were generated
through the apitest tool.
Stefanos A [Sun, 17 Nov 2013 00:45:01 +0000 (01:45 +0100)]
Cleaned up ending trim regex
Trim regex will now correctly match GetInteger64 and other functions
ending in "64". It also uses a correct ending anchor to avoid matches
in the middle of a function name.
Stefanos A [Sat, 16 Nov 2013 23:45:52 +0000 (00:45 +0100)]
Added int/uint to the c# typemap
Stefanos A [Sat, 16 Nov 2013 22:41:12 +0000 (23:41 +0100)]
Speed up enum code generator
Scan through the list of wrappers once, instead of multiple times, in
order to find out which functions use which enums. This speeds up enum
generation tremendously.
Stefanos A. [Sat, 16 Nov 2013 21:38:17 +0000 (22:38 +0100)]
Setup correct class style for OpenGL
On Windows, we need to have a CS_OWNDC class style on windows with
OpenGL contexts attached. In Windows.Forms, we can set this via the
Control.CreateParams property. See
https://www.opengl.org/wiki/Creating_an_OpenGL_Context_(WGL)
Stefanos A [Fri, 15 Nov 2013 00:59:50 +0000 (01:59 +0100)]
Improved compatibility with OpenTK 1.0
Added overloads for enumerations with name changes. Reduced differences
between ES and GL APIs.
Stefanos A [Thu, 14 Nov 2013 22:38:17 +0000 (23:38 +0100)]
Removed debug leftovers
Stefanos A [Thu, 14 Nov 2013 16:40:06 +0000 (17:40 +0100)]
Corrected convenience wrappers for Get* and Delete*
GetBoolean, GetInteger6, GetFixedvOES and Delete* are now matched in
the convenience wrapper generator. Methods returning vectors of fixed
size (e.g. 4 ints) are no longer matched.
Stefanos A. [Thu, 14 Nov 2013 16:37:39 +0000 (17:37 +0100)]
Added workaround for wglMakeCurrent error 6
On some drivers and virtual machines, wglMakeCurrent may fail with a
code 6 when first called. The suggested workaround is to call it in a
loop until it succeeds. See
https://www.opengl.org/discussion_boards/showthread.php/171058-nVidia-wglMakeCurrent()-multiple-threads
Stefanos A [Thu, 14 Nov 2013 15:17:20 +0000 (16:17 +0100)]
AMD_performance_monitors is not const-correct
Workaround fo bug in rhe specification of AMD_performance_monitors.
Upstream bug report here:
https://www.khronos.org/bugzilla/show_bug.cgi?id=1035
Stefanos A [Thu, 14 Nov 2013 13:10:19 +0000 (14:10 +0100)]
Mark untyped overloads as obsolete
Stefanos A [Thu, 14 Nov 2013 12:46:42 +0000 (13:46 +0100)]
Added support for obsolete attribute
Functions marked with the obsolete attribute will now add [Obsolete] to
the generated output.
Stefanos A [Thu, 14 Nov 2013 10:35:32 +0000 (11:35 +0100)]
Regenerated bindings
Stefanos A [Thu, 14 Nov 2013 10:34:46 +0000 (11:34 +0100)]
ES11 compatibility overloads (WIP1)
Stefanos A [Thu, 14 Nov 2013 10:33:52 +0000 (11:33 +0100)]
Clear qualifier path when changing type
This fixes a bug where overriding an enum parameter with a non-enum
parameter would result in the wrong qualifier path.
Stefanos A [Thu, 14 Nov 2013 10:32:25 +0000 (11:32 +0100)]
New Add() methods analogous to FunctionCollection
Stefanos A [Thu, 14 Nov 2013 10:31:36 +0000 (11:31 +0100)]
Improved override/overload lookup
The lookup for function overrides and overloads now tries to work
around extension case mismatches (e.g. IBM vs Ibm). This fixes a few
specific cases of missing overrides.
Stefanos A [Wed, 13 Nov 2013 23:10:51 +0000 (00:10 +0100)]
Correctly set generator mode.
Stefanos A. [Thu, 14 Nov 2013 08:25:53 +0000 (09:25 +0100)]
Do not scale in normal-dpi modes
Stefanos A. [Thu, 14 Nov 2013 08:02:47 +0000 (09:02 +0100)]
Scale window size on hi-dpi mode
Follow high-dpi guidelines for scaling a window on high-dpi modes.
Stefanos A. [Thu, 14 Nov 2013 07:30:11 +0000 (08:30 +0100)]
Cleaned up context profile selection
Added support for WGL_create_context profiles and added methods for the
selection of context flags and profile.
Stefanos A. [Thu, 14 Nov 2013 07:29:06 +0000 (08:29 +0100)]
Corrected core profile selection
According to GLX_create_context, the correct flag for a core profile is
GLX_CONTEXT_CORE_PROFILE_BIT_ARB.
Stefanos A. [Thu, 14 Nov 2013 07:05:08 +0000 (08:05 +0100)]
Improved WinGLContext initialization
Cleaned up and added debugging information to the temporary context
construction in WinGLContext. Simplified WinGraphicsMode constructor.
Stefanos A. [Thu, 14 Nov 2013 00:43:40 +0000 (01:43 +0100)]
Added GetDeviceCaps (windows platform)
We will use this method to read out the logical DPI of the monitor and
scale window elements accordingly.
Stefanos A. [Wed, 13 Nov 2013 17:25:49 +0000 (18:25 +0100)]
Re-added WindowHandle property
There are projects that use reflection to access
*WindowInfo.WindowHandle directly. This change ensures we don't break
them.
Stefanos A. [Wed, 13 Nov 2013 13:29:06 +0000 (14:29 +0100)]
Corrected option parsing
thefiddler [Tue, 12 Nov 2013 22:39:43 +0000 (23:39 +0100)]
Added Version20 overload to StencilFuncSeparate
Compatibility fix for OpenTK 1.0
thefiddler [Tue, 12 Nov 2013 22:38:09 +0000 (23:38 +0100)]
Support multiple overloads
It is now possible to specify multiple overloads for the same function.
This is helpful for maintaining backwards compatibility with previous
releases.
Stefanos A. [Tue, 12 Nov 2013 19:38:02 +0000 (20:38 +0100)]
Hack for GLControl support
Added a hack to allow GLControl examples to run even if SDL is
installed.
Stefanos A. [Tue, 12 Nov 2013 19:37:23 +0000 (20:37 +0100)]
GLControl requires native backend
SDL does not currently support embedding into Windows Forms (this is an
upstream limitation.) To ensure that existing WinForms applications
continue to function even if SDL is installed, GLControl will now try to
initialize OpenTK with a native backend. The user can still override
this behavior using OpenTK.Toolkit.Init(ToolkitOptions), as normal.
Stefanos A. [Tue, 12 Nov 2013 19:34:53 +0000 (20:34 +0100)]
Cleaner startup sequence
OpenTK.Toolkit will now initialize OpenTK.Configuration and
OpenTK.Platform.Factory explicitly. It can also receive an optional
ToolkitOptions parameter to influence the OpenTK.Platform implementation
that will be chosen. Finally, it explicitly implements IDisposable to
clean up after itself.
Stefanos A. [Tue, 12 Nov 2013 19:32:31 +0000 (20:32 +0100)]
Refactored environment config detection
This significantly cleans up the startup sequence on all platforms:
- X11 is not detected on non-Linux platforms unless the user explicitly
requests it
- Supports selection of platform abstractions (SDL) vs native
implementations.
- Returns correct flags on Android and iOS.
This contains a semantic change: OpenTK.Configuration will not return
correct values until OpenTK.Toolkit.Init() has been called, either
directly or indirectly (e.g. by creating a window.)
Stefanos A. [Tue, 12 Nov 2013 19:22:08 +0000 (20:22 +0100)]
Added ToolkitOptions class
ToolkitOptions allows the user to influence the implementation of
OpenTK.Platform at runtime.
thefiddler [Tue, 12 Nov 2013 10:24:25 +0000 (11:24 +0100)]
Updated README file
thefiddler [Tue, 12 Nov 2013 09:58:20 +0000 (10:58 +0100)]
Added OpenAL/GL/GL ES documentation
thefiddler [Tue, 12 Nov 2013 01:03:46 +0000 (02:03 +0100)]
Merge branch 'master' of https://github.com/thefiddler/opentk
thefiddler [Tue, 12 Nov 2013 01:03:24 +0000 (02:03 +0100)]
Updated readme file
Stefanos A [Mon, 11 Nov 2013 10:45:15 +0000 (11:45 +0100)]
Merge branch 'modes'
Stefanos A. [Mon, 11 Nov 2013 10:44:21 +0000 (11:44 +0100)]
Cleaned up test code committed by mistake.
Stefanos A. [Mon, 11 Nov 2013 10:43:15 +0000 (11:43 +0100)]
Try to create Embedded context first
By mistake, this code would always create a desktop context. The correct
approach is to create an embedded (EGL) context and only fallback to
desktop if that doesn't work.
Stefanos A. [Mon, 11 Nov 2013 10:42:30 +0000 (11:42 +0100)]
Enabled SAMPLE_BUFFERS EGL attribute
This attribute is required for multisampling support.
thefiddler [Mon, 11 Nov 2013 09:03:24 +0000 (10:03 +0100)]
Generate overloads without strong enums for 1.0 compat
OpenTK 1.0 and Xamarin Android/iOS do not use strongly-typed enums for
OpenGL ES. Generate overloads with the "All" enum in order to maintain
compatibility.