summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorSimon 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)
commit44a0008d4e8f80fce9697bbde09193e837bc0072 (patch)
treee96a3df113a11ee5bb3f70ad568ff2f44e050bad /src/main.c
parentbbe5aabf4f85c0b83da54fb8f55b4c509c323609 (diff)
downloadpowder-44a0008d4e8f80fce9697bbde09193e837bc0072.zip
powder-44a0008d4e8f80fce9697bbde09193e837bc0072.tar.gz
Debug performance/time graph
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c51
1 files changed, 50 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index 09dfffd..2615e4f 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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);