Clarify cursor position variable names

This commit is contained in:
Camilla Berglund 2016-05-24 12:23:58 +02:00
parent 72b3a7a59f
commit 0e846883bf
10 changed files with 50 additions and 47 deletions

View File

@ -78,7 +78,7 @@ typedef struct _GLFWwindowNS
// The total sum of the distances the cursor has been warped // The total sum of the distances the cursor has been warped
// since the last cursor motion event was processed // since the last cursor motion event was processed
// This is kept to counteract Cocoa doing the same internally // This is kept to counteract Cocoa doing the same internally
double warpDeltaX, warpDeltaY; double cursorWarpDeltaX, cursorWarpDeltaY;
} _GLFWwindowNS; } _GLFWwindowNS;

View File

@ -423,8 +423,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
if (window->cursorMode == GLFW_CURSOR_DISABLED) if (window->cursorMode == GLFW_CURSOR_DISABLED)
{ {
_glfwInputCursorMotion(window, _glfwInputCursorMotion(window,
[event deltaX] - window->ns.warpDeltaX, [event deltaX] - window->ns.cursorWarpDeltaX,
[event deltaY] - window->ns.warpDeltaY); [event deltaY] - window->ns.cursorWarpDeltaY);
} }
else else
{ {
@ -434,8 +434,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
_glfwInputCursorMotion(window, pos.x, contentRect.size.height - pos.y); _glfwInputCursorMotion(window, pos.x, contentRect.size.height - pos.y);
} }
window->ns.warpDeltaX = 0; window->ns.cursorWarpDeltaX = 0;
window->ns.warpDeltaY = 0; window->ns.cursorWarpDeltaY = 0;
} }
- (void)rightMouseDown:(NSEvent *)event - (void)rightMouseDown:(NSEvent *)event
@ -1402,8 +1402,8 @@ void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y)
const NSRect contentRect = [window->ns.view frame]; const NSRect contentRect = [window->ns.view frame];
const NSPoint pos = [window->ns.object mouseLocationOutsideOfEventStream]; const NSPoint pos = [window->ns.object mouseLocationOutsideOfEventStream];
window->ns.warpDeltaX += x - pos.x; window->ns.cursorWarpDeltaX += x - pos.x;
window->ns.warpDeltaY += y - contentRect.size.height + pos.y; window->ns.cursorWarpDeltaY += y - contentRect.size.height + pos.y;
if (window->monitor) if (window->monitor)
{ {

View File

@ -59,19 +59,19 @@ static void setCursorMode(_GLFWwindow* window, int newMode)
if (oldMode == GLFW_CURSOR_DISABLED) if (oldMode == GLFW_CURSOR_DISABLED)
{ {
_glfwPlatformSetCursorPos(window, _glfwPlatformSetCursorPos(window,
_glfw.cursorPosX, _glfw.restoreCursorPosX,
_glfw.cursorPosY); _glfw.restoreCursorPosY);
} }
else if (newMode == GLFW_CURSOR_DISABLED) else if (newMode == GLFW_CURSOR_DISABLED)
{ {
int width, height; int width, height;
_glfwPlatformGetCursorPos(window, _glfwPlatformGetCursorPos(window,
&_glfw.cursorPosX, &_glfw.restoreCursorPosX,
&_glfw.cursorPosY); &_glfw.restoreCursorPosY);
window->cursorPosX = _glfw.cursorPosX; window->virtualCursorPosX = _glfw.restoreCursorPosX;
window->cursorPosY = _glfw.cursorPosY; window->virtualCursorPosY = _glfw.restoreCursorPosY;
_glfwPlatformGetWindowSize(window, &width, &height); _glfwPlatformGetWindowSize(window, &width, &height);
_glfwPlatformSetCursorPos(window, width / 2, height / 2); _glfwPlatformSetCursorPos(window, width / 2, height / 2);
@ -198,11 +198,11 @@ void _glfwInputCursorMotion(_GLFWwindow* window, double x, double y)
if (x == 0.0 && y == 0.0) if (x == 0.0 && y == 0.0)
return; return;
window->cursorPosX += x; window->virtualCursorPosX += x;
window->cursorPosY += y; window->virtualCursorPosY += y;
x = window->cursorPosX; x = window->virtualCursorPosX;
y = window->cursorPosY; y = window->virtualCursorPosY;
} }
if (window->callbacks.cursorPos) if (window->callbacks.cursorPos)
@ -356,9 +356,9 @@ GLFWAPI void glfwGetCursorPos(GLFWwindow* handle, double* xpos, double* ypos)
if (window->cursorMode == GLFW_CURSOR_DISABLED) if (window->cursorMode == GLFW_CURSOR_DISABLED)
{ {
if (xpos) if (xpos)
*xpos = window->cursorPosX; *xpos = window->virtualCursorPosX;
if (ypos) if (ypos)
*ypos = window->cursorPosY; *ypos = window->virtualCursorPosY;
} }
else else
_glfwPlatformGetCursorPos(window, xpos, ypos); _glfwPlatformGetCursorPos(window, xpos, ypos);
@ -386,8 +386,8 @@ GLFWAPI void glfwSetCursorPos(GLFWwindow* handle, double xpos, double ypos)
if (window->cursorMode == GLFW_CURSOR_DISABLED) if (window->cursorMode == GLFW_CURSOR_DISABLED)
{ {
// Only update the accumulated position if the cursor is disabled // Only update the accumulated position if the cursor is disabled
window->cursorPosX = xpos; window->virtualCursorPosX = xpos;
window->cursorPosY = ypos; window->virtualCursorPosY = ypos;
} }
else else
{ {

View File

@ -359,13 +359,13 @@ struct _GLFWwindow
int maxwidth, maxheight; int maxwidth, maxheight;
int numer, denom; int numer, denom;
// Window input state
GLFWbool stickyKeys; GLFWbool stickyKeys;
GLFWbool stickyMouseButtons; GLFWbool stickyMouseButtons;
double cursorPosX, cursorPosY;
int cursorMode; int cursorMode;
char mouseButtons[GLFW_MOUSE_BUTTON_LAST + 1]; char mouseButtons[GLFW_MOUSE_BUTTON_LAST + 1];
char keys[GLFW_KEY_LAST + 1]; char keys[GLFW_KEY_LAST + 1];
// Virtual cursor position when cursor is disabled
double virtualCursorPosX, virtualCursorPosY;
_GLFWcontext context; _GLFWcontext context;
@ -437,7 +437,8 @@ struct _GLFWlibrary
int refreshRate; int refreshRate;
} hints; } hints;
double cursorPosX, cursorPosY; // Where to place the cursor when re-enabled
double restoreCursorPosX, restoreCursorPosY;
_GLFWcursor* cursorListHead; _GLFWcursor* cursorListHead;

View File

@ -201,8 +201,8 @@ static void handlePointerButton(_GLFWwindow* window,
static void handlePointerMotion(_GLFWwindow* window, static void handlePointerMotion(_GLFWwindow* window,
const MirPointerEvent* pointer_event) const MirPointerEvent* pointer_event)
{ {
int current_x = window->cursorPosX; int current_x = window->virtualCursorPosX;
int current_y = window->cursorPosY; int current_y = window->virtualCursorPosY;
int x = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_x); int x = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_x);
int y = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_y); int y = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_y);
int dx = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_hscroll); int dx = mir_pointer_event_axis_value(pointer_event, mir_pointer_axis_hscroll);

View File

@ -237,7 +237,7 @@ typedef struct _GLFWwindowWin32
GLFWbool iconified; GLFWbool iconified;
// The last received cursor position, regardless of source // The last received cursor position, regardless of source
int cursorPosX, cursorPosY; int lastCursorPosX, lastCursorPosY;
} _GLFWwindowWin32; } _GLFWwindowWin32;

View File

@ -572,14 +572,14 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg,
break; break;
_glfwInputCursorMotion(window, _glfwInputCursorMotion(window,
x - window->win32.cursorPosX, x - window->win32.lastCursorPosX,
y - window->win32.cursorPosY); y - window->win32.lastCursorPosY);
} }
else else
_glfwInputCursorMotion(window, x, y); _glfwInputCursorMotion(window, x, y);
window->win32.cursorPosX = x; window->win32.lastCursorPosX = x;
window->win32.cursorPosY = y; window->win32.lastCursorPosY = y;
if (!window->win32.cursorTracked) if (!window->win32.cursorTracked)
{ {
@ -1386,8 +1386,8 @@ void _glfwPlatformPollEvents(void)
// NOTE: Re-center the cursor only if it has moved since the last // NOTE: Re-center the cursor only if it has moved since the last
// call, to avoid breaking glfwWaitEvents with WM_MOUSEMOVE // call, to avoid breaking glfwWaitEvents with WM_MOUSEMOVE
if (window->win32.cursorPosX != width / 2 || if (window->win32.lastCursorPosX != width / 2 ||
window->win32.cursorPosY != height / 2) window->win32.lastCursorPosY != height / 2)
{ {
_glfwPlatformSetCursorPos(window, width / 2, height / 2); _glfwPlatformSetCursorPos(window, width / 2, height / 2);
} }
@ -1435,8 +1435,8 @@ void _glfwPlatformSetCursorPos(_GLFWwindow* window, double xpos, double ypos)
POINT pos = { (int) xpos, (int) ypos }; POINT pos = { (int) xpos, (int) ypos };
// Store the new position so it can be recognized later // Store the new position so it can be recognized later
window->win32.cursorPosX = pos.x; window->win32.lastCursorPosX = pos.x;
window->win32.cursorPosY = pos.y; window->win32.lastCursorPosY = pos.y;
ClientToScreen(window->win32.handle, &pos); ClientToScreen(window->win32.handle, &pos);
SetCursorPos(pos.x, pos.y); SetCursorPos(pos.x, pos.y);

View File

@ -224,10 +224,12 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height,
int width, height; int width, height;
_glfwPlatformGetWindowSize(window, &width, &height); _glfwPlatformGetWindowSize(window, &width, &height);
window->cursorPosX = width / 2; window->virtualCursorPosX = width / 2;
window->cursorPosY = height / 2; window->virtualCursorPosY = height / 2;
_glfwPlatformSetCursorPos(window, window->cursorPosX, window->cursorPosY); _glfwPlatformSetCursorPos(window,
window->virtualCursorPosX,
window->virtualCursorPosY);
} }
else else
{ {

View File

@ -118,9 +118,9 @@ typedef struct _GLFWwindowX11
int xpos, ypos; int xpos, ypos;
// The last received cursor position, regardless of source // The last received cursor position, regardless of source
double cursorPosX, cursorPosY; double lastCursorPosX, lastCursorPosY;
// The last position the cursor was warped to by GLFW // The last position the cursor was warped to by GLFW
int warpPosX, warpPosY; int warpCursorPosX, warpCursorPosY;
// The information from the last KeyPress event // The information from the last KeyPress event
struct { struct {

View File

@ -1149,7 +1149,7 @@ static void processEvent(XEvent *event)
const int x = event->xmotion.x; const int x = event->xmotion.x;
const int y = event->xmotion.y; const int y = event->xmotion.y;
if (x != window->x11.warpPosX || y != window->x11.warpPosY) if (x != window->x11.warpCursorPosX || y != window->x11.warpCursorPosY)
{ {
// The cursor was moved by something other than GLFW // The cursor was moved by something other than GLFW
@ -1159,15 +1159,15 @@ static void processEvent(XEvent *event)
return; return;
_glfwInputCursorMotion(window, _glfwInputCursorMotion(window,
x - window->x11.cursorPosX, x - window->x11.lastCursorPosX,
y - window->x11.cursorPosY); y - window->x11.lastCursorPosY);
} }
else else
_glfwInputCursorMotion(window, x, y); _glfwInputCursorMotion(window, x, y);
} }
window->x11.cursorPosX = x; window->x11.lastCursorPosX = x;
window->x11.cursorPosY = y; window->x11.lastCursorPosY = y;
return; return;
} }
@ -2071,8 +2071,8 @@ void _glfwPlatformGetCursorPos(_GLFWwindow* window, double* xpos, double* ypos)
void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y) void _glfwPlatformSetCursorPos(_GLFWwindow* window, double x, double y)
{ {
// Store the new position so it can be recognized later // Store the new position so it can be recognized later
window->x11.warpPosX = (int) x; window->x11.warpCursorPosX = (int) x;
window->x11.warpPosY = (int) y; window->x11.warpCursorPosY = (int) y;
XWarpPointer(_glfw.x11.display, None, window->x11.handle, XWarpPointer(_glfw.x11.display, None, window->x11.handle,
0,0,0,0, (int) x, (int) y); 0,0,0,0, (int) x, (int) y);