Prechádzať zdrojové kódy

Revamped cursor mode test.

Camilla Berglund 11 rokov pred
rodič
commit
c64d2787f8
1 zmenil súbory, kde vykonal 19 pridanie a 30 odobranie
  1. 19 30
      tests/peter.c

+ 19 - 30
tests/peter.c

@@ -1,5 +1,5 @@
 //========================================================================
-// Cursor input bug test
+// Cursor mode test
 // Copyright (c) Camilla Berglund <[email protected]>
 //
 // This software is provided 'as-is', without any express or implied
@@ -23,10 +23,7 @@
 //
 //========================================================================
 //
-// This test came about as the result of bugs #1262764, #1726540 and
-// #1726592, all reported by the user peterpp, hence the name
-//
-// The utility of this test outside of these bugs is uncertain
+// This test allows you to switch between the various cursor modes
 //
 //========================================================================
 
@@ -39,20 +36,6 @@ static GLboolean reopen = GL_FALSE;
 static double cursor_x;
 static double cursor_y;
 
-static void toggle_cursor(GLFWwindow* window)
-{
-    if (glfwGetInputMode(window, GLFW_CURSOR) == GLFW_CURSOR_DISABLED)
-    {
-        printf("Released cursor\n");
-        glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
-    }
-    else
-    {
-        printf("Captured cursor\n");
-        glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
-    }
-}
-
 static void error_callback(int error, const char* description)
 {
     fprintf(stderr, "Error: %s\n", description);
@@ -60,30 +43,36 @@ static void error_callback(int error, const char* description)
 
 static void cursor_position_callback(GLFWwindow* window, double x, double y)
 {
-    printf("Cursor moved to: %f %f (%f %f)\n", x, y, x - cursor_x, y - cursor_y);
+    printf("%0.3f: Cursor position: %f %f (%f %f)\n",
+           glfwGetTime(),
+           x, y, x - cursor_x, y - cursor_y);
+
     cursor_x = x;
     cursor_y = y;
 }
 
 static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
 {
+    if (action != GLFW_PRESS)
+        return;
+
     switch (key)
     {
-        case GLFW_KEY_SPACE:
-        {
-            if (action == GLFW_PRESS)
-                toggle_cursor(window);
+        case GLFW_KEY_D:
+            glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);
+            break;
 
+        case GLFW_KEY_H:
+            glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_HIDDEN);
             break;
-        }
 
-        case GLFW_KEY_R:
-        {
-            if (action == GLFW_PRESS)
-                reopen = GL_TRUE;
+        case GLFW_KEY_N:
+            glfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
+            break;
 
+        case GLFW_KEY_R:
+            reopen = GL_TRUE;
             break;
-        }
     }
 }