1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-19 16:45:06 +00:00
QB64-PE/internal/c/parts/core/android_core/progs/demos/timer/timer.c

57 lines
1.2 KiB
C

/* Timer demo
*
* Written by John Tsiombikas <nuclear@member.fsf.org>
*
* Demonstrate the use of glutTimerFunc, by changing the color of the
* framebuffer every (approximately) 1 sec.
*/
#include <stdio.h>
#include <GL/glut.h>
void disp(void);
void timer_func(int unused);
/* color index will be advanced every time the timer expires */
int cidx;
float color[][3] = {
{1, 0, 0},
{0, 1, 0},
{0, 0, 1},
{1, 1, 0},
{0, 1, 1},
{1, 0, 1}
};
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitWindowSize(128, 128);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
glutCreateWindow("timer test");
glutDisplayFunc(disp);
/* get timer started, its reset in the timer function itself */
glutTimerFunc(1000, timer_func, 0);
glutMainLoop();
return 0;
}
void disp(void)
{
glClearColor(color[cidx][0], color[cidx][1], color[cidx][2], 1);
glClear(GL_COLOR_BUFFER_BIT);
glutSwapBuffers();
}
void timer_func(int unused)
{
/* advance the color index and trigger a redisplay */
cidx = (cidx + 1) % (sizeof color / sizeof *color);
glutPostRedisplay();
/* (re)set the timer callback and ask glut to call it in 1 second */
glutTimerFunc(1000, timer_func, 0);
}