summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/common/entry/entry_x11.cpp
diff options
context:
space:
mode:
author ImJezze <jezze@gmx.net>2016-02-21 11:35:58 +0100
committer ImJezze <jezze@gmx.net>2016-02-21 11:35:58 +0100
commitb5daabda5495dea5c50e17961ecfed2ea8619d76 (patch)
treef192bedcd7939c68d40a75a1901239be7f52de07 /3rdparty/bgfx/examples/common/entry/entry_x11.cpp
parente57c90084c5d1dd9f6cdb0bbbf8782dc4f369cda (diff)
parentc24b31a077c2103b27e4df67d3be825c0c7d379d (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.cpp35
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
+ );
+ }
+ }
+
}
}
}