mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-02-19 13:32:59 +01:00
Added ocornut-imgui key mapping.
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user