From ca231d854c53f4fa3b74ae25ed3d7cf03b40787a Mon Sep 17 00:00:00 2001 From: UnknownShadow200 Date: Thu, 23 Apr 2020 17:54:41 +1000 Subject: [PATCH] Camera struct was supposed to be exported to plugins, oops --- src/Camera.h | 2 +- src/Window.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Camera.h b/src/Camera.h index b3d5b30e5..780882996 100644 --- a/src/Camera.h +++ b/src/Camera.h @@ -9,7 +9,7 @@ struct RayTracer; struct Camera; /* Shared data for cameras. */ -extern struct _CameraData { +CC_VAR extern struct _CameraData { /* How sensitive camera is to movements of mouse. */ int Sensitivity; /* Whether smooth/cinematic camera mode is used. */ diff --git a/src/Window.c b/src/Window.c index 8b38f1af6..ca817817f 100644 --- a/src/Window.c +++ b/src/Window.c @@ -1837,12 +1837,18 @@ static void InitRawMouse(void) { return; } + /* Only XInput 2.0 is actually required. However, 2.0 has the annoying */ + /* behaviour where raw input is NOT delivered while pointer is grabbed. */ + /* (i.e. if you press mouse button, no more raw mouse movement events) */ + /* http://wine.1045685.n8.nabble.com/PATCH-0-9-Implement-DInput8-mouse-using-RawInput-and-XInput2-RawEvents-only-td6016923.html */ + /* Thankfully XInput >= 2.1 corrects this behaviour */ major = 2; minor = 2; if (XIQueryVersion(win_display, &major, &minor) != Success) { Platform_Log2("Only XInput %i.%i supported", &major, &minor); return; } + // todo multiply detla by 2 XISetMask(masks, XI_RawMotion); evmask.deviceid = XIAllMasterDevices; evmask.mask_len = sizeof(masks);