diff options
author | Víctor Manuel Jáquez Leal <vjaquez@igalia.com> | 2019-06-14 14:41:36 +0200 |
---|---|---|
committer | Fernando Jiménez Moreno <ferjmoreno@gmail.com> | 2019-07-04 10:25:48 +0200 |
commit | a9ad088e707a637f9f7e223cc2a0419af41f726d (patch) | |
tree | 3658fd31fd55b56788434c16818b2aae6ce249df | |
parent | e000c14eb27dd6d1a0014cf428ad28518dd8cdcc (diff) | |
download | servo-a9ad088e707a637f9f7e223cc2a0419af41f726d.tar.gz servo-a9ad088e707a637f9f7e223cc2a0419af41f726d.zip |
Instanciate and use the implemented webrender::ExternalImageHandler
-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 { |