After testing your responses, I have determined that it is indeed the renderer being limited by the screen's refresh rate because I used the SDL_RENDERER_PRESENTVSYNC
flag in creating the renderer.
The following line of code is what is limiting the framerate:
mpRenderer.reset(SDL_CreateRenderer(mpWindow.get(), -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC));
Even if I remove the SDL_RENDERER_ACCELERATED
flag, the framerate stays at whatever the monitor is set to refresh at.
I tested and proved this by changing my monitor's refresh rate to 75Hz instead of 60Hz and my tests increased to 74-77 fps.
The moment I remove the SDL_RENDERER_PRESENTVSYNC
flag, the frame rate skyrockets.
As a side note: I tested this using timeGetTime() as well as other tick count retrieving functions, and all returned the same results.
Reference to SDL_CreateRenderer()
: https://wiki.libsdl.org/SDL_CreateRenderer