Added ocornut-imgui key mapping.

This commit is contained in:
Branimir Karadžić
2015-06-02 14:28:22 -07:00
parent 51d41041b7
commit aa99fe1313
3 changed files with 48 additions and 4 deletions

View File

@@ -89,10 +89,10 @@ struct Keyboard
return state;
}
static void decodeKeyState(uint32_t _state, uint8_t& _modifiers, bool& _down)
static bool decodeKeyState(uint32_t _state, uint8_t& _modifiers)
{
_modifiers = (_state>>16)&0xff;
_down = 0 != ( (_state>>8)&0xff);
return 0 != ( (_state>> 8)&0xff);
}
void setKeyState(entry::Key::Enum _key, uint8_t _modifiers, bool _down)
@@ -101,6 +101,14 @@ struct Keyboard
m_once[_key] = false;
}
bool getKeyState(entry::Key::Enum _key, uint8_t* _modifiers)
{
uint8_t modifiers;
_modifiers = NULL == _modifiers ? &modifiers : _modifiers;
return decodeKeyState(m_key[_key], *_modifiers);
}
void pushChar(uint8_t _len, const uint8_t _char[4])
{
for (uint32_t len = m_ring.reserve(4)
@@ -196,8 +204,7 @@ struct Input
for (const InputBinding* binding = _bindings; binding->m_key != entry::Key::None; ++binding)
{
uint8_t modifiers;
bool down;
Keyboard::decodeKeyState(m_keyboard.m_key[binding->m_key], modifiers, down);
bool down = Keyboard::decodeKeyState(m_keyboard.m_key[binding->m_key], modifiers);
if (binding->m_flags == 1)
{
@@ -302,6 +309,11 @@ void inputSetKeyState(entry::Key::Enum _key, uint8_t _modifiers, bool _down)
s_input->m_keyboard.setKeyState(_key, _modifiers, _down);
}
bool inputGetKeyState(entry::Key::Enum _key, uint8_t* _modifiers)
{
return s_input->m_keyboard.getKeyState(_key, _modifiers);
}
void inputChar(uint8_t _len, const uint8_t _char[4])
{
s_input->m_keyboard.pushChar(_len, _char);