OPENGL之定时器

定时器一般用于控制隔一段时间调用某函数

函数原型glutTimerFunc(unsigned int msecs,void(*func)(int value),int value)

说明:msecs为在调用func函数之前要等待的时间(单位:毫秒)

     func为被注册的函数,在等待msecs毫秒之后执行

   value:为指定将要执行函数的id(value用来传递一个用户自定义的值,根据value的不同情况,可以实现不同的定时器)

 

 

使用步骤:

    1.注册定时器回调函数

    glutTimerFunc(100,MyTimeFunc,1);//这个函数中的msecs值仅仅为第一次调用时的等待时间

    2.写自己的定时器回调函数的内部实现:

    void MyTimeFunc(int value)

     {

    //(value用来传递一个用户自定义的值,根据value的不同情况,可以实现不同的定时器)

 

    }

    

    3. 可以在回调函数中更改和绘制对象状态相关的变量,这一步可以有也可以不更改,然后调用glutPostRedisplay函数来实现重绘

  glutPostRedisplay:类似于直接调用display函数,不过他更“智能”,在遍历整个消息队列的过程中,只对窗口重绘一次,即只调用一次display

    

    4.最后在回调函数中调用函数glutTimerFunc(50,MyTimeFunc,1);

    这相当于循环了,50才是循环等待的时间,1步骤中等待的时间仅仅只是第一次等待的时间

 

 

 

 

    恩,一共就这四个步骤了

 

posted @ 2016-04-10 14:33  LT.C#  阅读(2124)  评论(0编辑  收藏  举报