Предел FPS (неточный)

Я пытаюсь выяснить, почему этот предел FPS не работает должным образом на некоторых компьютерах... например, когда я ограничиваю fps до 333, он покажет 250, а на некоторых компьютерах ограничение FPS будет работать очень хорошо (когда ограничение 333 будет работать ограничение 333, а не 250 или любое другое число).

    g_nFrameCount++;
    DWORD currentTime = timeGetTime();

    {
        float fFrameLimit = 0;
        if (g_nFrameLimitValue > 0)
            fFrameLimit = 1000 / g_nFrameLimitValue;
        if ((currentTime - g_dwLastTime) < fFrameLimit)
        {
            Sleep((int)fFrameLimit - (currentTime - g_dwLastTime));
            currentTime = timeGetTime();
        }
        g_dwLastTime = currentTime;
    }

    if (g_dwLastFPSTime + FPS_INTERVAL<currentTime)
    {
        g_fFPS = (g_nFrameCount - g_nLastFrameCount)*FPS_INTERVAL / ((float)(currentTime - g_dwLastFPSTime)*(FPS_INTERVAL / 1000));
        g_dwLastFPSTime = currentTime;
        g_nLastFrameCount = g_nFrameCount;
    }

0 ответов

Другие вопросы по тегам