winapi绕过Windows高对比度限制fps

时间:2018-06-14 10:51:30

标签: winapi windows-10 frame-rate cocos2d-x-3.x high-contrast


我正在使用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。

0 个答案:

没有答案