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@hardwired.org.uk>2011-10-16 23:28:01 (GMT)
commit7d9d504abfaaf132d831edd23bb225d346f619c8 (patch)
tree3f05d56297dd9b35f8b051ce293357fcdca60251 /src/main.c
parentcae9ad50d0765d9b9ce4a59fb7ac78ae1c59df6a (diff)
downloadpowder-7d9d504abfaaf132d831edd23bb225d346f619c8.zip
powder-7d9d504abfaaf132d831edd23bb225d346f619c8.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 51fc278..9ac79cd 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];
@@ -1812,9 +1817,53 @@ 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
+ }
+
draw_parts(part_vbuf); //draw particles
draw_other(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_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);