mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Instanciate and use the implemented webrender::ExternalImageHandler
This commit is contained in:
parent
e000c14eb2
commit
a9ad088e70
2 changed files with 12 additions and 5 deletions
|
@ -13,9 +13,11 @@ use euclid::Size2D;
|
||||||
pub struct GLPlayerThreads(GLPlayerSender<GLPlayerMsg>);
|
pub struct GLPlayerThreads(GLPlayerSender<GLPlayerMsg>);
|
||||||
|
|
||||||
impl GLPlayerThreads {
|
impl GLPlayerThreads {
|
||||||
pub fn new() -> GLPlayerThreads {
|
pub fn new() -> (GLPlayerThreads, Box<dyn webrender::ExternalImageHandler>) {
|
||||||
let channel = GLPlayerThread::start();
|
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.
|
/// Gets the GLPlayerThread handle for each script pipeline.
|
||||||
|
|
|
@ -309,8 +309,13 @@ where
|
||||||
let gl_context = window.get_gl_context();
|
let gl_context = window.get_gl_context();
|
||||||
let glplayer_threads = match gl_context {
|
let glplayer_threads = match gl_context {
|
||||||
GlContext::Unknown => None,
|
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 {
|
let player_context = WindowGLContext {
|
||||||
gl_context,
|
gl_context,
|
||||||
native_display: window.get_native_display(),
|
native_display: window.get_native_display(),
|
||||||
|
@ -697,7 +702,7 @@ fn create_constellation(
|
||||||
|
|
||||||
// Initialize WebGL Thread entry point.
|
// Initialize WebGL Thread entry point.
|
||||||
let webgl_threads = gl_factory.map(|factory| {
|
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,
|
factory,
|
||||||
window_gl,
|
window_gl,
|
||||||
webrender_api_sender.clone(),
|
webrender_api_sender.clone(),
|
||||||
|
@ -705,7 +710,7 @@ fn create_constellation(
|
||||||
);
|
);
|
||||||
|
|
||||||
// Set webrender external image handler for WebGL textures
|
// 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.
|
// Set DOM to texture handler, if enabled.
|
||||||
if let Some(output_handler) = output_handler {
|
if let Some(output_handler) = output_handler {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue