#include "framerate.h" rat_frame_counter *rat_frame_counter_create(float normal_fps,float rate_period) { rat_frame_counter *ctr=(rat_frame_counter *)malloc(sizeof(rat_frame_counter)); memset(ctr,0,sizeof(rat_frame_counter)); ctr->fps=(unsigned int)(ctr->normal_fps=normal_fps); ctr->rate_period=rate_period<=0.0?1.0:rate_period; ctr->delta_time=1.0; ctr->oldclock=ctr->newclock=clock(); return ctr; } void rat_frame_counter_destroy(rat_frame_counter *ctr) { free((void *)ctr); } void rat_frame_counter_update(rat_frame_counter *ctr,unsigned int frames) { ctr->framectr+=frames; ctr->newclock=clock(); if (ctr->newclock-ctr->oldclock>=(unsigned int)(ctr->rate_period*(float)CLOCKS_PER_SEC)) { ctr->fps=(unsigned int)((1.0/ctr->rate_period)*(float)ctr->framectr); ctr->delta_time=ctr->normal_fps/(float)ctr->fps; ctr->oldclock=ctr->newclock; ctr->framectr=0; } }