Commit graph

17 commits

Author SHA1 Message Date
thefiddler 3e33ac9280 [Platform] Refactored INativeWindow backends
All INativeWindow implementations are now derived from
NativeWindowBase. They no longer implement legacy IInputDriver
themselves, but rather rely on LegacyInputDriver provided by
NativeWindowBase for compatibility. They also implement the new Mouse*
events.
2014-05-02 16:52:11 +02:00
thefiddler 94c3c24bfb [OpenTK] Platform backends should inherit from PlatformFactoryBase
This reduces code duplication wrt deprecated interfaces and common
support code between backends.
2014-01-06 14:49:05 +01:00
Stefanos A 7e5307bd4a Added IJoystickDevice2 interface 2013-12-24 17:18:03 +01:00
Stefanos A 1d61bd9dd2 Reuse Sdl2Factory.InputDriver in Sdl2NativeWindow 2013-12-24 17:18:01 +01:00
Stefanos A 694869dc05 Implemented resolution change workaround on SDL2
SDL2 does not support changing display resolutions independently of an
SDL window. As a workaround, if the user uses ChangeResolution and then
makes a GameWindow fullscreen, we use old-style SDL fullscreen which
changes the resolution. If the user makes a GameWindow fullscreen
without calling ChangeResolution first, we use the new
fullscreen-desktop mode to match the other OpenTK backends.
2013-12-13 00:07:13 +01:00
Stefanos A. 1d19a80b53 Removed incorrect comment 2013-11-20 13:05:49 +01:00
Stefanos A e0ffd9b42d More sane Sdl2Factory.CreateGetCurrentContext() implementation 2013-11-08 15:26:52 +01:00
Stefanos A 28fa768257 Fixed platform detection for Android
Conflicts:
	Source/OpenTK/Configuration.cs
2013-11-08 10:54:50 +01:00
Stefanos A d217e379d4 Added support for OpenGL ES through SDL2
If SDL2 is supported, the PlatformFactory will now use it for creating the OpenGL ES context. Previously, it would revert to the native drivers when GraphicsContextFlag.Embedded was specified.
2013-10-03 11:17:21 +02:00
Stefanos A 40cfcfaf25 Improved diagnostics in Dispose()
Leaked and disposed resources are now always reported.
2013-10-02 01:14:26 +02:00
Stefanos A a85cecdc59 Improved resource disposal
Added IDisposable interface to all classes holding native data that must be freed. OpenTK.Toolkit.Init() now returns an IDisposable instance that can be used to cleanup all native data held by OpenTK. This is useful when re-initializing OpenTK (possibly in a new AppDomain), as is the case in the Example browser.
2013-10-01 22:01:27 +02:00
Stefanos A. b57e58dc47 Implemented Sdl2GLControl
SDL2 still fails with "not an OpenGL window".
2013-09-30 20:47:29 +02:00
Stefanos A. 2d19edf3fe Renamed Sdl2InputBase to Sdl2InputDriver
Sdl2InputDriver describes the role and function of this class more
accurately.
2013-09-30 13:13:02 +02:00
Stefanos A. 5a55cb5cca Implemented SDL2 mouse and keyboard drivers 2013-09-30 12:22:25 +02:00
Stefanos A. 6245ffe3ef Updated license information 2013-09-27 23:07:23 +02:00
Stefanos A. 3398902940 Use Wgl.Import.GetCurrentContext DllImport directly
Wgl is implemented using the regular DllImport + delegate approach, in
order to support extensions. The delegates have not been armed at this
point, so we need to use the DllImport directly.

The whole wgl API should be revisited (we are using only a tiny
portion.)
2013-09-27 18:55:38 +02:00
thefiddler 6d0b5eb49f Implemented SDL2 platform using sdl2-cs
This is a new platform that can be used then sdl2 is installed on the target system. SDL2 is commercially supported by Valve and provides better support for MacOS compared to our current implementation (Cocoa vs Carbon). It will also help us introduce faster support for new platforms. Existing platforms remain as a fallback and will be automatically used if sdl2 is not installed.

Please note that this is still a work in progress. The new mouse and keyboard API is not supported yet. Due to limitations of sdl2, multiple mice/keyboards are also not supported.
2013-09-27 14:41:37 +02:00