定时器潜在的6ms延迟 - ~6ms latency in the timer
如果你做过Windows mobile Gesture开发,就会在 GesturePhysicsEngine.h 头文件发现如下一段定义说明:
/// <summary>
/// Defines a common value for a normal frame delay rate expected to be used when displaying
/// output from the physics engine. We are aiming at 25fps and also allow ~6ms latency in the timer
/// </summary>
#define GESTURE_ANIMATION_FRAME_DELAY_MS 34
/// Defines a common value for a normal frame delay rate expected to be used when displaying
/// output from the physics engine. We are aiming at 25fps and also allow ~6ms latency in the timer
/// </summary>
#define GESTURE_ANIMATION_FRAME_DELAY_MS 34
该文件在 “..\Windows Mobile 6 SDK\PocketPC\Include\Armv4i\” 目录下。注释的大概意思为:
-
“为普通帧延迟率定义一个公共值,该值在从物理引擎显示输出时使用 。目标是25fps并且允许定时器中潜在的6ms延迟。”
从上面的注释我们可以知道:在每帧刷新后可能有6秒延迟,设置的延迟为34ms,所以实际的每帧需要的时间为40ms。
上面的定义也说明了这点:
#define GESTURE_ANIMATION_FRAME_DELAY_MS 34
1000 / 34 ≈ 29;
如果考虑到6ms的延迟,那么:
1000 / (34 + 6) = 25;
刚好和注释中的25fps吻合,这也就证明了我们的观点。
posted on 2010-01-29 14:45 listenlisten 阅读(750) 评论(3) 编辑 收藏 举报