1
0
mirror of https://github.com/borgesdan/xn65 synced 2024-12-29 21:54:47 +01:00
xn65/framework/platform/mouse-dx.cpp
2024-05-21 20:43:37 -03:00

55 lines
1.3 KiB
C++

#include "input/mouse.hpp"
#include "platform-dx/implementations.hpp"
namespace xna {
MouseState Mouse::GetState() {
if (!impl || !impl->_dxMouse)
return MouseState();
const auto state = impl->_dxMouse->GetState();
MouseState mstate;
mstate.LeftButton = static_cast<ButtonState>(state.leftButton);
mstate.RightButton = static_cast<ButtonState>(state.rightButton);
mstate.MiddleButton = static_cast<ButtonState>(state.middleButton);
mstate.XButton1 = static_cast<ButtonState>(state.xButton1);
mstate.XButton2 = static_cast<ButtonState>(state.xButton2);
mstate.X = state.x;
mstate.Y = state.y;
mstate.ScroolWheelValue = state.scrollWheelValue;
return mstate;
}
bool Mouse::IsConnected() {
if (!impl || !impl->_dxMouse)
return false;
return impl->_dxMouse->IsConnected();
}
bool Mouse::IsVisible() {
if (!impl || !impl->_dxMouse)
return false;
return impl->_dxMouse->IsVisible();
}
void Mouse::IsVisible(bool value) {
if (!impl || !impl->_dxMouse)
return;
impl->_dxMouse->SetVisible(value);
}
void Mouse::ResetScrollWheel() {
if (!impl || !impl->_dxMouse)
return;
impl->_dxMouse->ResetScrollWheelValue();
}
void Mouse::Initialize() {
impl = uNew<PlatformImplementation>();
impl->_dxMouse = uNew<DirectX::Mouse>();
}
}