thefiddler
a9ab3650da
[Mac] Do not store *State structs directly
...
Storing Mouse/KeyboardState structs directly makes updates more
difficult than they should be. It is simpler to create simple classes
instead.
2014-01-05 23:58:05 +01:00
thefiddler
fda2d32d2d
[Mac] Map GamePads, MultiAxisControllers and Wheels to joysticks
2014-01-05 22:44:58 +01:00
thefiddler
a1123834a0
[Mac] Call DeviceRemoved() in Dispose() event
...
The necessary cleanup code already exists in DeviceRemoved(). No need
to duplicate this in the Dispose() event.
2014-01-05 22:38:26 +01:00
thefiddler
ab85afd5ba
[Mac] Avoid IOHIDDeviceConformsTo call in DeviceRemoved handler
...
DeviceAdded already checks that devices conform to the desired usage
pages. Checking again in DeviceRemoved is unnecessary - if a device
exists, then it has already passed muster.
2014-01-05 22:36:01 +01:00
thefiddler
9e223486f6
[Mac] Implement Joystick.GetGuid()
2014-01-05 22:15:55 +01:00
thefiddler
5c5afb3ea3
[Mac] Calculate joystick Guid for USB devices
2014-01-05 22:06:19 +01:00
thefiddler
b458b40683
[Mac] Use out/ref parameters instead of unsafe pointers in bindings
2014-01-05 22:05:54 +01:00
thefiddler
fa386dc991
[Mac] Connect devices to first available index
2014-01-05 21:53:28 +01:00
thefiddler
05af21e61b
[Mac] Do not call CFRelease on HID properties
...
HID properties are callee-owned and should not be released by the
caller. Fixes crash (memory corruption) on device hot plugging.
2014-01-05 21:27:34 +01:00
thefiddler
02c9f471ea
[Mac] DllImport must be marked as extern
2014-01-05 21:18:20 +01:00
thefiddler
7388bd935d
[Mac] Correctly unschedule HIDManager from run loop
2014-01-05 20:17:03 +01:00
thefiddler
4c7f6a92a7
[Mac] Don't let exceptions escape to unmanaged code
2014-01-05 04:20:51 +01:00
thefiddler
892d129e54
[Mac] Fixed DllEntryPointNotFound crash on device unplugging
2014-01-05 04:15:30 +01:00
thefiddler
2ee24efb2f
[Mac] Implemented joystick buttons
2014-01-05 04:11:11 +01:00
thefiddler
fad42994e1
[Mac] Implemented joystick axis movement
2014-01-05 03:54:53 +01:00
thefiddler
59249c2624
[Mac] Implemented joystick device detection
2014-01-05 03:03:46 +01:00
thefiddler
07bcda0f57
[Mac] Retrieve HID joystick name
2014-01-05 02:42:47 +01:00
thefiddler
6dadbd3570
[Mac] Implemented necessary CFString methods
2014-01-05 02:42:33 +01:00
thefiddler
32653d2c64
[Mac] Construct JoystickDevice when joysticks are connected
2014-01-05 00:47:40 +01:00
thefiddler
bf8efea121
[Mac] Only add callbacks for recognized USB HID devices
2014-01-05 00:00:49 +01:00
thefiddler
c44b477388
[Mac] Implement device added/removed events for joysticks
2014-01-04 23:58:59 +01:00
thefiddler
9659a1d786
[Mac] Add skeleton HID input implementation for joysticks
2014-01-04 23:55:38 +01:00
thefiddler
3a63496b6d
Merge branch 'gamepad' into develop
...
Conflicts:
Source/OpenTK/OpenTK.csproj
2014-01-03 02:23:02 +01:00
thefiddler
53552b0070
[Input] Corrected malformed documentation comments
2014-01-03 02:17:42 +01:00
thefiddler
8649e4a044
[Input] Added SetVibration() API skeleton
2014-01-02 19:52:00 +01:00
thefiddler
b513e35ea8
[SDL2] Implemented PacketNumber property
2014-01-02 19:24:38 +01:00
thefiddler
1ccf7e5ad2
[Input] Added PacketNumber property
2014-01-02 19:24:15 +01:00
thefiddler
b5d42b7992
[Input] Implemented GetState() and simplified GetCapabilities()
2014-01-02 18:37:53 +01:00
thefiddler
bf5d2a738d
[Input] Made configuration database non-static
2014-01-02 02:42:51 +01:00
thefiddler
9e4827bf67
[SDL2] Fixed SDL_JoystickGetGUID capitalization
2014-01-02 02:20:51 +01:00
thefiddler
fb57a9062d
[Input] Renamed GamePadMap to GamePadConfiguration
2014-01-02 01:38:12 +01:00
thefiddler
dc1ffab78d
[Input] Implemented IGamePadDriver.GetName()
2014-01-02 01:34:21 +01:00
thefiddler
a0dad7f698
[Input] Implemented MappedGamePadDriver.GetCapabilities()
2014-01-02 01:13:20 +01:00
thefiddler
b9a8e365de
[Input] Added IJoystickDriver2.GetGuid() API
2013-12-31 14:09:17 +01:00
thefiddler
cd143af60a
[SDL2] Added JoystickGetGUID method
2013-12-31 14:08:28 +01:00
thefiddler
1687518ef5
[SDL2] Add compile-time check for SDL2 GameController vs MappedGamePadDriver
2013-12-31 11:46:40 +01:00
thefiddler
d4348c5083
[SDL2] Fixed joystick/controller hotplugging support
2013-12-30 17:22:45 +01:00
thefiddler
9c8a5f5028
[SDL2] Fixed GameControllerButton to Buttons translation
2013-12-30 17:15:49 +01:00
thefiddler
43ef78f222
[SDL2] Fix issue where changes to mutable struct were lost
2013-12-30 17:09:20 +01:00
thefiddler
9beb396c9e
[SDL2] Explicitly enable joystick and gamepad events
2013-12-30 17:08:42 +01:00
Stefanos A.
6faa58aac3
[SDL2] Fixed joystick hotplugging
...
SDL2 uses a weird system of device ids and instance ids to report
joystick events, where the ADDED event uses a device id and the rest use
instance ids.
The SDL2 joystick driver is now fixed to correctly distinguish between
the two, which fixes hotplugging support for joystick devices.
2013-12-30 15:24:48 +01:00
thefiddler
52b8762593
[SDL2] Fixed mapping of instance ids to device ids
2013-12-30 14:57:28 +01:00
thefiddler
1b0a72472e
[SDL] Use TranslateAxis() to decode ControllerAxisEvent
...
SDL GameControllerAxis and GamePadAxes are not interchangeable. The
driver will now correctly interpret incoming SDL messages and update
the GamePadState for the relevant axis.
2013-12-30 13:42:37 +01:00
thefiddler
0b8db7c40b
[X11] Removed unused variable
2013-12-30 10:25:17 +01:00
thefiddler
4005710b99
[X11] Fixed current resolution detection.
2013-12-30 09:23:33 +01:00
thefiddler
5cebaccfca
[Dummy] Improved thread-safety; added entry-point loader
...
DummyGLContext will now attempt to load OpenGL and OpenGL ES entry
points when a suitable OpenGL context is current on the calling thread.
This allows OpenTK to be used on contexts created through third-party
toolkits.
2013-12-28 01:09:59 +01:00
thefiddler
8bcbb06f8e
[Platform] Added internal CreateGetAddress() function
...
CreateGetAddress() constructs a GraphicsContext.GetAddressDelegate that
is suitable for the current platform. This can be used when combining
OpenTK with an OpenGL context created through a third-party toolkit.
2013-12-28 01:08:24 +01:00
thefiddler
cf76aa6085
[Mac] Moved GetAddress implementation to its own class
...
The functions defined in libdl.dylib are useful in more places than
just AglContext. Moving them to their own class ensures we can access
these from wherever we might need them.
2013-12-28 01:06:33 +01:00
thefiddler
9171977079
[SDL2] Added missing [SuppressUnamangedCodeSecurity] attribute
2013-12-28 01:04:46 +01:00
thefiddler
b79d951e62
[Mac] Use Cgl.GetCurrentContext instead of Agl
...
CGL appears to work with both AGL and NSOpenGL contexts, whereas AGL is
limited to AGL contexts. This allows us to be more flexible in terms of
implementation (i.e. we can use Cgl.GetCurrentContext to retrieve a
handle to a context created through SDL, which uses NSOpenGL
internally.)
2013-12-28 01:04:22 +01:00