diff options
author | Josh Matthews <josh@joshmatthews.net> | 2020-02-27 16:41:35 -0500 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2020-03-09 17:50:54 -0400 |
commit | fbcf2bbc3ef4ba0c37a6a8d77bfee96b08f3cccc (patch) | |
tree | ef5491416055e5f39910d6b84aa5cdeb0e410171 /components/canvas_traits/webgl_channel/mod.rs | |
parent | b062f514953c326ad8d1753de715bbb24ee68625 (diff) | |
download | servo-fbcf2bbc3ef4ba0c37a6a8d77bfee96b08f3cccc.tar.gz servo-fbcf2bbc3ef4ba0c37a6a8d77bfee96b08f3cccc.zip |
Integrate swapchain surface provider changes into webgl and webxr implementations.
Diffstat (limited to 'components/canvas_traits/webgl_channel/mod.rs')
-rw-r--r-- | components/canvas_traits/webgl_channel/mod.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/components/canvas_traits/webgl_channel/mod.rs b/components/canvas_traits/webgl_channel/mod.rs index 45c76d54605..86a6cd23bf4 100644 --- a/components/canvas_traits/webgl_channel/mod.rs +++ b/components/canvas_traits/webgl_channel/mod.rs @@ -9,6 +9,7 @@ mod mpsc; use crate::webgl::WebGLMsg; use ipc_channel::ipc::IpcSender; +use ipc_channel::router::ROUTER; use serde::{Deserialize, Serialize}; use servo_config::opts; use std::fmt; @@ -78,6 +79,18 @@ where WebGLReceiver::Mpsc(ref receiver) => receiver.try_recv().map_err(|_| ()), } } + + pub fn into_inner(self) -> crossbeam_channel::Receiver<T> + where + T: Send + 'static, + { + match self { + WebGLReceiver::Ipc(receiver) => { + ROUTER.route_ipc_receiver_to_new_crossbeam_receiver(receiver) + }, + WebGLReceiver::Mpsc(receiver) => receiver.into_inner(), + } + } } pub fn webgl_channel<T>() -> Result<(WebGLSender<T>, WebGLReceiver<T>), ()> |