aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/compositing/compositor.rs2
-rw-r--r--components/compositing/windowing.rs7
-rw-r--r--components/servo/lib.rs5
3 files changed, 13 insertions, 1 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index e7ec426d263..67cecd6a4a0 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -918,7 +918,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
self.webrender_api.set_document_view(
self.webrender_document,
- self.embedder_coordinates.get_flipped_viewport(),
+ self.embedder_coordinates.get_viewport(),
self.embedder_coordinates.hidpi_factor.get(),
);
diff --git a/components/compositing/windowing.rs b/components/compositing/windowing.rs
index fad75173cab..1470d6684a6 100644
--- a/components/compositing/windowing.rs
+++ b/components/compositing/windowing.rs
@@ -200,6 +200,13 @@ pub struct EmbedderCoordinates {
}
impl EmbedderCoordinates {
+ /// Get the unflipped viewport rectangle for use with the WebRender API.
+ pub fn get_viewport(&self) -> DeviceIntRect {
+ DeviceIntRect::from_untyped(&self.viewport.to_untyped())
+ }
+
+ /// Get the flipped viewport rectangle. This should be used when drawing directly
+ /// to the framebuffer with OpenGL commands.
pub fn get_flipped_viewport(&self) -> DeviceIntRect {
let fb_height = self.framebuffer.height;
let mut view = self.viewport.clone();
diff --git a/components/servo/lib.rs b/components/servo/lib.rs
index ff84c4bf4ab..51df1f0c991 100644
--- a/components/servo/lib.rs
+++ b/components/servo/lib.rs
@@ -381,6 +381,11 @@ where
let wr_document_layer = 0; //TODO
let webrender_document =
webrender_api.add_document(coordinates.framebuffer, wr_document_layer);
+ webrender_api.set_document_view(
+ webrender_document,
+ coordinates.get_viewport(),
+ coordinates.hidpi_factor.get(),
+ );
// Important that this call is done in a single-threaded fashion, we
// can't defer it after `create_constellation` has started.