aboutsummaryrefslogtreecommitdiffstats
path: root/components/compositing/compositor.rs
diff options
context:
space:
mode:
authorMukilan Thiyagarajan <mukilan@igalia.com>2023-09-14 15:00:42 +0530
committerMukilan Thiyagarajan <mukilan@igalia.com>2023-09-14 15:00:42 +0530
commitc385b3c9737c17d59cb02e520c3b68b232cb6497 (patch)
treead598ffbbdfbcecd6a4cf458abe2afc702d92c27 /components/compositing/compositor.rs
parent988e05a68b48c9e744bf49459faf41a1bd9b81d7 (diff)
downloadservo-revert-webrender.tar.gz
servo-revert-webrender.zip
Revert "Upgrade WebRender to e491e1ae637b2eed1e7195855d88357e5eb3ddf9 (#30323)"revert-webrender
This reverts commit a9d37cb85ac2c55fc630fccffe1ba60ff00f555b.
Diffstat (limited to 'components/compositing/compositor.rs')
-rw-r--r--components/compositing/compositor.rs102
1 files changed, 51 insertions, 51 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);
}