Commit graph

89 commits

Author SHA1 Message Date
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
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
David Jeske cce40d60b0 fix MacOS bug mapping modifier keys to the scancode array 2013-08-10 19:50:05 -07:00
David Jeske 2c29df6296 added support for smooth trackpad scrolling on macos 2013-08-09 23:20:49 -07:00
Andy Korth 0f64af130a Committing artfunkel patch for scan codes 2013-01-24 15:48:01 -06:00
Andy Korth 2a0ad3ef6f A few minor comments 2013-01-17 14:45:57 -06:00
Robert Rouhani b5591e1eee Started implementing GamePad 2013-01-16 17:56:31 -08:00
Andy Korth c98d9e4503 Supress printing of some keyboard non-errors. 2012-12-21 18:43:19 -06:00
Andy Korth 39c3f3f543 Replication project for Mac OS mouse input issue, and fix. OpenTK issues 3242 and 2800 2012-12-21 17:11:39 -06:00
Andy Korth bef7ecd1ed Fix incorrect Mac OS key map, OpenTK issue 3220 2012-12-20 13:45:00 -06:00
the_fiddler e838aa7953 Use Debug.WriteLine instead of Debug.Print on a single-parameter string. Fixes compilation on mobile devices. 2011-12-08 00:17:08 +00:00
the_fiddler 41e0c65dcb Avoid using the global namespace in the MINIMAL configuration, as it confuses the Mono compiler. 2011-12-08 00:10:03 +00:00
the_fiddler 4fde3c4dab Added conditional compilation and the necessary classes to compile OpenTK without referencing System.Drawing.dll. To build without System.Drawing, add "MINIMAL" to the conditional compilation symbols. Note that this is an experimental feature that will result in a source- and binary-incompatible dll. 2011-12-08 00:03:14 +00:00
the_fiddler 809d369c52 Implemented IGraphicsContext.SwapInterval property that supersedes IGraphicsContext.VSync. Fixes issue [#2671]: "Expose SwapInterval to GameWindow". 2011-09-06 12:06:30 +00:00
the_fiddler 1bfd143b96 * Platform/MacOS/HIDInput.cs, Platform/MacOS/MacOSFactory.cs:
Added support for raw keyboard input.
2010-11-30 23:23:42 +00:00
the_fiddler 5b3c08f463 * Platform/MacOS/CarbonGLNative.cs:
Fixed handling of key repeat.
Fixed crash when unknown key is pressed.
2010-11-30 23:22:56 +00:00
the_fiddler 455acac6f8 * MacOS/CarbonGLNative.cs:
Removed unnecessary debug information.
2010-11-26 13:32:52 +00:00
the_fiddler df4339433a * EventInfo.cs, AglContext.cs, MacOSKeyMap.cs, Application.cs,
CarbonInput.cs, CarbonGLNative.cs, MacOSException.cs,
CarbonBindings/Agl.cs, CarbonBindings/CarbonAPI.cs,
CarbonBindings/MacOSKeys.cs, CarbonBindings/SpeechChannel.cs,
CarbonBindings/CoreFoundation.cs,
CarbonBindings/QuartzDisplayServicesAPI.cs:
Normalized licensing information.
2010-11-26 11:41:45 +00:00
the_fiddler 75aa2a1dc1 * Platform/MacOS/CarbonGLNative.cs:
Implemented CursorVisible property. Aligned mouse behavior to win32 &
x11. General code cleanup.
2010-11-26 11:01:51 +00:00
the_fiddler ed08f068c7 * Platform/MacOS/CarbonBindings/QuartzDisplayServicesAPI.cs:
Added support for mouse control.
2010-11-26 11:00:57 +00:00
the_fiddler 42663d1a70 * Platform/MacOS/CarbonBindings/CarbonAPI.cs:
Added support for mouse delta events.
2010-11-26 11:00:27 +00:00
the_fiddler 859216b94b Disabled event suppression after cursor movements. 2010-11-26 10:59:08 +00:00
the_fiddler 2c0b024158 Implemented SetPosition in terms of CGWarpMouseCursorPosition.
Added constructors to HIPoint.
2010-11-25 00:30:16 +00:00
the_fiddler 1fc495a06f Implemented new multi-mouse API on Mac
OS X.
2010-11-24 23:49:40 +00:00
the_fiddler efc864de76 Use main run loop for input callbacks. This way we don't have to run the loop ourselves.
Unregister callbacks for removed devices.
2010-11-24 13:13:14 +00:00
the_fiddler 72a38b36cb Device discovery now works correctly. Added support for input value callbacks. 2010-11-24 12:50:08 +00:00
the_fiddler 1626b3a835 * MacOSGraphicsMode.cs:
* CarbonBindings/Agl.cs: Added AGL-based GraphicsMode detection on Mac
  OS X. Fixes issue [#1679]: "GraphicsMode returns hardcoded mode on
  Mac OS X".
2010-11-24 00:55:19 +00:00
the_fiddler 4fd279534b * OpenTK.csproj:
* Platform/MacOS/HIDInput.cs:
* Platform/MacOS/MacOSFactory.cs:
* Platform/MacOS/CarbonBindings/CoreFoundation.cs: Initial work on HID
  input manager.
2010-11-22 15:57:26 +00:00
the_fiddler 6c0da79687 Refactored and simplified DisplayDevice detection (devices are now stored in the platform-specific drivers instead of the frontend).
Made XRR resolution changes more robust.
Resolution changes now refresh the DisplayDevices on Windows.
2010-11-21 20:16:18 +00:00
the_fiddler 9706c9040b Added new KeyDown and KeyUp events. 2010-11-08 21:45:15 +00:00
the_fiddler a3177540b7 Removed dependency on System.Windows.Forms. 2010-11-08 21:44:56 +00:00
the_fiddler 7e344e2ac2 * EventInfo.cs:
* AglContext.cs:
* MacOSKeyMap.cs:
* CarbonInput.cs:
* Application.cs:
* MacOSFactory.cs:
* CarbonGLNative.cs:
* CarbonWindowInfo.cs:
* MacOSGraphicsMode.cs:
* QuartzDisplayDeviceDriver.cs: Normalized code formatting.
2010-11-02 19:49:24 +00:00
the_fiddler 2934c9d004 Decoupled new driver API from old public interface.
WinRawMouse can now detect mouse disconnection/connection events.
2010-10-29 11:27:40 +00:00
the_fiddler a070918e93 Removed events that are not part of the INativeWindow interface. 2010-10-28 09:34:13 +00:00
the_fiddler e13a8e25ae Added code to raise all available events. Removed unused events from old OpenTK versions. Fixed potential race condition when raising events (an event might become null between the null check and the actual raising). 2010-10-28 09:31:00 +00:00
the_fiddler 86588ea60c * Source/OpenTK/Input/Mouse.cs:
* Source/OpenTK/Platform/Factory.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/IMouseDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/IPlatformFactory.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinFactory.cs:
* Source/OpenTK/Platform/MacOS/MacOSFactory.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawMouse.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs: Added new MouseDriver
  interface and added stub internal implementations.
2010-10-20 14:58:38 +00:00
the_fiddler e801660ff7 * Source/OpenTK/OpenTK.csproj:
* Source/OpenTK/Input/Keyboard.cs:
* Source/OpenTK/Input/InputDriver.cs:
* Source/OpenTK/Input/KeyboardState.cs:
* Source/OpenTK/Input/IKeyboardDriver.cs:
* Source/OpenTK/Platform/X11/X11Input.cs:
* Source/OpenTK/Platform/X11/Functions.cs:
* Source/OpenTK/Platform/X11/X11Factory.cs:
* Source/OpenTK/Platform/Windows/WMInput.cs:
* Source/OpenTK/Platform/X11/X11Keyboard.cs:
* Source/OpenTK/Platform/MacOS/CarbonInput.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/Windows/WinRawInput.cs:
* Source/OpenTK/Platform/Windows/WinRawKeyboard.cs: Added initial
  OpenTK.Input.Keyboard implementation for X11.
2010-10-20 14:33:23 +00:00
the_fiddler a18825a062 * Source/OpenTK/Platform/MacOS/CarbonGLNative.cs: Removed unused
code.
2010-10-18 16:14:50 +00:00
the_fiddler 42e0880cbb * Source/OpenTK/NativeWindow.cs:
* Source/OpenTK/INativeWindow.cs:
* Source/OpenTK/Platform/X11/API.cs:
* Source/OpenTK/Platform/X11/X11GLNative.cs:
* Source/OpenTK/Platform/Windows/WinGLNative.cs:
* Source/OpenTK/Platform/MacOS/CarbonGLNative.cs:
* Source/Examples/OpenTK/Test/GameWindowStates.cs: Initial
  implementation of CursorVisible API. See issue [#1560].
2010-10-18 15:25:25 +00:00
the_fiddler 1f4b5be7d0 Synced trunk with 1.0 branch. 2010-10-02 18:52:34 +00:00
the_fiddler 3f8f9b09e3 Synced with 1.0 branch. 2010-03-11 22:53:11 +00:00
the_fiddler da7e4c7252 Backported bugfixes from 1.0 branch. 2010-02-03 19:04:42 +00:00
kanato ea5b4f9f06 * Platform/MacOS/CarbonGLNative.cs: Fix width/height properties on Mac OS X. 2010-01-11 22:08:00 +00:00
the_fiddler f12cbf1cd5 Synced trunk with 1.0 branch. 2009-11-16 18:45:41 +00:00
kanato 62b65af462 MacOS: Hack for AGL to have access to the display device specified when a NativeWindow is created. 2009-11-09 07:50:21 +00:00
kanato 56412367c4 MacOS: Detect display boundaries so created windows are placed in the right spot. 2009-11-09 07:39:38 +00:00
kanato c605a05ffb MacOS: Fix event from user clicking close box to properly report that window doesn't exist anymore. 2009-11-09 07:18:54 +00:00
the_fiddler e35f9d5374 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). 2009-11-08 23:02:53 +00:00
the_fiddler 2e418e5b6b Update the context when the native window is resized. 2009-11-06 21:56:35 +00:00