Commit graph

786 commits

Author SHA1 Message Date
Stefanos A fb86334835 HIDPI support requires SDL > 2.0.0
SDL_GL_GetDrawableSize was introduced after 2.0.0, so we need to check for that version before we call this method. Fixes MethodNotFounException on vanilla libsdl2-2.0.0 on linux.
2013-10-07 14:17:42 +03:00
Stefanos A d81bedf5f8 Moved all input processing to Sdl2InputDriver
This reduces the duplication of code between Sdl2NativeWindow and
Sdl2InputDriver. Sdl2InputDriver is now solely responsible for handling
input.
2013-10-04 10:02:19 +02:00
Stefanos A bad2b7b6d7 Implemented IDisposable in Sdl2Joystick
Sdl2Joystick calls SDL_JoystickOpen, which means we must call
SDL_JoystickClose on shutdown.
2013-10-04 10:00:57 +02:00
Stefanos A 79def664b8 No separate Factory.Embedded for SDL2
Sdl2Factory supports both desktop and embedded profiles, there is no
need to construct a separate Embedded profile.
2013-10-04 09:57:43 +02:00
Stefanos A 17b4f62151 Sdl2JoystickDriver.Poll() and axis fixes 2013-10-04 02:37:41 +02:00
Stefanos A af67a96759 Initial implementation of IJoystickDriver API 2013-10-04 01:39:22 +02:00
Stefanos A b4c29d802b Add support for HiDPI modes
When HiDPI is enabled, the size of the OpenGL surface (specified in
pixels) may no longer correspond to the size of the window (specified
in points). Width, Height, ClientSize and ClientRectangle return the
size of the OpenGL surface in device-dependent pixel coordinates
(origin: top-left pixel of the surface). Bounds and Size return the
size of the window in device-independent point coordinates (origin:
desktop).
2013-10-04 01:38:19 +02:00
Stefanos A. b3a0b78454 Use locale-independent scancodes
This significantly improves the usability of keyboard input, by allowing
a common input scheme to be used on different keyboard layouts. Text
input will be facilitated through a new API.
2013-10-03 20:53:34 +02:00
Stefanos A. 3f81bc26d4 Removed support for < Windows XP
The support burden for Windows versions prior to XP was too large, plus
the relevant code was completely untested. Removing that will allow us
to focus on the things that really matter.
2013-10-03 20:51:36 +02:00
Stefanos A 913c4f16e6 Throw extension if context creation fails
This aligns behavior with that of the other platforms.
2013-10-03 17:22:13 +02:00
Stefanos A. 0e221a0ce5 Load ES entry points even on desktop
Some drivers / operating systems export ES entry points as extensions on regular "desktop" GraphicsContexts. Attempt to load them even if the user has not explicitly asked for an ES context.
2013-10-03 16:42:38 +02:00
Stefanos A be7200d37e Merge branch 'sdl2' of https://github.com/thefiddler/opentk
Conflicts:
	Source/OpenTK/Platform/SDL2/Sdl2NativeWindow.cs
