From a9ad088e707a637f9f7e223cc2a0419af41f726d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Fri, 14 Jun 2019 14:41:36 +0200 Subject: [PATCH] Instanciate and use the implemented webrender::ExternalImageHandler --- components/canvas/media_mode/inprocess.rs | 6 ++++-- 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 7a1c781bfee8..86ce201020bb 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); impl GLPlayerThreads { - pub fn new() -> GLPlayerThreads { + pub fn new() -> (GLPlayerThreads, Box) { 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 f95a2f804deb..185d5c5838ef 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 {