mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
InputCommon / DolphinQt / Core: Add a "RelativeMouse" input which provides the raw delta mouse input
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
This commit is contained in:
@ -7,6 +7,7 @@
|
||||
#include <windows.h>
|
||||
|
||||
#include "Common/Matrix.h"
|
||||
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
||||
#include "InputCommon/ControllerInterface/CoreDevice.h"
|
||||
#include "InputCommon/ControllerInterface/DInput/DInput8.h"
|
||||
|
||||
@ -14,14 +15,23 @@ namespace ciface::DInput
|
||||
{
|
||||
void InitKeyboardMouse(IDirectInput8* const idi8, HWND hwnd);
|
||||
|
||||
using RelativeMouseState = RelativeInputState<Common::TVec3<LONG>>;
|
||||
|
||||
class KeyboardMouse : public Core::Device
|
||||
{
|
||||
private:
|
||||
struct State
|
||||
{
|
||||
BYTE keyboard[256];
|
||||
|
||||
// Old smoothed relative mouse movement.
|
||||
DIMOUSESTATE2 mouse;
|
||||
|
||||
// Normalized mouse cursor position.
|
||||
Common::TVec2<ControlState> cursor;
|
||||
|
||||
// Raw relative mouse movement.
|
||||
RelativeMouseState relative_mouse;
|
||||
};
|
||||
|
||||
class Key : public Input
|
||||
@ -53,6 +63,7 @@ private:
|
||||
public:
|
||||
Axis(u8 index, const LONG& axis, LONG range) : m_axis(axis), m_range(range), m_index(index) {}
|
||||
std::string GetName() const override;
|
||||
bool IsDetectable() const override { return false; }
|
||||
ControlState GetState() const override;
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user