diff options
Diffstat (limited to 'src/servo/platform/osmain.rs')
-rw-r--r-- | src/servo/platform/osmain.rs | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs index daee2460906..6ea213e1542 100644 --- a/src/servo/platform/osmain.rs +++ b/src/servo/platform/osmain.rs @@ -13,6 +13,7 @@ import dom::event::{Event, ResizeEvent}; import layers::ImageLayer; import geom::size::Size2D; import std::cmp::fuzzy_eq; +import std::time::precise_time_ns; import vec::push; type OSMain = chan<Msg>; @@ -34,6 +35,13 @@ fn OSMain() -> OSMain { } } +fn time(msg: str, callback: fn()) { + let start_time = precise_time_ns(); + callback(); + let end_time = precise_time_ns(); + #debug("%s took %u ms", msg, ((end_time - start_time) / 1000000u64) as uint); +} + fn mainloop(po: port<Msg>) { let key_handlers: @dvec<chan<()>> = @dvec(); let event_listeners: @dvec<chan<Event>> = @dvec(); @@ -108,7 +116,10 @@ fn mainloop(po: port<Msg>) { #debug("osmain: drawing to screen"); - layers::rendergl::render_scene(context, *scene); + do time("compositing") { + layers::rendergl::render_scene(context, *scene); + } + glut::swap_buffers(); glut::post_redisplay(); } |