Test program swap interval toggling work.

This commit is contained in:
Camilla Berglund 2012-08-03 19:54:07 +02:00
parent 6b46225e33
commit 13ff3eeca9
2 changed files with 34 additions and 8 deletions

View File

@ -37,6 +37,21 @@
static int cursor_x = 0, cursor_y = 0; static int cursor_x = 0, cursor_y = 0;
static int window_width = 640, window_height = 480; static int window_width = 640, window_height = 480;
static int swap_interval = 1;
static void set_swap_interval(GLFWwindow window, int interval)
{
char title[256];
swap_interval = interval;
glfwSwapInterval(swap_interval);
snprintf(title, sizeof(title),
"Cursor Inaccuracy Detector (interval %i)",
swap_interval);
glfwSetWindowTitle(window, title);
}
static void window_size_callback(GLFWwindow window, int width, int height) static void window_size_callback(GLFWwindow window, int width, int height)
{ {
@ -56,6 +71,12 @@ static void cursor_position_callback(GLFWwindow window, int x, int y)
cursor_y = y; cursor_y = y;
} }
static void key_callback(GLFWwindow window, int key, int action)
{
if (key == GLFW_KEY_SPACE && action == GLFW_PRESS)
set_swap_interval(window, 1 - swap_interval);
}
int main(void) int main(void)
{ {
GLFWwindow window; GLFWwindow window;
@ -66,7 +87,7 @@ int main(void)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
window = glfwOpenWindow(window_width, window_height, GLFW_WINDOWED, "Cursor Inaccuracy Detector", NULL); window = glfwOpenWindow(window_width, window_height, GLFW_WINDOWED, "", NULL);
if (!window) if (!window)
{ {
glfwTerminate(); glfwTerminate();
@ -75,9 +96,11 @@ int main(void)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
set_swap_interval(window, swap_interval);
glfwSetCursorPosCallback(cursor_position_callback); glfwSetCursorPosCallback(cursor_position_callback);
glfwSetWindowSizeCallback(window_size_callback); glfwSetWindowSizeCallback(window_size_callback);
glfwSwapInterval(1); glfwSetKeyCallback(key_callback);
while (glfwGetCurrentContext()) while (glfwGetCurrentContext())
{ {

View File

@ -36,15 +36,18 @@
static int swap_interval; static int swap_interval;
static void set_swap_interval(int value) static void set_swap_interval(GLFWwindow window, int interval)
{ {
char title[256]; char title[256];
swap_interval = value; swap_interval = interval;
glfwSwapInterval(swap_interval); glfwSwapInterval(swap_interval);
sprintf(title, "Tearing detector (interval %i)", swap_interval); snprintf(title, sizeof(title),
glfwSetWindowTitle(glfwGetCurrentContext(), title); "Tearing detector (interval %i)",
swap_interval);
glfwSetWindowTitle(window, title);
} }
static void window_size_callback(GLFWwindow window, int width, int height) static void window_size_callback(GLFWwindow window, int width, int height)
@ -55,7 +58,7 @@ static void window_size_callback(GLFWwindow window, int width, int height)
static void key_callback(GLFWwindow window, int key, int action) static void key_callback(GLFWwindow window, int key, int action)
{ {
if (key == GLFW_KEY_SPACE && action == GLFW_PRESS) if (key == GLFW_KEY_SPACE && action == GLFW_PRESS)
set_swap_interval(!swap_interval); set_swap_interval(window, 1 - swap_interval);
} }
int main(void) int main(void)
@ -78,7 +81,7 @@ int main(void)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
set_swap_interval(1); set_swap_interval(window, swap_interval);
glfwSetWindowSizeCallback(window_size_callback); glfwSetWindowSizeCallback(window_size_callback);
glfwSetKeyCallback(key_callback); glfwSetKeyCallback(key_callback);