diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 185d5c5838e..9917c8bea9a 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -306,21 +306,11 @@ where None }; - let gl_context = window.get_gl_context(); - let glplayer_threads = match gl_context { - GlContext::Unknown => None, - _ => { - let (glplayer_threads, image_handler) = GLPlayerThreads::new(); - webrender.set_external_image_handler(image_handler); - Some(glplayer_threads) - }, - }; - let player_context = WindowGLContext { - gl_context, + gl_context: window.get_gl_context(), native_display: window.get_native_display(), gl_api: window.get_gl_api(), - glplayer_chan: glplayer_threads.as_ref().map(|threads| threads.pipeline()), + glplayer_chan: None, }; // Create the constellation, which maintains the engine @@ -341,7 +331,6 @@ where window.gl(), webvr_services, webxr_registry, - glplayer_threads, player_context, ); @@ -653,7 +642,6 @@ fn create_constellation( window_gl: Rc, webvr_services: Option, webxr_registry: webxr_api::Registry, - glplayer_threads: Option, player_context: WindowGLContext, ) -> (Sender, SWManagerSenders) { // Global configuration options, parsed from the command line. @@ -720,6 +708,20 @@ fn create_constellation( webgl_threads }); + let glplayer_threads = match player_context.gl_context { + GlContext::Unknown => None, + _ => { + let (glplayer_threads, image_handler) = GLPlayerThreads::new(); + webrender.set_external_image_handler(image_handler); + Some(glplayer_threads) + }, + }; + + let player_context = WindowGLContext { + glplayer_chan: glplayer_threads.as_ref().map(|threads| threads.pipeline()), + ..player_context + }; + let initial_state = InitialConstellationState { compositor_proxy, embedder_proxy,