当前位置: 代码迷 >> Windows Mobile >> 怎么限制 FPS 在 WP8 directX app 中
  详细解决方案

怎么限制 FPS 在 WP8 directX app 中

热度:512   发布时间:2016-04-25 07:16:35.0
如何限制 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类似的方法,能提供大概思路或源码就更好了,在此感谢。
------解决方案--------------------
创建DX设备时有垂直同步参数

------解决方案--------------------
present的参数
  相关解决方案