ScrapExplorer - timeout.c
Home / ext / glfw / tests Lines: 2 | Size: 2828 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1//======================================================================== 2// Event wait timeout test 3// Copyright (c) Camilla Löwy <[email protected]> 4// 5// This software is provided 'as-is', without any express or implied 6// warranty. In no event will the authors be held liable for any damages 7// arising from the use of this software. 8// 9// Permission is granted to anyone to use this software for any purpose, 10// including commercial applications, and to alter it and redistribute it 11// freely, subject to the following restrictions: 12// 13// 1. The origin of this software must not be misrepresented; you must not 14// claim that you wrote the original software. If you use this software 15// in a product, an acknowledgment in the product documentation would 16// be appreciated but is not required. 17// 18// 2. Altered source versions must be plainly marked as such, and must not 19// be misrepresented as being the original software. 20// 21// 3. This notice may not be removed or altered from any source 22// distribution. 23// 24//======================================================================== 25// 26// This test is intended to verify that waiting for events with timeout works 27// 28//======================================================================== 29 30#define GLAD_GL_IMPLEMENTATION 31#include <glad/gl.h> 32#define GLFW_INCLUDE_NONE 33#include <GLFW/glfw3.h> 34 35#include <time.h> 36#include <math.h> 37#include <stdio.h> 38#include <stdlib.h> 39 40static void error_callback(int error, const char* description) 41{ 42 fprintf(stderr, "Error: %s\n", description); 43} 44 45static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) 46{ 47 if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) 48 glfwSetWindowShouldClose(window, GLFW_TRUE); 49} 50 51static float nrand(void) 52{ 53 return (float) rand() / (float) RAND_MAX; 54} 55 56int main(void) 57{ 58 GLFWwindow* window; 59 60 srand((unsigned int) time(NULL)); 61 62 glfwSetErrorCallback(error_callback); 63 64 if (!glfwInit()) 65 exit(EXIT_FAILURE); 66 67 window = glfwCreateWindow(640, 480, "Event Wait Timeout Test", NULL, NULL); 68 if (!window) 69 { 70 glfwTerminate(); 71 exit(EXIT_FAILURE); 72 } 73 74 glfwMakeContextCurrent(window); 75 gladLoadGL(glfwGetProcAddress); 76 glfwSetKeyCallback(window, key_callback); 77 78 while (!glfwWindowShouldClose(window)) 79 { 80 int width, height; 81 float r = nrand(), g = nrand(), b = nrand(); 82 float l = (float) sqrt(r * r + g * g + b * b); 83 84 glfwGetFramebufferSize(window, &width, &height); 85 86 glViewport(0, 0, width, height); 87 glClearColor(r / l, g / l, b / l, 1.f); 88 glClear(GL_COLOR_BUFFER_BIT); 89 glfwSwapBuffers(window); 90 91 glfwWaitEventsTimeout(1.0); 92 } 93 94 glfwDestroyWindow(window); 95 96 glfwTerminate(); 97 exit(EXIT_SUCCESS); 98} 99 100[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.