60 frames per second
Blitz3D Forums/Blitz3D Beginners Area/60 frames per second| 
 | ||
| How can a tell if my program/app is runnning at 60 fps. For that matter, how can I find out how many frames per second my app is runnning. | 
| 
 | ||
| Count how many times flip gets invoked every second | 
| 
 | ||
| it's the time difference between the current and previous frames in your program, people call this "frame time" and it's usually measured in milliseconds. While (...) frameTime = Millisecs() - lastTime If frameTime = 16 Then Text(0, 0, "Running at 60 FPS") lastTime = Millisecs() WendIf that frame time is close to 16.666 milliseconds then your program is running at approximately 60 frames-per-second. This 16.666 value comes from the expression (1000.0 / 60.0) "If a second (= a thousand milliseconds) is divided into sixty slices, how many milliseconds are in one of those slices?" and then you check if the latest slice follows this rule. | 
| 
 | ||
| To guarantee that your app is running at 60FPS at any computer use CREATETIMER() and WAITTIMER: FPS%=CreateTimer(60)
; Your mainloop:
While Not KeyHit(1)
      Cls
      ;Draw your screen stuff here
      Flip 0
      WaitTimer FPS
Wend
 | 
| 
 | ||
| Thanks guys | 
| 
 | ||
| i use this code to count the frames per second (FPS) : 
;before the mainloop :
Global MainLoopTimer = CreateTimer(30) ;this is used to limit the maximum FPS, but not required
;during the mainloop :
Repeat
 MainLoopMilliStart% = MilliSecs() ;the milliseconds value at the start of the mainloop
 UpdateProgram() ;update your program here
 SetBuffer(BackBuffer())
 RenderWorld()
 Color(255,255,255)
 CText("FPS = "+FPS,0,0)
  
 ;Flip(1) ;use only this line if you don't want to limit the FPS
 WaitTimer(MainLoopTimer) ;use this line and the next if you want to limit the FPS
 VWait():Flip(False)
 MainLoopMilliTime = MilliSecs() - MainLoopMilliStart ;the milliseconds time it takes to do a mainloop
 If( MainLoopMilliTime < 1 ) ;this is to prevent a division by 0 when calculating the FPS
  MainLoopMilliTime = 1
 EndIf
 FPS% = 1000.0/MainLoopMilliTime
until( keydown(1)=true )
 | 
| 
 | ||
| I think if you use Win 10- 60 FPS is the most Blitz can do while rendering and updating the screen- my progs all run at 60 FPS. Some commercial games on my pc claim to run at 70+ fps but I doubt it. Or is it because monitors run at 60 fps? hmmmm.... | 
| 
 | ||
| RemiD, thanks!! |