0


我正在使用 Windows 10 Professional 高对比度模式在夜间工作。
我正在一个 Cocos2d-x 3.15 项目中工作,该项目使用以下Win32 API

UINT TARGET_RESOLUTION = 1; // 1 millisecond target resolution
TIMECAPS tc;
UINT wTimerRes = 0;
if (TIMERR_NOERROR == timeGetDevCaps(&tc, sizeof(TIMECAPS)))
{
    wTimerRes = std::min(std::max(tc.wPeriodMin, TARGET_RESOLUTION), tc.wPeriodMax);
    timeBeginPeriod(wTimerRes);// request minimum time resolution to 1
}

以下代码并不是真正的这些,只是一个示例。

while(true)//main loop
{
    mainGameLoop();
    int workedTime= calculateWorkedTime();// miliseconds
    if(workedTime < 1000/60)// target 60fps
    {
        int remainingTime = 1000/60 - workedTime;
        Sleep(remainingTime);
    }
}

在正常状态下,我的游戏将在 Windows 上以 60fps(接近 60fps)的速度运行。但是在高对比度下,游戏被限制在30fps(测试游戏的时候感觉很烦)。

我玩了很多60fps的游戏。我可以在我的项目中做一些技巧来绕过 30fps 限制(使用 Win32 API)吗?

p/s:本项目使用 OpenGL。

4

0 回答 0