aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo/platform/osmain.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/servo/platform/osmain.rs')
-rw-r--r--src/servo/platform/osmain.rs13
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();
}