Use webxr IPC to get a WebXR device registry to each script thread

This commit is contained in:
Alan Jeffrey 2019-07-02 12:34:58 -05:00
parent fee1418b43
commit 9eb75d4ea6
12 changed files with 148 additions and 35 deletions

View file

@ -111,6 +111,7 @@ uuid = {version = "0.7", features = ["v4"]}
xml5ever = {version = "0.14"}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}
webvr_traits = {path = "../webvr_traits"}
webxr-api = {git = "https://github.com/servo/webxr", features = ["ipc"]}
[target.'cfg(not(target_os = "ios"))'.dependencies]
mozangle = "0.2"

View file

@ -485,6 +485,7 @@ unsafe_no_jsmanaged_fields!(WebGLVersion);
unsafe_no_jsmanaged_fields!(WebGLSLVersion);
unsafe_no_jsmanaged_fields!(MediaList);
unsafe_no_jsmanaged_fields!(WebVRGamepadData, WebVRGamepadState, WebVRGamepadHand);
unsafe_no_jsmanaged_fields!(webxr_api::Registry);
unsafe_no_jsmanaged_fields!(ScriptToConstellationChan);
unsafe_no_jsmanaged_fields!(InteractiveMetrics);
unsafe_no_jsmanaged_fields!(InteractiveWindow);

View file

@ -626,6 +626,9 @@ pub struct ScriptThread {
/// A handle to the webvr thread, if available
webvr_chan: Option<IpcSender<WebVRMsg>>,
/// The WebXR device registry
webxr_registry: webxr_api::Registry,
/// The worklet thread pool
worklet_thread_pool: DomRefCell<Option<Rc<WorkletThreadPool>>>,
@ -1212,6 +1215,7 @@ impl ScriptThread {
webgl_chan: state.webgl_chan,
webvr_chan: state.webvr_chan,
webxr_registry: state.webxr_registry,
worklet_thread_pool: Default::default(),