comparison render_sdl.c @ 63:a6dd5b7a971b

Add FPS counter to console output
author Mike Pavone <pavone@retrodev.com>
date Wed, 19 Dec 2012 20:53:59 -0800
parents 8317f174d916
children 2b1a65f4b85d
comparison
equal deleted inserted replaced
62:b37cb596bc21 63:a6dd5b7a971b
160 } 160 }
161 } 161 }
162 162
163 #define FRAME_DELAY 16 163 #define FRAME_DELAY 16
164 #define MIN_DELAY 10 164 #define MIN_DELAY 10
165 165 uint32_t frame_counter = 0;
166 uint32_t start = 0;
166 void wait_render_frame(vdp_context * context) 167 void wait_render_frame(vdp_context * context)
167 { 168 {
168 SDL_Event event; 169 SDL_Event event;
169 while(SDL_PollEvent(&event)) { 170 while(SDL_PollEvent(&event)) {
170 switch (event.type) { 171 switch (event.type) {
182 fclose(outfile); 183 fclose(outfile);
183 puts("state saved to state.gst"); 184 puts("state saved to state.gst");
184 } 185 }
185 break; 186 break;
186 case SDL_QUIT: 187 case SDL_QUIT:
188 puts("");
187 exit(0); 189 exit(0);
188 } 190 }
189 } 191 }
190 //TODO: Adjust frame delay so we actually get 60 FPS rather than 62.5 FPS 192 //TODO: Adjust frame delay so we actually get 60 FPS rather than 62.5 FPS
191 uint32_t current = SDL_GetTicks(); 193 uint32_t current = SDL_GetTicks();
198 } 200 }
199 while ((desired) < SDL_GetTicks()) { 201 while ((desired) < SDL_GetTicks()) {
200 } 202 }
201 } 203 }
202 render_context(context); 204 render_context(context);
203 } 205 frame_counter++;
204 206 if ((last_frame - start) > 1000) {
205 207 if (start) {
208 printf("\r%f fps", ((float)frame_counter) / (((float)(last_frame-start)) / 1000.0));
209 fflush(stdout);
210 }
211 start = last_frame;
212 frame_counter = 0;
213 }
214 }
215
216