2024-04-16 16:13:36 -03:00
|
|
|
#ifndef XNA_PLATFORM_KEYBOARD_DX_HPP
|
|
|
|
#define XNA_PLATFORM_KEYBOARD_DX_HPP
|
|
|
|
|
|
|
|
#include "../input/keyboard.hpp"
|
|
|
|
#include <Keyboard.h>
|
|
|
|
|
|
|
|
namespace xna {
|
|
|
|
struct KeyboardState : public IKeyboardState {
|
|
|
|
public:
|
|
|
|
KeyboardState() = default;
|
|
|
|
KeyboardState(DirectX::Keyboard::State const& state) :_state(state) {}
|
|
|
|
|
|
|
|
virtual bool IsKeyDown(Keys key) const override {
|
|
|
|
const auto k = static_cast<DirectX::Keyboard::Keys>(key);
|
|
|
|
return _state.IsKeyDown(k);
|
|
|
|
}
|
|
|
|
|
|
|
|
virtual bool IsKeyUp(Keys key) const override {
|
|
|
|
const auto k = static_cast<DirectX::Keyboard::Keys>(key);
|
|
|
|
return _state.IsKeyUp(k);
|
|
|
|
}
|
|
|
|
|
2024-04-16 19:27:05 -03:00
|
|
|
public:
|
2024-04-16 16:13:36 -03:00
|
|
|
DirectX::Keyboard::State _state{};
|
|
|
|
};
|
|
|
|
|
|
|
|
class Keyboard : public IKeyboard {
|
|
|
|
public:
|
|
|
|
Keyboard() = default;
|
|
|
|
|
2024-04-16 19:27:05 -03:00
|
|
|
public:
|
|
|
|
inline static sptr<DirectX::Keyboard> _dxKeyboard = New<DirectX::Keyboard>();
|
2024-04-16 16:13:36 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
inline KeyboardState IKeyboard::GetState() {
|
|
|
|
|
|
|
|
const auto state = Keyboard::_dxKeyboard->GetState();
|
|
|
|
return KeyboardState(state);
|
|
|
|
}
|
|
|
|
|
|
|
|
inline bool IKeyboard::IsConnected() {
|
|
|
|
return Keyboard::_dxKeyboard->IsConnected();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|