diff options
-rw-r--r-- | components/canvas/media_mode/inprocess.rs | 6 | ||||
-rw-r--r-- | components/servo/lib.rs | 11 |
2 files changed, 12 insertions, 5 deletions
diff --git a/components/canvas/media_mode/inprocess.rs b/components/canvas/media_mode/inprocess.rs index 7a1c781bfee..86ce201020b 100644 --- a/components/canvas/media_mode/inprocess.rs +++ b/components/canvas/media_mode/inprocess.rs @@ -13,9 +13,11 @@ use euclid::Size2D; pub struct GLPlayerThreads(GLPlayerSender<GLPlayerMsg>); impl GLPlayerThreads { - pub fn new() -> GLPlayerThreads { + pub fn new() -> (GLPlayerThreads, Box<dyn webrender::ExternalImageHandler>) { let channel = GLPlayerThread::start(); - GLPlayerThreads(channel) + let external = + GLPlayerExternalImageHandler::new(GLPlayerExternalImages::new(channel.clone())); + (GLPlayerThreads(channel), Box::new(external)) } /// Gets the GLPlayerThread handle for each script pipeline. diff --git a/components/servo/lib.rs b/components/servo/lib.rs index f95a2f804de..185d5c5838e 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -309,8 +309,13 @@ where let gl_context = window.get_gl_context(); let glplayer_threads = match gl_context { GlContext::Unknown => None, - _ => Some(GLPlayerThreads::new()), + _ => { + let (glplayer_threads, image_handler) = GLPlayerThreads::new(); + webrender.set_external_image_handler(image_handler); + Some(glplayer_threads) + }, }; + let player_context = WindowGLContext { gl_context, native_display: window.get_native_display(), @@ -697,7 +702,7 @@ fn create_constellation( // Initialize WebGL Thread entry point. let webgl_threads = gl_factory.map(|factory| { - let (webgl_threads, image_handler, output_handler) = WebGLThreads::new( + let (webgl_threads, _image_handler, output_handler) = WebGLThreads::new( factory, window_gl, webrender_api_sender.clone(), @@ -705,7 +710,7 @@ fn create_constellation( ); // Set webrender external image handler for WebGL textures - webrender.set_external_image_handler(image_handler); + //webrender.set_external_image_handler(image_handler); // Set DOM to texture handler, if enabled. if let Some(output_handler) = output_handler { |