aboutsummaryrefslogtreecommitdiffstats
path: root/components/compositing
diff options
context:
space:
mode:
Diffstat (limited to 'components/compositing')
-rw-r--r--components/compositing/compositor.rs102
-rw-r--r--components/compositing/lib.rs2
2 files changed, 52 insertions, 52 deletions
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index 809d231d831..5f3068f21e6 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -42,14 +42,13 @@ use script_traits::{
use servo_geometry::{DeviceIndependentPixel, FramebufferUintLength};
use style_traits::{CSSPixel, DevicePixel, PinchZoomFactor};
use time::{now, precise_time_ns, precise_time_s};
-use webrender;
-use webrender::{CaptureBits, RenderApi, Transaction};
use webrender_api::units::{
DeviceIntPoint, DeviceIntSize, DevicePoint, LayoutPoint, LayoutVector2D, WorldPoint,
};
use webrender_api::{
- self, BuiltDisplayList, DirtyRect, DocumentId, Epoch as WebRenderEpoch, ExternalScrollId,
- HitTestFlags, PipelineId as WebRenderPipelineId, ScrollClamping, ScrollLocation, ZoomFactor,
+ self, BuiltDisplayList, CaptureBits, DirtyRect, DocumentId, Epoch as WebRenderEpoch,
+ ExternalScrollId, HitTestFlags, PipelineId as WebRenderPipelineId, RenderApi, ScrollClamping,
+ ScrollLocation, Transaction, ZoomFactor,
};
use webrender_surfman::WebrenderSurfman;
@@ -652,55 +651,58 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
WebRenderEpoch(0),
None,
Default::default(),
- (pipeline, Default::default()),
+ (pipeline, Default::default(), Default::default()),
false,
);
-
self.webrender_api
.send_transaction(self.webrender_document, txn);
},
- WebrenderMsg::Layout(script_traits::WebrenderMsg::SendScrollNode(point, scroll_id)) => {
+ WebrenderMsg::Layout(script_traits::WebrenderMsg::SendScrollNode(
+ point,
+ scroll_id,
+ clamping,
+ )) => {
self.waiting_for_results_of_scroll = true;
let mut txn = Transaction::new();
- txn.scroll_node_with_id(point, scroll_id, ScrollClamping::ToContentBounds);
- txn.generate_frame(0);
+ txn.scroll_node_with_id(point, scroll_id, clamping);
+ txn.generate_frame();
self.webrender_api
.send_transaction(self.webrender_document, txn);
},
WebrenderMsg::Layout(script_traits::WebrenderMsg::SendDisplayList {
display_list_info,
+ content_size,
display_list_descriptor,
display_list_receiver,
- }) => {
- let display_list_data = match display_list_receiver.recv() {
- Ok(display_list_data) => display_list_data,
- _ => return warn!("Could not recieve WebRender display list."),
- };
-
- self.waiting_on_pending_frame = true;
-
- let pipeline_id = display_list_info.pipeline_id;
- let details = self.pipeline_details(PipelineId::from_webrender(pipeline_id));
- details.hit_test_items = display_list_info.hit_test_info;
- details.install_new_scroll_tree(display_list_info.scroll_tree);
-
- let mut txn = Transaction::new();
- txn.set_display_list(
- display_list_info.epoch,
- None,
- display_list_info.viewport_size,
- (
- pipeline_id,
- BuiltDisplayList::from_data(display_list_data, display_list_descriptor),
- ),
- true,
- );
- txn.generate_frame(0);
- self.webrender_api
- .send_transaction(self.webrender_document, txn);
+ }) => match display_list_receiver.recv() {
+ Ok(data) => {
+ self.waiting_on_pending_frame = true;
+
+ let pipeline_id = display_list_info.pipeline_id;
+ let details = self.pipeline_details(PipelineId::from_webrender(pipeline_id));
+ details.hit_test_items = display_list_info.hit_test_info;
+ details.install_new_scroll_tree(display_list_info.scroll_tree);
+
+ let mut txn = Transaction::new();
+ txn.set_display_list(
+ display_list_info.epoch,
+ None,
+ display_list_info.viewport_size,
+ (
+ pipeline_id,
+ content_size,
+ BuiltDisplayList::from_data(data, display_list_descriptor),
+ ),
+ true,
+ );
+ txn.generate_frame();
+ self.webrender_api
+ .send_transaction(self.webrender_document, txn);
+ },
+ Err(e) => warn!("error receiving display list data: {e:?}"),
},
WebrenderMsg::Layout(script_traits::WebrenderMsg::HitTest(
@@ -876,7 +878,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
let pipeline_id = frame_tree.pipeline.id.to_webrender();
let mut txn = Transaction::new();
txn.set_root_pipeline(pipeline_id);
- txn.generate_frame(0);
+ txn.generate_frame();
self.webrender_api
.send_transaction(self.webrender_document, txn);
@@ -925,16 +927,14 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
self.pipeline_details.remove(&pipeline_id);
}
- fn send_window_size(&mut self, size_type: WindowSizeType) {
+ fn send_window_size(&self, size_type: WindowSizeType) {
let dppx = self.page_zoom * self.embedder_coordinates.hidpi_factor;
- let mut transaction = Transaction::new();
- transaction.set_document_view(
+ self.webrender_api.set_document_view(
+ self.webrender_document,
self.embedder_coordinates.get_viewport(),
self.embedder_coordinates.hidpi_factor.get(),
);
- self.webrender_api
- .send_transaction(self.webrender_document, transaction);
let initial_viewport = self.embedder_coordinates.viewport.size.to_f32() / dppx;
@@ -1197,17 +1197,17 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
pub fn on_scroll_event(
&mut self,
- scroll_location: ScrollLocation,
+ delta: ScrollLocation,
cursor: DeviceIntPoint,
phase: TouchEventType,
) {
match phase {
- TouchEventType::Move => self.on_scroll_window_event(scroll_location, cursor),
+ TouchEventType::Move => self.on_scroll_window_event(delta, cursor),
TouchEventType::Up | TouchEventType::Cancel => {
- self.on_scroll_window_event(scroll_location, cursor);
+ self.on_scroll_window_event(delta, cursor);
},
TouchEventType::Down => {
- self.on_scroll_window_event(scroll_location, cursor);
+ self.on_scroll_window_event(delta, cursor);
},
}
}
@@ -1215,7 +1215,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
fn on_scroll_window_event(&mut self, scroll_location: ScrollLocation, cursor: DeviceIntPoint) {
self.pending_scroll_zoom_events.push(ScrollZoomEvent {
magnification: 1.0,
- scroll_location,
+ scroll_location: scroll_location,
cursor: cursor,
event_count: 1,
});
@@ -1309,7 +1309,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
self.set_pinch_zoom_level(old_zoom * combined_event.magnification);
txn.set_pinch_zoom(ZoomFactor::new(self.pinch_zoom_level()));
}
- txn.generate_frame(0);
+ txn.generate_frame();
self.webrender_api
.send_transaction(self.webrender_document, txn);
self.waiting_for_results_of_scroll = true
@@ -1397,7 +1397,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
fn update_page_zoom_for_webrender(&mut self) {
let page_zoom = ZoomFactor::new(self.page_zoom.get());
- let mut txn = webrender::Transaction::new();
+ let mut txn = Transaction::new();
txn.set_page_zoom(page_zoom);
self.webrender_api
.send_transaction(self.webrender_document, txn);
@@ -1612,7 +1612,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
// Paint the scene.
// TODO(gw): Take notice of any errors the renderer returns!
self.clear_background();
- self.webrender.render(size, 0 /* buffer_age */).ok();
+ self.webrender.render(size).ok();
},
);
@@ -1907,7 +1907,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
self.webrender.set_debug_flags(flags);
let mut txn = Transaction::new();
- txn.generate_frame(0);
+ txn.generate_frame();
self.webrender_api
.send_transaction(self.webrender_document, txn);
}
diff --git a/components/compositing/lib.rs b/components/compositing/lib.rs
index 5eb6eeded48..6b22d81f0d1 100644
--- a/components/compositing/lib.rs
+++ b/components/compositing/lib.rs
@@ -9,8 +9,8 @@ use std::rc::Rc;
use compositing_traits::{CompositorProxy, CompositorReceiver, ConstellationMsg};
use crossbeam_channel::Sender;
use profile_traits::{mem, time};
-use webrender::RenderApi;
use webrender_api::DocumentId;
+use webrender_api::RenderApi;
use webrender_surfman::WebrenderSurfman;
pub use crate::compositor::{IOCompositor, ShutdownState};