2013-10-03 15:11:59 +02:00
Stefanos A. f2eda16458 Serialize Sdl2NativeWindow methods
This change, along with moving DestroyWindow() to the Dispose() method
fixes crashes on shutdown.
2013-10-03 14:59:30 +02:00
Stefanos A. 3c867838e6 Reload WGL entry points in WinGLContext()
This fixes AccessViolationException when creating multiple contexts on
Intel hardware.
2013-10-03 14:04:34 +02: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. 5051190b01 MouseButtonUp and MouseMove fixes
MouseMove no longer leaves the window borders when the cursor is
invisible. MouseButtonUp events are now reported even when they occur
outside the window. This aligns SDL2 behavior with the native drivers.
2013-10-02 17:55:30 +02:00
Stefanos A. b077597bc1 Create Sdl2NativeWindow hidden
This conforms to the other platform drivers and looks better in general
(no delay between window creation and OpenGL context creation.)
2013-10-02 16:31:22 +02:00
Stefanos A. 4d7ba20a03 Fixed unsetting current context in SDL2
SDL_GL_MakeCurrent(IntPtr.Zero, IntPtr.Zero) is the correct way to
remove the current OpenGL context from the calling thread. Fixes
threaded rendering on Windows.
2013-10-02 16:26:47 +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 6360156d99 Added Sync object for SDL 2013-10-02 01:13:06 +02:00
Stefanos A c77439ea6b Marked class as partial
This allows extension of the class without touching the upstream code.
2013-10-02 01:12:12 +02:00
Stefanos A 31f2df094b Fixed invalid version string on git
Git commit hashcodes are not compatible with the 16bit integer values found in .Net version numbers. Use the git commit count as a version number instead.
2013-10-02 00:05:59 +02:00
Stefanos A. 7460452b26 MakeCurrent(null) should make context non-current
This fixes the crash in the "GameWindow Threading" example.
2013-10-01 22:13:33 +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 5bb23585b9 Merge remote-tracking branch 'origin/master' into sdl2 2013-09-30 18:29:55 +02:00
Stefanos A. ddd070579a Workaround for NRE on WinRawMouse driver
On some systems, the Windows Raw Input driver fails to find the name of
a mouse device, causing a NRE. Since the name is not vital information,
a dummy name is generated as a workaround.
2013-09-30 18:27:13 +02:00
Stefanos A. ea0c845eb0 Attempted to fix key modifier state
SDL2 does not report keydown and keyup events on modifiers keys until
you release them. Attempted to fix this using SDL_GetModifierState, but
this does not appear to work. Should hit upstream.
2013-09-30 14:20:33 +02:00
Stefanos A. c53773f4ec Use scancodes for KeyboardDevice states
This resolves the issue where different layouts would return different
keys when pressing the same physical key. A new API must be introduced
for text input.
2013-09-30 13:51:31 +02:00
Stefanos A. 5e35411dd1 Fixed return values of keyboard functions
SDL_GetKeyFromScancode and SDL_GetScancodeFromKey should return a
SDL_Keycode or SDL_Scancode respectively, instead of void.
2013-09-30 13:49:53 +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. 7cb3965e25 Made internal SDL2 API private 2013-09-30 12:22:51 +02:00
Stefanos A. 5a55cb5cca Implemented SDL2 mouse and keyboard drivers 2013-09-30 12:22:25 +02:00
Stefanos A. cfdb5bc95a Free SDL surface after updating the window icon
The SDL surface is no longer needed and will cause a memory leak if not
freed. Additionally, the decoded BitmapData should not be unlocked until
after updating the window icon, as it may be moved by the GC otherwise.
2013-09-29 23:36:28 +02:00
Stefanos A. 420ec232f3 Fixed decoding of Icons
The rgba mask for decoding icon surfaces was incorrect. Icons should
appear as expected now.
2013-09-29 23:08:51 +02:00
Stefanos A. 6245ffe3ef Updated license information 2013-09-27 23:07:23 +02:00
Stefanos A. 2666125b24 Implemented WindowState, WindowBorder and Icon
SDL2 suffers many of the issues we encountered when implementing
OpenTK.Platform.Windows. Workarounds are now in place to make
WindowState changes behave reasonably.
2013-09-27 23:01:46 +02:00
Stefanos A. 56d7e4e564 Use OpenGL window flag and switch to "fake" fullscreen mode
The OpenGL flag is required when using SDL2 on Windows. Fake fullscreen
works much better on modern monitors and systems with multiple monitors.
2013-09-27 18:57:05 +02:00
Stefanos A. 5df5447ff9 Add debug message when context creation fails 2013-09-27 18:55:58 +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
thefiddler 89845d5ff9 Integrated sdl2-cs bindings for sdl2
This is using the sdl2/pure branch of https://github.com/thefiddler/SDL2-CS.git which contains the SDL2 bindings without MiniTK.
2013-09-27 14:33:52 +02:00
thefiddler 3989b94e68 Merge commit 'ed45dddb98c8250a33505c953b6c60bf7a854ffb' as 'Source/OpenTK/Platform/SDL2/sdl2-cs' 2013-09-27 14:26:50 +02:00
thefiddler 2e1bcaf280 Added support for high-dpi mode on Windows.
The platform factory for windows now calls SetProcessDPIAware
in order to enable support for high-dpi modes. The relevant
DllImport has been added to API.cs
2013-09-26 01:35:59 +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
zastrowm e7ba5e789f Update whitespace issues to conform to the rest of the document 2013-04-26 21:09:12 -05:00
zastrowm 5f336dd9f9 Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas
Change WinRawMouse.ProcessMouseEvents to call code directly instead of using lambdas.  The lambdas caused memory allocations and were unneeded
2013-04-26 21:06:08 -05:00
Dean Ellis 9a39949249 Merge pull request #1 from elisee/fix-client-rectangle-setter
Fix ClientRectangle setter on Windows (WinGL) & Linux (X11)
2013-03-22 16:29:36 -05:00
Tom Edwards 6c35e8ef24 Merge remote-tracking branch 'origin/ScanCodeKeyboardBranch' 2013-02-17 14:58:16 +00:00
Jacob Hauberg Hansen af74d97903 Fix NullPointerException on Windows 8. 2013-01-26 14:27:26 +01: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 bf1401e115 Fixed the issues caused by merging in our changes as patches from the old repo. 2013-01-16 18:08:03 -08:00
Robert Rouhani 819c02c445 More hacking for gamepads 2013-01-16 17:59:52 -08:00
Robert Rouhani b5591e1eee Started implementing GamePad 2013-01-16 17:56:31 -08:00
Andy Korth fa422dca2a Fix Windows 8 Keyboard, OpenTK issue 3198 2013-01-14 13:09:55 -06:00
Andy Korth 5b0db16a89 Mouse up events in Windows occur regardless of where on the screen the cursor is. OpenTK issue 2133 2012-12-21 21:12:59 -06: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 224a296220 Address mouse on windows 8 for OpenTK issue 3198 2012-12-20 15:18:52 -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 1e739bb4ff Added minimal SystemEvents definition to allow compilation on mobile devices. 2011-12-08 00:14:36 +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 5d61e042a0 GraphicsMode was not set when initializing a DummyGLContext with an explicit handle. Corrected now. 2011-12-06 21:54:20 +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 9c6a4bb2df Fixed coordinate transform for CursorVisible = false on Windows. Fixes issue [#2416]: "Hided mouse cursor problem".
Removed unnecessary constructors from Win32Rectangle struct.
2011-08-25 13:38:08 +00:00
the_fiddler 544de30874 Fixed eglGetProcAddress entry point (was eglCopyBuffer). 2011-05-07 18:52:47 +00:00
the_fiddler da5371e92b Added PFD_SUPPORT_COMPOSITION on Vista and higher, to avoid inadvertently disabling Aero.
Allow non-accelerated formats when all accelerated ones fail. Fixes issue [#2224]: "Getting GraphicsModeException from WinGraphicsMode constructor".
2011-02-09 00:23:43 +00:00
the_fiddler d19244feb5 Add DrawToWindow and SupportOpenGL flags to GetModesARB and check whether Wgl.Arb.ChoosePixelFormat() worked correctly (to avoid undefined results). 2011-01-18 22:34:06 +00:00
the_fiddler 774374efc0 * Egl.cs:
* EglContext.cs:
* EglGraphicsMode.cs: Added a parameter to indicate which ES renderer
  version we wish to use. Fixes issue [#2247]: "CreateEGLGraphicsMode
  should select the correct renderer".
2011-01-18 00:29:38 +00:00
the_fiddler d22c7312d9 * EglWindowInfo.cs: Corrected error checking for
CreateWindowSurface. Fixes issue [#2248]: "EGL CreateWindowSurface
  function is incorrect".
2011-01-17 23:55:48 +00:00
the_fiddler a964d3a9de * EglGraphicsMode.cs:
Removed unused Egl.GetConfigs call.
2011-01-14 10:28:37 +00:00
the_fiddler b987b10c70 * EglGraphicsMode.cs:
Added missing RENDERABLE_TYPE bits to EGL mode selection. This is
required by the OpenGL ES spec.
2011-01-14 01:57:59 +00:00
the_fiddler 26075f0243 Do not try to register device when device description is empty. 2010-12-03 12:29:01 +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 1d33d1000e [Win32] Implemented Mouse.SetPosition via SetCursorPos. This was refreshingly simple, the function works exactly as expected! (unlike XWarpPointer on X11) 2010-11-23 22:10:49 +00:00
the_fiddler 23eaef0c70 Avoid loading Wgl entry points automatically. This is now explicitly done through WinGLContext. 2010-11-23 22:08:53 +00:00
the_fiddler 45a623a873 * X11Mouse.cs: Updated comments to clarify the capabilities of the driver. 2010-11-23 19:26:35 +00:00
the_fiddler 32a564c990 * XI2Mouse.cs: Removed unused code. 2010-11-23 19:21:28 +00:00
the_fiddler 88cbcc3a04 * X11Mouse.cs: Added SetPosition() implementation.
Added detection of pointer warping and used it to fake relative
  motion.
2010-11-23 19:21:17 +00:00
the_fiddler 07cbb9dd8b * Input/Mouse.cs:
* Input/IMouseDriver2.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/XI2Mouse.cs:
* Platform/X11/Functions.cs:
* Platform/Windows/WMInput.cs:
* Platform/X11/X11GLNative.cs:
* Platform/Windows/WinRawMouse.cs: Added ability to set the position
  of the mouse cursor.
[X11] Avoid grabbing the pointer, as this causes unexpected
  side-effects (XInput2 stops working, debugging becomes difficult).
  We now use XWarpPointer and try to discard the spurious MouseMove
  events it generates.
[X11] Make cursor visible when window loses focus, to make debugging
  easier. Restore previous state when it regains focus.
2010-11-23 17:17:13 +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 d9eaf4562c Improved and simplified behavior of RelaxParameters. Removed unused code. 2010-11-11 19:32:22 +00:00
the_fiddler e0736a69bc Added workaround for zoom-in/zoom-out keys on Microsoft Digital 3000 keyboard. These keys report 0 as a device id, but no such device exists. 2010-11-09 15:19:58 +00:00
the_fiddler 529a376d77 * X11GLNative.cs: Added missing KeyDown/KeyUp events. 2010-11-09 11:52:14 +00:00
the_fiddler daf7c83dc8 Capture ButtonUp events after ButtonDown even if the mouse leaves the window. 2010-11-09 08:55:55 +00:00
the_fiddler e8373def1b Use async input to poll the keyboard/mouse. 2010-11-08 22:19:44 +00:00
the_fiddler 2e0a6c8a96 Reverted to wait for messages. 2010-11-08 22:19:19 +00:00
the_fiddler 3726c9b94f Removed obsolete System.Windows.Forms reference. 2010-11-08 21:47:24 +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 c2d6f0c091 Refactored input drivers in terms of WinInputBase to reduce code duplication. 2010-11-08 21:43:29 +00:00
the_fiddler 0533a6be23 Minor spelling fix.
Use POINT structure instead of System.Drawing.Point.
2010-11-08 21:41:44 +00:00
the_fiddler e5928f2b8d WinRawInput requires Windows 5.1 (XP) or higher. 2010-11-08 21:40:43 +00:00
the_fiddler 13a07273ba Removed unimplement SetPixelFormatARB - no such function exists.
Added aggressive locking during context creation and delegate loading in order to avoid potential race conditions.
Now uses Wgl.Imports directly wherever possible in order to improve performance and avoid race conditions.
Slightly improved debugging messages.
2010-11-08 21:38:32 +00:00
the_fiddler 452d8924e6 Minor cosmetic fixes. Removed unused code. 2010-11-08 21:36:10 +00:00
the_fiddler e1e1be49c4 Removed WinForms dependency and performed general code cleanup. 2010-11-08 19:48:01 +00:00
the_fiddler 6bb01d4cbb Added GraphicsModeComparer for GraphicsMode comparisons.
Added WinInputBase as a base abstraction for all win32 input class.
2010-11-08 19:45:58 +00:00
the_fiddler fd3e1850b7 Retrieve all pixel formats at once and select the correct one through a custom selection predicate. Simplifies the code significantly and reduces the chance of race conditions. 2010-11-08 19:41:24 +00:00
the_fiddler d08438785e Avoid reference to System.Windows.Forms.
Pass a concrete GraphicsMode to the context constructor in SelectPixelFormatARB to avoid NRE.
2010-11-08 16:01:50 +00:00
the_fiddler 206a6530a4 Removed duplicate success message. 2010-11-08 15:58:42 +00:00
the_fiddler d65e0aad47 Release both shift keys when one is released. Otherwise, we end up with stuck keys. 2010-11-08 08:59:32 +00:00
the_fiddler 666355103b * XI2Mouse.cs:
* X11Factory.cs: Removed window hooking, as it complicates code
  unnecessarily.
2010-11-04 18:01:07 +00:00
the_fiddler b646cfa06c * X11KeyMap.cs: Added AltGr keycode.
* X11Mouse.cs: Use XQueryPointer instead of trying to hook events.

* X11Keyboard.cs: Improved handling of key modifiers.

* X11Factory.cs: Use new X11Mouse API.

* Functions.cs: Added XButtonGrab/XButtonUngrab.

* API.cs: Added missing XF86 keysyms.
2010-11-04 17:57:09 +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 915f8e559f * X11Keyboard.cs: Use XQueryKeymap to discover key state.
* X11Factory.cs: Use new X11Keyboard interface.
Temporarily disabled XI2Mouse for testing.

* Functions.cs: Fixed type declaration for Time.
Added support for XIGrabDevice, XIUngrabDevice, XGrabKey, XUngrabKey,
  XAllowEvents and XKeycodeToKeysym/XKeysymToKeycode.

* API.cs: Enumerate modes for XAllowEvents.
2010-11-01 08:01:44 +00:00
the_fiddler 2c5e7220c3 Implemented KeyboardState.IsConnected property.
Implemented WinRawKeyboard.RefreshDevices().
General code clean-up and beautification.
2010-10-29 11:46:57 +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 c1043d1693 Do not modify device state during the GetState() call. Fixes intermittent crashes. 2010-10-28 13:00:21 +00:00
the_fiddler 0044e4442d Modified GetState() to return the combined state for all mouse/keyboard devices. 2010-10-28 11:10:57 +00:00
the_fiddler c99571acac Fixed capacity parameter for GetWindowText(). Fixed debug string format that is printed when GetWindowText() fails. 2010-10-28 10:36:28 +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 b7a0a7c800 Removed unused field. 2010-10-28 09:01:54 +00:00
the_fiddler ec01b1caae Don't shadow class field. 2010-10-28 09:01:43 +00:00
the_fiddler 5ff74aa685 Suppressed unused field warnings. The fields are necessary for interop, even if not explicitly accessed. 2010-10-28 09:01:25 +00:00
the_fiddler d56478c5b2 Minor cosmetic change. 2010-10-28 08:43:36 +00:00
the_fiddler 1bef154d36 Implemented WinRawKeyboard input driver. 2010-10-28 08:42:38 +00:00
the_fiddler 40c2576e06 Avoid numeric overflow when printing debug message. 2010-10-28 08:42:20 +00:00
the_fiddler fa0abf0d51 Minor fixes for code clarity. 2010-10-28 08:13:42 +00:00
the_fiddler 2430f82ff7 Implemented raw keyboard input for Windows. Improved the interface for receiving input. Moved raw input window to its own thread. 2010-10-22 14:57:06 +00:00
the_fiddler 75c71107a3 Initial implementation of raw mouse input on Windows. 2010-10-22 13:41:42 +00:00
the_fiddler b2ccc8f089 Fixed CursorVisible getter.
If necessary, re-grab the cursor whenever the window changes position/size.
2010-10-22 13:36:05 +00:00
the_fiddler 327941be33 Implemented PointToScreen and fixed mouse grab rectangle to match the client rectangle exactly. 2010-10-22 13:22:28 +00:00
the_fiddler bb01babfbd * XI2Mouse.cs:
* X11Factory.cs: Detect whether XInput2 is not supported without
  throwing an exception.
2010-10-22 07:41:56 +00:00
the_fiddler d49b315ced * Input/Mouse.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/XI2Mouse.cs: Added internal list of mouse devices in
  preparation for multi-mouse support.
2010-10-21 14:53:10 +00:00
the_fiddler 671457b60a * OpenTK.csproj:
* Input/MouseState.cs:
* Platform/X11/Structs.cs:
* Platform/X11/XI2Mouse.cs:
* Platform/X11/Functions.cs:
* Platform/X11/X11Factory.cs: Added XInput2 driver for mice.
  Multi-mouse support pending.

* Platform/X11/X11Mouse.cs: Log the driver type for debugging
  purposes.
2010-10-21 12:32:00 +00:00
the_fiddler e638652d01 * Platform/X11/X11Keyboard.cs: Added index bounds check for
GetState.
2010-10-21 07:56:48 +00:00
the_fiddler 7947cad6f8 * OpenTK.csproj:
* Input/MouseState.cs:
* Input/ButtonState.cs:
* Platform/X11/X11Mouse.cs:
* Platform/X11/X11Factory.cs: Added initial implementation of
  OpenTK.Input.Mouse for X11.
2010-10-21 07:56:37 +00:00
the_fiddler 1529f811ac * X11Keyboard.cs: Do not allocate an X11WindowInfo unnecessarily. 2010-10-20 15:16:55 +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 7c0dbf7dcf * Source/OpenTK/Platform/X11/X11GLNative.cs: Confine pointer to
window when it becomes invisible.
2010-10-20 09:50:49 +00:00
the_fiddler 3b72054480 * Source/OpenTK/Platform/X11/X11GLNative.cs: Refactored empty cursor
creation into its own function. Create one empty cursor for the
  lifetime of the window.
2010-10-20 09:19:34 +00:00