thefiddler
8b7d5bc7e4
[Input] Implement key repeat
2014-05-05 00:43:45 +02:00
thefiddler
d968281a1b
[OpenTK] Refactor keyboard and mouse handling
...
A lot of duplicated code is now moved to NativeWindowBase and
LegacyInputDriver.
2014-05-04 17:05:08 +02:00
thefiddler
e155d647de
[X11] Added X11KeyMap.TranslateButton()
...
This code was duplicated on four different places before.
2014-05-04 17:04:03 +02:00
thefiddler
28a1849a72
[Mac] Moved MacOSKeys to MacOS namespace
...
They are used by both Carbon and Cocoa, so there is little reason to
keep them in MacOS.Carbon
2014-05-04 17:02:37 +02:00
thefiddler
2d5afcf0e8
[Input] Update state through HandleKey* events
2014-05-04 17:02:00 +02:00
thefiddler
268e8fccde
[Input] Removed pointless unsafe region
2014-05-04 17:01:34 +02:00
thefiddler
1096a8802a
[Input] Removed pointless ValuePrecise setter
2014-05-04 16:58:59 +02:00
thefiddler
7af710f4dd
[Input] Removed pointless MouseDevice.SetState
...
MouseDevice state should only be modified through its HandleMouse*
methods, not directly.
2014-05-04 16:58:24 +02:00
thefiddler
4b115c443b
[Mac] Add horizontal scrolling
2014-05-04 15:24:02 +02:00
thefiddler
30c73e8ead
[OpenTK] Raise NativeWindow.Mouse* events
2014-05-04 15:23:40 +02:00
thefiddler
9dab96c5c1
[Mac] Disable momentum scrolling and key pop-ups
...
We might wish to add an option to re-enable momentum scrolling, as this
might be useful to some applications for a more native feel.
2014-05-04 15:23:24 +02:00
thefiddler
15f5abe1e1
[Platform] Remove lambdas
2014-05-04 08:34:13 +02:00
thefiddler
1457e44309
[Examples] Hook both MouseDevice and Mouse events
...
They should give identical results.
2014-05-04 08:33:51 +02:00
thefiddler
67359a5d90
[Input] MouseDevice is now based on MouseState
...
This way we have a single state representation (MouseState), shared by
all mouse APIs and events.
2014-05-04 08:33:20 +02:00
thefiddler
e093fd23f6
[Mac] Avoid calling into LegacyInputDriver
2014-05-04 08:32:26 +02:00
thefiddler
ff46455e56
[X11] Removed legacy X11Input driver
...
Its functionality has been moved directly into X11GLNative and
X11KeyMap.
2014-05-04 08:32:08 +02:00
thefiddler
39eb3b1892
[Input] Improved MouseState.ToString()
2014-05-04 08:31:11 +02:00
thefiddler
94fdf1881c
[Platform] Improved mouse interface
...
- The complete mouse state is now available in mouse events
- Horizontal wheels are now supported
- MouseState now takes up less memory and has a simpler internal
implementation.
2014-05-04 01:29:55 +02:00
thefiddler
e85377c350
[Platform] Added support for horizontal wheel
2014-05-03 16:47:03 +02:00
thefiddler
842c0499b9
[SDL] Corrected SDL_Mouse* event structs
2014-05-02 17:39:00 +02:00
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
674cd54c29
[Mac] Fixed initial window position
...
Cocoa sets the desktop origin at the bottom-left of the main screen,
with +y going up. OpenTK is setting the origin at the top-left of the
main screen, so we need to invert the y-axis.
2014-05-02 15:13:38 +02:00
thefiddler
3824f55f18
[Mac] Fixed cursor coords when CursorVisible=false
2014-05-02 14:21:32 +02:00
thefiddler
89fc36bde1
[Platform] Added INativeWindow.Mouse* events
2014-05-02 14:18:52 +02:00
thefiddler
612652910f
[Platform] Inherit NativeWindowBase
2014-05-02 14:18:40 +02:00
thefiddler
300203f73b
[Mac] Use On* methods from base class
2014-05-02 09:41:27 +02:00
thefiddler
10939fcaec
[OpenTK] Add On* methods to raise events
2014-05-02 09:37:25 +02:00
thefiddler
24b19d2487
[Input] Added internal MouseDevice.Position getter
2014-05-02 09:37:25 +02:00
thefiddler
f2eca2924f
[Mac] Inherit from NativeWindowBase
...
This reduces code duplication significantly.
2014-05-02 09:37:25 +02:00
thefiddler
5ba1bf89f1
[OpenTK] Added NativeWindowBase
...
This acts as a common base class to INativeWindow implementations and
can be used to reduce code duplication.
2014-05-02 09:34:14 +02:00
thefiddler
495ded54d8
[Examples] Use Key.Enter to capture mouse
2014-05-01 23:56:25 +02:00
thefiddler
60f58c2ffd
[Examples] Fixed cursor hotspot
2014-05-01 22:17:06 +02:00
thefiddler
9bd94c1f13
[Examples] Improved MouseCursor example
2014-05-01 17:03:47 +02:00
thefiddler
9ee728d4fc
[Win] Only set MouseCursor in client area
...
This is required according to the windows documentation.
2014-05-01 16:49:23 +02:00
thefiddler
9988a2ba9c
[SDL][Win] Destroy custom cursor on Close()
...
X11 destroys the cursor after setting it and Cocoa uses an autorelease
pool, so that should not be necessary there.
2014-05-01 14:27:20 +02:00
thefiddler
c8c0d32fcc
[OpenTK] Rearranged MouseCursor parameters
...
MouseCursor and WindowIcon now match GL.TexImage2D in the way they
arrange their parameters. The expected values of each parameter are now
documented.
2014-04-30 20:04:31 +02:00
thefiddler
8568e6dc70
[SDL] Fixed MouseCursor getting stuck after multiple changes
2014-04-30 13:46:44 +02:00
thefiddler
a5ddc530c2
[SDL] Fixed custom MouseCursor
2014-04-30 13:36:16 +02:00
thefiddler
bee833e712
[Example] Test custom cursor
2014-04-30 09:06:30 +02:00
thefiddler
e63970e2be
[Mac] Fixed cursor byte order
2014-04-30 09:06:18 +02:00
thefiddler
2632661d8a
[OpenTK] Fixed compilation error
2014-04-30 08:45:27 +02:00
thefiddler
965c8baa7f
[OpenTK] Renamed x/y to hotx/hoty
...
The new name matches their functionality closer.
2014-04-30 08:44:48 +02:00
thefiddler
890805f2ae
[Platform] Renamed MouseCursor.Rgba to Argb
...
This matches the default format of System.Drawing.Bitmap.
2014-04-30 08:38:57 +02:00
thefiddler
7d8f14baa7
[Mac] Implement NSCursor rectangles
2014-04-30 08:38:19 +02:00
thefiddler
d013ef1868
[Platform] Make MouseCursor actor public
2014-04-30 08:37:34 +02:00
thefiddler
0ed1e8b6d8
[Win] Log wglSwapIntervalEXT errors
...
Note that we cannot use Marshal.GetLastWin32Error because we are not
using regular DllImports for WGL extensions.
2014-04-29 08:48:49 +02:00
thefiddler
f2dc40abdd
[OpenTK] Query the driver for VSyncMode getter
...
Otherwise, the user could call Context.SwapInterval directly, causing
the vsync property to fall out of sync.
2014-04-29 08:31:47 +02:00
thefiddler
3da459b316
[All] Fixed checks for EXT_swap_control_tear
...
EGL and NSOpenGL do not offer an EXT_swap_control_tear equivalent so
use regular vsync for now. The relevant extension string is now
correctly checked on WGL and GLX.
2014-04-29 08:10:18 +02:00
thefiddler
ab6b3c211c
[Mac] Removed unused CarbonGLNative.cs
2014-04-28 17:17:34 +02:00
thefiddler
88a60b14c5
[Mac] Remove call to NewEventHandlerUPP
...
NewEventHandlerUPP fails to load when running through MonoKickstart. It
appears that this function is only used for old PPC systems that had
trouble with function pointers - sample code online indicates that we
do not need to call this.
2014-04-28 16:25:23 +02:00