2024-05-21 17:24:43 -03:00
|
|
|
#include "input/keyboard.hpp"
|
|
|
|
#include "platform-dx/implementations.hpp"
|
2024-04-24 11:44:41 -03:00
|
|
|
|
|
|
|
namespace xna {
|
2024-05-21 17:24:43 -03:00
|
|
|
KeyboardState Keyboard::GetState() {
|
2024-05-21 20:43:37 -03:00
|
|
|
if (!impl || !impl->_dxKeyboard)
|
2024-05-21 17:24:43 -03:00
|
|
|
return KeyboardState();
|
2024-04-24 11:44:41 -03:00
|
|
|
|
2024-05-21 17:24:43 -03:00
|
|
|
const auto state = Keyboard::impl->_dxKeyboard->GetState();
|
|
|
|
auto ptr = reinterpret_cast<const uint32_t*>(&state);
|
|
|
|
const auto xnaState = reinterpret_cast<const KeyboardState*>(ptr);
|
|
|
|
|
|
|
|
return *xnaState;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Keyboard::Initialize() {
|
|
|
|
impl = uNew<PlatformImplementation>();
|
|
|
|
impl->_dxKeyboard = uNew<DirectX::Keyboard>();
|
|
|
|
}
|
2024-05-21 20:43:37 -03:00
|
|
|
|
|
|
|
bool Keyboard::IsConnected() {
|
|
|
|
if (!impl || !impl->_dxKeyboard)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
return impl->_dxKeyboard->IsConnected();
|
|
|
|
}
|
2024-04-24 11:44:41 -03:00
|
|
|
}
|