当前位置:编程学习 > wap >>

如何限制 FPS 在 WP8 directX app 中

游戏在某些场景中运行似乎太快,我想限制FPS为30。我使用纯cpp D3D中。我觉得WP8 不提供SetWaitableTimer(我在桌面使用限制FPS)


我已经找到了sleep方法
SleepConditionVariableCS在WP8这里是sleep的代码

struct WaitTimeData
{
    CONDITION_VARIABLE conditionVariable;
    CRITICAL_SECTION criticalSection;

    WaitTimeData()
    {
        InitializeConditionVariable(&conditionVariable);
        memset(&criticalSection , 0 , sizeof(CRITICAL_SECTION));
        //InitializeCriticalSection(&_CriticalSection); WP8没有这个函数
        criticalSection.DebugInfo = (PRTL_CRITICAL_SECTION_DEBUG)-1;
        criticalSection.LockCount = -1;
    }
};

int WPSleep(unsigned int ms)
{
    static WaitTimeData s_wtd;

    SleepConditionVariableCS(
        &s_wtd.conditionVariable,
        &s_wtd.criticalSection,
        ms
        );

    if (GetLastError() == ERROR_TIMEOUT)
    {
        SetLastError(0);
    }

    return 0;
}

想问下各位牛人们,在WP8 中,如何实现限制帧数为30的功能,或者如何写一个和 SetWaitableTimer类似的方法,能提供大概思路或源码就更好了,在此感谢。 WP8 DirectX FPS --------------------编程问答-------------------- 创建DX设备时有垂直同步参数
--------------------编程问答-------------------- present的参数 --------------------编程问答--------------------
引用 2 楼 cuit 的回复:
present的参数

版主啊,能否详细说下步奏,感激不尽啊。
补充:移动开发 ,  Windows Phone
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,