How to calculate FPS in OpenGL?

18,742

Solution 1

You should put it in the display loop. Here's an article that explains some intricacies of game loops that you should read.

Solution 2

If you have any kind of synchronization routine I suggest you place the call just after that, ie prior the big calculations. Otherwise the timing calculations can be shaky and give different values each loop...and a note, it's better to have a steady FPS than a fluctuating FPS just to maximize it. The fluctuation even so subtle makes the viewer/player aware that it's all a game and the immersion is lost.

Share:
18,742

Related videos on Youtube

Mzq
Author by

Mzq

Updated on June 04, 2022

Comments

  • Mzq
    Mzq almost 2 years
    void CalculateFrameRate()
    {    
        static float framesPerSecond    = 0.0f;       // This will store our fps
        static float lastTime   = 0.0f;       // This will hold the time from the last frame
        float currentTime = GetTickCount() * 0.001f;    
        ++framesPerSecond;
        if( currentTime - lastTime > 1.0f )
        {
            lastTime = currentTime;
            if(SHOW_FPS == 1) fprintf(stderr, "\nCurrent Frames Per Second: %d\n\n", (int)framesPerSecond);
            framesPerSecond = 0;
        }
    }
    

    Should I call this function in void play(void) or void display(void)?

    Or it does not make any difference?

Related