Created
June 27, 2012 12:35
-
-
Save KAYLukas/3003815 to your computer and use it in GitHub Desktop.
new fps implementation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
double frame(){ | |
double t = glfwGetTime(); | |
static double oldt; | |
double dt = t - oldt; | |
oldt = t; | |
static double time_between_frames; | |
//Determine the weight on the amount of fps, so that every second always has a equal weight. | |
int weight = (int) (1.0/time_between_frames); | |
weight /= 10; | |
if(weight < 3){ | |
weight = 3; | |
} | |
time_between_frames = (weight*time_between_frames + dt)/(weight+1); | |
return 1.0/time_between_frames; | |
} |
Dat lijkt me geen probleem. Glfw gebruikt gewoon een hele precieze time,
zodat je ook nanoseconden kan meten. Voor backwardscompatibility kan je met
1000 vermenigvuldigen en casten naar een int ( zonodig met een decibel of
inline functie). Ik ben met het testen van glfw wel bugs tegengekomen ,
Maar op sourceforge staat dat ze gefixed zijn in de nieuwe versie. Maar
nergens staat een eta voor de stable release :S.
Ik denk dat het wel veilig is om de timing naar doubles om te zetten. De aanpassingen voor de serializatie zijn nog wel te doen. Let op FRATE, ElapsedTime en de FPS class. Deze moeten aangepast worden om met het nieuwe systeem te werken.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hrm, tijd is een double in glfw? Dat heeft flink wat impact op onze temporary objects en het serializen daarvan.