diff options
author | Paul Rouget <me@paulrouget.com> | 2019-04-17 10:18:14 +0200 |
---|---|---|
committer | Paul Rouget <me@paulrouget.com> | 2019-04-29 10:04:51 +0200 |
commit | 21ed7653f491d9e378aa7a334b40e7327f4bfc90 (patch) | |
tree | 28ef0394a720aa569d25dd2f6989a16ea11a3708 /components/servo/lib.rs | |
parent | d58ea974baff1b51a43d2e2bf4b287ff11991a8d (diff) | |
download | servo-21ed7653f491d9e378aa7a334b40e7327f4bfc90.tar.gz servo-21ed7653f491d9e378aa7a334b40e7327f4bfc90.zip |
Refactoring of the Glutin port in preparation of the compositor refactoring.
Diffstat (limited to 'components/servo/lib.rs')
-rw-r--r-- | components/servo/lib.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/components/servo/lib.rs b/components/servo/lib.rs index d919613c9c0..d3d8d8eb1cb 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -67,7 +67,7 @@ use canvas::webgl_thread::WebGLThreads; use compositing::compositor_thread::{ CompositorProxy, CompositorReceiver, InitialCompositorState, Msg, }; -use compositing::windowing::{WindowEvent, WindowMethods}; +use compositing::windowing::{EmbedderMethods, WindowEvent, WindowMethods}; use compositing::{CompositingReason, IOCompositor, ShutdownState}; #[cfg(all( not(target_os = "windows"), @@ -148,7 +148,7 @@ type MediaBackend = media_platform::MediaBackend; /// application Servo is embedded in. Clients then create an event /// loop to pump messages between the embedding application and /// various browser components. -pub struct Servo<Window: WindowMethods + 'static> { +pub struct Servo<Window: WindowMethods + 'static + ?Sized> { compositor: IOCompositor<Window>, constellation_chan: Sender<ConstellationMsg>, embedder_receiver: EmbedderReceiver, @@ -197,9 +197,9 @@ impl webrender_api::RenderNotifier for RenderNotifier { impl<Window> Servo<Window> where - Window: WindowMethods + 'static, + Window: WindowMethods + 'static + ?Sized, { - pub fn new(window: Rc<Window>) -> Servo<Window> { + pub fn new(embedder: Box<EmbedderMethods>, window: Rc<Window>) -> Servo<Window> { // Global configuration options, parsed from the command line. let opts = opts::get(); @@ -218,9 +218,9 @@ where // messages to client may need to pump a platform-specific event loop // to deliver the message. let (compositor_proxy, compositor_receiver) = - create_compositor_channel(window.create_event_loop_waker()); + create_compositor_channel(embedder.create_event_loop_waker()); let (embedder_proxy, embedder_receiver) = - create_embedder_channel(window.create_event_loop_waker()); + create_embedder_channel(embedder.create_event_loop_waker()); let time_profiler_chan = profile_time::Profiler::create( &opts.time_profiling, opts.time_profiler_trace_path.clone(), @@ -288,7 +288,7 @@ where let webvr_services = if pref!(dom.webvr.enabled) { let mut services = VRServiceManager::new(); services.register_defaults(); - window.register_vr_services(&mut services, &mut webvr_heartbeats); + embedder.register_vr_services(&mut services, &mut webvr_heartbeats); Some(services) } else { None |