From 467c79953277971854604ea53f50b2b0766b50c5 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Thu, 25 Oct 2012 15:16:34 -0700 Subject: [PATCH] Fix the origin when resizing --- src/rust-glut | 2 +- src/rust-layers | 2 +- src/servo/platform/osmain.rs | 44 ++++++++++++++++++++++++------------ 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/src/rust-glut b/src/rust-glut index 2025d768334..163656ee4aa 160000 --- a/src/rust-glut +++ b/src/rust-glut @@ -1 +1 @@ -Subproject commit 2025d76833460b09e4c6d7e43af21fafd3e701a4 +Subproject commit 163656ee4aa53fcd5dbb8e264112e268d373ee71 diff --git a/src/rust-layers b/src/rust-layers index 827c3e99e69..f46557d3b3d 160000 --- a/src/rust-layers +++ b/src/rust-layers @@ -1 +1 @@ -Subproject commit 827c3e99e6995aac6bffe030acf56c96fc543da4 +Subproject commit f46557d3b3dfcb66965a73f8a00bc0be21b8d625 diff --git a/src/servo/platform/osmain.rs b/src/servo/platform/osmain.rs index 4bedaa04097..167d51d4def 100644 --- a/src/servo/platform/osmain.rs +++ b/src/servo/platform/osmain.rs @@ -6,6 +6,7 @@ use dvec::DVec; use gfx::compositor::{LayerBuffer, Compositor}; use dom::event::{Event, ResizeEvent}; use layers::ImageLayer; +use geom::matrix::{Matrix4, identity}; use geom::size::Size2D; use ShareGlContext = sharegl::platform::Context; use std::cmp::FuzzyEq; @@ -98,7 +99,8 @@ fn mainloop(mode: Mode, po: comm::Port, dom_event_chan: pipes::SharedChan, dom_event_chan: pipes::SharedChan; - unsafe { size = cast::transmute(&scene.size); } - *size = Size2D(width as f32, height as f32); } Exit => { *done = true; @@ -144,6 +141,29 @@ fn mainloop(mode: Mode, po: comm::Port, dom_event_chan: pipes::SharedChan; + unsafe { size = cast::transmute(&scene.size); } + *size = Size2D(window_width as f32, window_height as f32); + }; + + let composite: fn@() = || { + #debug("osmain: drawing to screen"); + + do util::time::time(~"compositing") { + adjust_for_window_resizing(); + layers::rendergl::render_scene(context, scene); + } + + glut::swap_buffers(); + glut::post_redisplay(); + }; + match window { GlutWindow(window) => { do glut::reshape_func(window) |width, height| { @@ -151,19 +171,13 @@ fn mainloop(mode: Mode, po: comm::Port, dom_event_chan: pipes::SharedChan