Implement RawInput (WIP)
This commit is contained in:
@@ -174,7 +174,9 @@ void InputSettings::Deserialize(DeserializeStream& stream, ISerializeModifier* m
|
||||
void Mouse::OnMouseMoved(const Float2& newPosition)
|
||||
{
|
||||
_prevState.MousePosition = newPosition;
|
||||
_prevState.MouseWasReset = true;
|
||||
_state.MousePosition = newPosition;
|
||||
_state.MouseWasReset = true;
|
||||
}
|
||||
|
||||
void Mouse::OnMouseDown(const Float2& position, const MouseButton button, Window* target)
|
||||
@@ -221,6 +223,14 @@ void Mouse::OnMouseMove(const Float2& position, Window* target)
|
||||
e.MouseData.Position = position;
|
||||
}
|
||||
|
||||
void Mouse::OnMouseMoveDelta(const Vector2& delta, Window* target)
|
||||
{
|
||||
Event& e = _queue.AddOne();
|
||||
e.Type = EventType::MouseMoveDelta;
|
||||
e.Target = target;
|
||||
e.MouseData.Position = delta;
|
||||
}
|
||||
|
||||
void Mouse::OnMouseLeave(Window* target)
|
||||
{
|
||||
Event& e = _queue.AddOne();
|
||||
@@ -245,6 +255,7 @@ void Mouse::ResetState()
|
||||
_state.Clear();
|
||||
}
|
||||
|
||||
#include "Engine/Core/Log.h"
|
||||
bool Mouse::Update(EventQueue& queue)
|
||||
{
|
||||
// Move the current state to the previous
|
||||
@@ -256,6 +267,7 @@ bool Mouse::Update(EventQueue& queue)
|
||||
|
||||
// Handle events
|
||||
_state.MouseWheelDelta = 0;
|
||||
_state.MouseDelta = Vector2::Zero;
|
||||
for (int32 i = 0; i < _queue.Count(); i++)
|
||||
{
|
||||
const Event& e = _queue[i];
|
||||
@@ -286,6 +298,11 @@ bool Mouse::Update(EventQueue& queue)
|
||||
_state.MousePosition = e.MouseData.Position;
|
||||
break;
|
||||
}
|
||||
case EventType::MouseMoveDelta:
|
||||
{
|
||||
_state.MouseDelta += e.MouseData.Position;
|
||||
break;
|
||||
}
|
||||
case EventType::MouseLeave:
|
||||
{
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user