mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Upgrade to the latest version of WebRender
This commit is contained in:
parent
4b6e79337e
commit
e58e8ab42e
88 changed files with 554 additions and 521 deletions
|
@ -34,7 +34,7 @@ use style_traits::viewport::ViewportConstraints;
|
|||
use time::{precise_time_ns, precise_time_s};
|
||||
use touch::{TouchHandler, TouchAction};
|
||||
use webrender;
|
||||
use webrender_traits::{self, ClipId, LayoutPoint, LayoutVector2D, ScrollEventPhase, ScrollLocation, ScrollClamping};
|
||||
use webrender_api::{self, ClipId, LayoutPoint, LayoutVector2D, ScrollEventPhase, ScrollLocation, ScrollClamping};
|
||||
use windowing::{self, MouseWindowEvent, WindowEvent, WindowMethods, WindowNavigateMsg};
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
|
@ -58,7 +58,7 @@ trait ConvertPipelineIdFromWebRender {
|
|||
fn from_webrender(&self) -> PipelineId;
|
||||
}
|
||||
|
||||
impl ConvertPipelineIdFromWebRender for webrender_traits::PipelineId {
|
||||
impl ConvertPipelineIdFromWebRender for webrender_api::PipelineId {
|
||||
fn from_webrender(&self) -> PipelineId {
|
||||
PipelineId {
|
||||
namespace_id: PipelineNamespaceId(self.0),
|
||||
|
@ -180,7 +180,7 @@ pub struct IOCompositor<Window: WindowMethods> {
|
|||
webrender: webrender::Renderer,
|
||||
|
||||
/// The webrender interface, if enabled.
|
||||
webrender_api: webrender_traits::RenderApi,
|
||||
webrender_api: webrender_api::RenderApi,
|
||||
|
||||
/// GL functions interface (may be GL or GLES)
|
||||
gl: Rc<gl::Gl>,
|
||||
|
@ -315,7 +315,7 @@ impl RenderNotifier {
|
|||
}
|
||||
}
|
||||
|
||||
impl webrender_traits::RenderNotifier for RenderNotifier {
|
||||
impl webrender_api::RenderNotifier for RenderNotifier {
|
||||
fn new_frame_ready(&mut self) {
|
||||
self.compositor_proxy.recomposite(CompositingReason::NewWebRenderFrame);
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ struct CompositorThreadDispatcher {
|
|||
compositor_proxy: CompositorProxy
|
||||
}
|
||||
|
||||
impl webrender_traits::RenderDispatcher for CompositorThreadDispatcher {
|
||||
impl webrender_api::RenderDispatcher for CompositorThreadDispatcher {
|
||||
fn dispatch(&self, f: Box<Fn() + Send>) {
|
||||
self.compositor_proxy.send(Msg::Dispatch(f));
|
||||
}
|
||||
|
@ -704,12 +704,12 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
let dppx = self.page_zoom * self.hidpi_factor();
|
||||
|
||||
let window_rect = {
|
||||
let offset = webrender_traits::DeviceUintPoint::new(self.window_rect.origin.x, self.window_rect.origin.y);
|
||||
let size = webrender_traits::DeviceUintSize::new(self.window_rect.size.width, self.window_rect.size.height);
|
||||
webrender_traits::DeviceUintRect::new(offset, size)
|
||||
let offset = webrender_api::DeviceUintPoint::new(self.window_rect.origin.x, self.window_rect.origin.y);
|
||||
let size = webrender_api::DeviceUintSize::new(self.window_rect.size.width, self.window_rect.size.height);
|
||||
webrender_api::DeviceUintRect::new(offset, size)
|
||||
};
|
||||
|
||||
let frame_size = webrender_traits::DeviceUintSize::new(self.frame_size.width, self.frame_size.height);
|
||||
let frame_size = webrender_api::DeviceUintSize::new(self.frame_size.width, self.frame_size.height);
|
||||
self.webrender_api.set_window_parameters(frame_size, window_rect);
|
||||
|
||||
let initial_viewport = self.window_rect.size.to_f32() / dppx;
|
||||
|
@ -988,7 +988,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
let cursor = TypedPoint2D::new(-1, -1); // Make sure this hits the base layer.
|
||||
self.pending_scroll_zoom_events.push(ScrollZoomEvent {
|
||||
magnification: magnification,
|
||||
scroll_location: ScrollLocation::Delta(webrender_traits::LayoutVector2D::from_untyped(
|
||||
scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
|
||||
&scroll_delta.to_untyped())),
|
||||
cursor: cursor,
|
||||
phase: ScrollEventPhase::Move(true),
|
||||
|
@ -1128,8 +1128,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
|
||||
let cursor =
|
||||
(combined_event.cursor.to_f32() / self.scale).to_untyped();
|
||||
let location = webrender_traits::ScrollLocation::Delta(delta);
|
||||
let cursor = webrender_traits::WorldPoint::from_untyped(&cursor);
|
||||
let location = webrender_api::ScrollLocation::Delta(delta);
|
||||
let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
|
||||
self.webrender_api.scroll(location, cursor, combined_event.phase);
|
||||
last_combined_event = None
|
||||
}
|
||||
|
@ -1139,7 +1139,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
(last_combined_event @ &mut None, _) => {
|
||||
*last_combined_event = Some(ScrollZoomEvent {
|
||||
magnification: scroll_event.magnification,
|
||||
scroll_location: ScrollLocation::Delta(webrender_traits::LayoutVector2D::from_untyped(
|
||||
scroll_location: ScrollLocation::Delta(webrender_api::LayoutVector2D::from_untyped(
|
||||
&this_delta.to_untyped())),
|
||||
cursor: this_cursor,
|
||||
phase: scroll_event.phase,
|
||||
|
@ -1178,14 +1178,14 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
ScrollLocation::Delta(delta) => {
|
||||
let scaled_delta = (TypedVector2D::from_untyped(&delta.to_untyped()) / self.scale)
|
||||
.to_untyped();
|
||||
let calculated_delta = webrender_traits::LayoutVector2D::from_untyped(&scaled_delta);
|
||||
let calculated_delta = webrender_api::LayoutVector2D::from_untyped(&scaled_delta);
|
||||
ScrollLocation::Delta(calculated_delta)
|
||||
},
|
||||
// Leave ScrollLocation unchanged if it is Start or End location.
|
||||
sl @ ScrollLocation::Start | sl @ ScrollLocation::End => sl,
|
||||
};
|
||||
let cursor = (combined_event.cursor.to_f32() / self.scale).to_untyped();
|
||||
let cursor = webrender_traits::WorldPoint::from_untyped(&cursor);
|
||||
let cursor = webrender_api::WorldPoint::from_untyped(&cursor);
|
||||
self.webrender_api.scroll(scroll_location, cursor, combined_event.phase);
|
||||
self.waiting_for_results_of_scroll = true
|
||||
}
|
||||
|
@ -1283,7 +1283,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
}
|
||||
|
||||
fn update_page_zoom_for_webrender(&mut self) {
|
||||
let page_zoom = webrender_traits::ZoomFactor::new(self.page_zoom.get());
|
||||
let page_zoom = webrender_api::ZoomFactor::new(self.page_zoom.get());
|
||||
self.webrender_api.set_page_zoom(page_zoom);
|
||||
}
|
||||
|
||||
|
@ -1381,8 +1381,8 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
let mut pipeline_epochs = HashMap::new();
|
||||
for (id, _) in &self.pipeline_details {
|
||||
let webrender_pipeline_id = id.to_webrender();
|
||||
if let Some(webrender_traits::Epoch(epoch)) = self.webrender
|
||||
.current_epoch(webrender_pipeline_id) {
|
||||
if let Some(webrender_api::Epoch(epoch)) = self.webrender
|
||||
.current_epoch(webrender_pipeline_id) {
|
||||
let epoch = Epoch(epoch);
|
||||
pipeline_epochs.insert(*id, epoch);
|
||||
}
|
||||
|
@ -1475,7 +1475,7 @@ impl<Window: WindowMethods> IOCompositor<Window> {
|
|||
debug!("compositor: compositing");
|
||||
|
||||
// Paint the scene.
|
||||
let size = webrender_traits::DeviceUintSize::from_untyped(&self.frame_size.to_untyped());
|
||||
let size = webrender_api::DeviceUintSize::from_untyped(&self.frame_size.to_untyped());
|
||||
self.webrender.render(size);
|
||||
});
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue