diff options
author | Mukilan Thiyagarajan <mukilan@igalia.com> | 2023-09-14 15:00:42 +0530 |
---|---|---|
committer | Mukilan Thiyagarajan <mukilan@igalia.com> | 2023-09-14 15:00:42 +0530 |
commit | c385b3c9737c17d59cb02e520c3b68b232cb6497 (patch) | |
tree | ad598ffbbdfbcecd6a4cf458abe2afc702d92c27 /components/compositing/compositor.rs | |
parent | 988e05a68b48c9e744bf49459faf41a1bd9b81d7 (diff) | |
download | servo-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.rs | 102 |
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); } |