diff options
author | 2016-02-21 11:35:58 +0100 | |
---|---|---|
committer | 2016-02-21 11:35:58 +0100 | |
commit | b5daabda5495dea5c50e17961ecfed2ea8619d76 (patch) | |
tree | f192bedcd7939c68d40a75a1901239be7f52de07 /3rdparty/bgfx/examples/common/entry/entry_x11.cpp | |
parent | e57c90084c5d1dd9f6cdb0bbbf8782dc4f369cda (diff) | |
parent | c24b31a077c2103b27e4df67d3be825c0c7d379d (diff) |
Merge remote-tracking branch 'refs/remotes/mamedev/master'
Resolved Conflicts:
- src/osd/modules/render/d3d/d3dhlsl.cpp
Diffstat (limited to '3rdparty/bgfx/examples/common/entry/entry_x11.cpp')
-rw-r--r-- | 3rdparty/bgfx/examples/common/entry/entry_x11.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/3rdparty/bgfx/examples/common/entry/entry_x11.cpp b/3rdparty/bgfx/examples/common/entry/entry_x11.cpp index a058479fabb..8ced748dcbe 100644 --- a/3rdparty/bgfx/examples/common/entry/entry_x11.cpp +++ b/3rdparty/bgfx/examples/common/entry/entry_x11.cpp @@ -61,6 +61,23 @@ namespace entry GamepadAxis::RightZ, }; + struct AxisDpadRemap + { + Key::Enum first; + Key::Enum second; + }; + + static AxisDpadRemap s_axisDpad[] = + { + { Key::GamepadLeft, Key::GamepadRight }, + { Key::GamepadUp, Key::GamepadDown }, + { Key::None, Key::None }, + { Key::GamepadLeft, Key::GamepadRight }, + { Key::GamepadUp, Key::GamepadDown }, + { Key::None, Key::None }, + }; + BX_STATIC_ASSERT(BX_COUNTOF(s_translateAxis) == BX_COUNTOF(s_axisDpad) ); + struct Joystick { Joystick() @@ -135,6 +152,24 @@ namespace entry if (filter(axis, &value) ) { _eventQueue.postAxisEvent(defaultWindow, handle, axis, value); + + if (Key::None != s_axisDpad[axis].first) + { + if (m_value[axis] == 0) + { + _eventQueue.postKeyEvent(defaultWindow, s_axisDpad[axis].first, 0, false); + _eventQueue.postKeyEvent(defaultWindow, s_axisDpad[axis].second, 0, false); + } + else + { + _eventQueue.postKeyEvent(defaultWindow + , 0 > m_value[axis] ? s_axisDpad[axis].first : s_axisDpad[axis].second + , 0 + , true + ); + } + } + } } } |