基于时间的渲染框架

下面是一个基于时间的渲染框架

代码
 1  //  Get last time
 2  static   float  lastTime  =  ( float )timeGetTime();
 3 
 4  while  (msg.message  !=  WM_QUIT)  
 5  {
 6       if ( PeekMessage( & msg, NULL,  0U 0U , PM_REMOVE)  !=   0 )
 7      {
 8          TranslateMessage ( & msg) ;
 9          DispatchMessage ( & msg) ;
10      }
11       else   //  Render the game if there is no message to process
12      {
13           //  Get current time
14           float  currTime   =  ( float )timeGetTime();
15 
16           //  Calculate time elapsed
17           float  timeDelta  =  (currTime  -  lastTime) * 0.001f ;
18 
19           //  Render
20          Render(timeDelta) ;
21 
22           //  Update last time to current time for next loop
23          lastTime  =  currTime;
24      }
25  }
26 

这样,在Render函数中就可以调用各种对象的渲染函数了,所有这些函数都有一个时间参数,用来求速度,加速度,位移等,比如粒子系统,摄像机,地形等等渲染

你可能感兴趣的:(框架)