mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-03-08 10:10:00 +00:00
Fixed starting coordinates (should now report position in absolute coordinates.) Updated data packet handling.
This commit is contained in:
parent
9a50727029
commit
8d6872f8b8
|
@ -153,6 +153,12 @@ namespace OpenTK.Platform.Windows
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.Print("Registered mouse {0}", mouse.ToString());
|
Debug.Print("Registered mouse {0}", mouse.ToString());
|
||||||
|
System.Drawing.Point p = new System.Drawing.Point();
|
||||||
|
if (Functions.GetCursorPos(ref p))
|
||||||
|
{
|
||||||
|
mouse.X = p.X;
|
||||||
|
mouse.Y = p.Y;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -189,32 +195,27 @@ namespace OpenTK.Platform.Windows
|
||||||
if ((rin.Data.Mouse.ButtonFlags & RawInputMouseState.BUTTON_5_DOWN) != 0) mouse[MouseButton.Button2] = true;
|
if ((rin.Data.Mouse.ButtonFlags & RawInputMouseState.BUTTON_5_DOWN) != 0) mouse[MouseButton.Button2] = true;
|
||||||
if ((rin.Data.Mouse.ButtonFlags & RawInputMouseState.BUTTON_5_UP) != 0) mouse[MouseButton.Button2] = false;
|
if ((rin.Data.Mouse.ButtonFlags & RawInputMouseState.BUTTON_5_UP) != 0) mouse[MouseButton.Button2] = false;
|
||||||
|
|
||||||
if (rin.Data.Mouse.ButtonFlags == RawInputMouseState.WHEEL)
|
if ((rin.Data.Mouse.ButtonFlags & RawInputMouseState.WHEEL) != 0)
|
||||||
{
|
mouse.Wheel += (short)rin.Data.Mouse.ButtonData / 120;
|
||||||
mouse.Wheel += rin.Data.Mouse.ButtonData / 120;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rin.Data.Mouse.Flags == RawMouseFlags.MOUSE_MOVE_ABSOLUTE)
|
if ((rin.Data.Mouse.Flags & RawMouseFlags.MOUSE_MOVE_ABSOLUTE) != 0)
|
||||||
{
|
{
|
||||||
//mouse.XDelta = rin.Data.Mouse.LastX - mouse.X;
|
|
||||||
//mouse.YDelta = rin.Data.Mouse.LastY - mouse.Y;
|
|
||||||
mouse.X = rin.Data.Mouse.LastX;
|
mouse.X = rin.Data.Mouse.LastX;
|
||||||
mouse.Y = rin.Data.Mouse.LastY;
|
mouse.Y = rin.Data.Mouse.LastY;
|
||||||
}
|
}
|
||||||
else if (rin.Data.Mouse.Flags == RawMouseFlags.MOUSE_MOVE_RELATIVE)
|
else
|
||||||
{
|
{ // Seems like MOUSE_MOVE_RELATIVE is the default, unless otherwise noted.
|
||||||
//mouse.XDelta = rin.Data.Mouse.LastX;
|
|
||||||
//mouse.YDelta = rin.Data.Mouse.LastY;
|
|
||||||
//mouse.X += mouse.XDelta;
|
|
||||||
//mouse.Y += mouse.YDelta;
|
|
||||||
mouse.X += rin.Data.Mouse.LastX;
|
mouse.X += rin.Data.Mouse.LastX;
|
||||||
mouse.Y += rin.Data.Mouse.LastY;
|
mouse.Y += rin.Data.Mouse.LastY;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
if ((rin.Data.Mouse.Flags & RawMouseFlags.MOUSE_VIRTUAL_DESKTOP) != 0)
|
||||||
|
Trace.WriteLine(String.Format("Mouse {0} defines MOUSE_VIRTUAL_DESKTOP flag, please report at http://www.opentk.com", mouse.ToString()));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new ApplicationException("WinRawMouse driver received keyboard data.");
|
throw new ApplicationException("WinRawMouse driver received invalid data.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue