Add glfwGetEventTime for querying input event time

Fixes #1012.
This commit is contained in:
Felipe Ferreira da Silva
2017-05-11 17:15:16 -03:00
committed by Camilla Löwy
parent 16ae02ab85
commit c577ae4b0e
16 changed files with 135 additions and 12 deletions
+31
View File
@@ -446,6 +446,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)mouseDown:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_LEFT,
GLFW_PRESS,
@@ -454,11 +456,15 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)mouseDragged:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
[self mouseMoved:event];
}
- (void)mouseUp:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_LEFT,
GLFW_RELEASE,
@@ -467,6 +473,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)mouseMoved:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
if (window->cursorMode == GLFW_CURSOR_DISABLED)
{
const double dx = [event deltaX] - window->ns.cursorWarpDeltaX;
@@ -490,6 +498,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)rightMouseDown:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_RIGHT,
GLFW_PRESS,
@@ -498,11 +508,15 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)rightMouseDragged:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
[self mouseMoved:event];
}
- (void)rightMouseUp:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_RIGHT,
GLFW_RELEASE,
@@ -511,6 +525,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)otherMouseDown:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
(int) [event buttonNumber],
GLFW_PRESS,
@@ -519,11 +535,15 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
- (void)otherMouseDragged:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
[self mouseMoved:event];
}
- (void)otherMouseUp:(NSEvent *)event
{
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputMouseClick(window,
(int) [event buttonNumber],
GLFW_RELEASE,
@@ -588,6 +608,8 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
const int key = translateKey([event keyCode]);
const int mods = translateFlags([event modifierFlags]);
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputKey(window, key, [event keyCode], GLFW_PRESS, mods);
[self interpretKeyEvents:[NSArray arrayWithObject:event]];
@@ -619,6 +641,9 @@ static const NSRange kEmptyRange = { NSNotFound, 0 };
{
const int key = translateKey([event keyCode]);
const int mods = translateFlags([event modifierFlags]);
_glfw.ns.lastEventTime = [event timestamp];
_glfwInputKey(window, key, [event keyCode], GLFW_RELEASE, mods);
}
@@ -1462,6 +1487,12 @@ void _glfwPlatformSetWindowFloating(_GLFWwindow* window, GLFWbool enabled)
[window->ns.object setLevel:NSNormalWindowLevel];
}
double _glfwPlatformGetEventTime(void)
{
/* Windows events are stored in seconds */
return _glfw.ns.lastEventTime;
}
void _glfwPlatformPollEvents(void)
{
for (;;)