diff options
| author | Simon Robertshaw <simon@Simon-Elementary.(none)> | 2011-10-16 23:16:43 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@Simon-Elementary.(none)> | 2011-10-16 23:16:43 (GMT) |
| commit | 44a0008d4e8f80fce9697bbde09193e837bc0072 (patch) | |
| tree | e96a3df113a11ee5bb3f70ad568ff2f44e050bad /src/main.c | |
| parent | bbe5aabf4f85c0b83da54fb8f55b4c509c323609 (diff) | |
| download | powder-44a0008d4e8f80fce9697bbde09193e837bc0072.zip powder-44a0008d4e8f80fce9697bbde09193e837bc0072.tar.gz | |
Debug performance/time graph
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 51 |
1 files changed, 50 insertions, 1 deletions
@@ -187,8 +187,13 @@ int frameidx = 0; //int CGOL = 0; //int GSPEED = 1;//causes my .exe to crash.. int sound_enable = 0; -int debug_flags = 0; +int debug_flags = 0; +int debug_perf_istart = 1; +int debug_perf_iend = 0; +long debug_perf_frametime[DEBUG_PERF_FRAMECOUNT]; +long debug_perf_partitime[DEBUG_PERF_FRAMECOUNT]; +long debug_perf_time = 0; sign signs[MAXSIGNS]; @@ -1813,8 +1818,52 @@ int main(int argc, char *argv[]) if(ngrav_enable && drawgrav_enable) draw_grav(vid_buf); draw_walls(part_vbuf); + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + debug_perf_time = ts.tv_nsec; + #endif + } + update_particles(part_vbuf); //update everything + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + + debug_perf_partitime[debug_perf_iend] = ts.tv_nsec - debug_perf_time; + + debug_perf_time = ts.tv_nsec; + #endif + } + render_parts(part_vbuf); //draw particles + + if(debug_flags & (DEBUG_PERFORMANCE_CALC|DEBUG_PERFORMANCE_FRAME)) + { + #ifdef WIN32 + #elif defined(MACOSX) + #else + struct timespec ts; + clock_gettime(CLOCK_REALTIME, &ts); + + debug_perf_frametime[debug_perf_iend] = ts.tv_nsec - debug_perf_time; + #endif + debug_perf_iend++; + debug_perf_iend %= DEBUG_PERF_FRAMECOUNT; + debug_perf_istart++; + debug_perf_istart %= DEBUG_PERF_FRAMECOUNT; + } + if(sl == WL_GRAV+100 || sr == WL_GRAV+100) draw_grav_zones(part_vbuf); |
