FPS ReadOut
Blitz3D Forums/Blitz3D Programming/FPS ReadOut
| ||
I use framelimiting codeFPS% = 60 PERIOD% = 1000/FPS% TIME% = MilliSecs() - PERIOD% While Not KeyHit(1) Repeat ELAPSED% = MilliSecs() - TIME% Until ELAPSED% TICKS% = ELAPSED%/PERIOD% TWEEN# = Float(ELAPSED% Mod PERIOD%)/Float(PERIOD%) For C = 1 To TICKS% If C = TICKS% Then CaptureWorld TIME% = TIME% + PERIOD% UpdateWorld Next RenderWorld TWEEN# Flip Wend how would i get a fps readout on the screen? meaning what is my current fps rate? text 20,20,FPS%? |
| ||
Well, typically I increment some variable once per RenderWorld, then after one second that variable is the FPS. Then, normally, I reset that variable to 0 so I can restart the increment. Like this is what I use:Global fps,timenext,frames Function GetFPS(JustChecking = False) ;pass True to JustChecking if you just want it to return the FPS and not increment the frames variable ;probably a good choice is to do is right after your RenderWorld GetFPS(False) and then somewhere else do Text X,Y,GetFPS(True) If Not JustChecking Then frames = frames+1 If MilliSecs() > timenext Then timenext = MilliSecs()+1000 fps = frames frames = 0 EndIf Return fps End Function |
| ||
Mine isgraphics 640,480 setbuffer backbuffer() Global fps,frame while not keyhit(1) cls If MilliSecs()<timer+1000 Then frame=frame+1 Else fps=frame frame=0 timer=MilliSecs() End If text 0,0,fps flip 0 wend end |
| ||
thanks u guys the problem i have has to do with the fact that the game runs real smooth ut i get a real low framerate... how could that be? the game framelimit is set to 60 and the fps readout i get is 16-20 |
| ||
You using flip false? If your not, the vsync could probably be buggering about with the framerate |
| ||
using 3d? no vsync and no flip false.... |
| ||
How long does it take you to perform renderworld? |
| ||
No flip false is your problem then. Using just Flip, will cause the program to run at the monitors refresh rate, so your probably losing fps there. |