X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=progs%2Fdemos%2Ftimer%2Ftimer.c;h=44fa76c0a6434163a4dcea3f5682faa9d0a37f22;hb=56cc35535901ef071bf8acab59ba176355ee3e0e;hp=0f1b49f135a28d5296e3c5284f20510e859e829c;hpb=5a6bc3d923b157a6fa88eee7a7214d3ae11720f1;p=freeglut diff --git a/progs/demos/timer/timer.c b/progs/demos/timer/timer.c index 0f1b49f..44fa76c 100644 --- a/progs/demos/timer/timer.c +++ b/progs/demos/timer/timer.c @@ -12,7 +12,8 @@ void disp(void); void timer_func(int unused); /* color index will be advanced every time the timer expires */ -int cidx; +int cidx = 0; +int pcidx = 2; float color[][3] = { {1, 0, 0}, {0, 1, 0}, @@ -32,7 +33,8 @@ int main(int argc, char **argv) glutDisplayFunc(disp); /* get timer started, its reset in the timer function itself */ - glutTimerFunc(1000, timer_func, 0); + glutTimerFunc(1000, timer_func, 1); + glutTimerFunc(500, timer_func, 2); glutMainLoop(); return 0; @@ -43,15 +45,30 @@ void disp(void) glClearColor(color[cidx][0], color[cidx][1], color[cidx][2], 1); glClear(GL_COLOR_BUFFER_BIT); + glPointSize(10.f); + glColor3f(color[pcidx][0], color[pcidx][1], color[pcidx][2]); + glBegin(GL_POINTS); + glVertex2i(0,0); + glEnd(); + glutSwapBuffers(); } -void timer_func(int unused) +void timer_func(int which) { /* advance the color index and trigger a redisplay */ - cidx = (cidx + 1) % (sizeof color / sizeof *color); + switch (which) + { + case 1: + cidx = (cidx + 1) % (sizeof color / sizeof *color); + break; + case 2: + pcidx = (pcidx + 1) % (sizeof color / sizeof *color); + break; + } + glutPostRedisplay(); /* (re)set the timer callback and ask glut to call it in 1 second */ - glutTimerFunc(1000, timer_func, 0); + glutTimerFunc(1000, timer_func, which); }