Add a pref for webxr glwindow anaglyphic red-cyan stereo

This commit is contained in:
Alan Jeffrey 2020-04-28 18:24:36 -05:00
parent 28d2cbf6bc
commit d4f0dbce25
5 changed files with 19 additions and 6 deletions

4
Cargo.lock generated
View file

@ -6428,7 +6428,7 @@ dependencies = [
[[package]] [[package]]
name = "webxr" name = "webxr"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/webxr#eae68436697131122504b035746daa3a157b36b4" source = "git+https://github.com/servo/webxr#e1e935abacbef378efd3c5a676dfe63d4e5a6692"
dependencies = [ dependencies = [
"android_injected_glue", "android_injected_glue",
"bindgen", "bindgen",
@ -6451,7 +6451,7 @@ dependencies = [
[[package]] [[package]]
name = "webxr-api" name = "webxr-api"
version = "0.0.1" version = "0.0.1"
source = "git+https://github.com/servo/webxr#eae68436697131122504b035746daa3a157b36b4" source = "git+https://github.com/servo/webxr#e1e935abacbef378efd3c5a676dfe63d4e5a6692"
dependencies = [ dependencies = [
"euclid", "euclid",
"ipc-channel", "ipc-channel",

View file

@ -297,8 +297,12 @@ mod gen {
enabled: bool, enabled: bool,
#[serde(default)] #[serde(default)]
test: bool, test: bool,
glwindow: {
#[serde(default)] #[serde(default)]
glwindow: bool, enabled: bool,
#[serde(rename = "dom.webxr.glwindow.red-cyan")]
red_cyan: bool,
},
hands: { hands: {
#[serde(default)] #[serde(default)]
enabled: bool, enabled: bool,

View file

@ -54,7 +54,7 @@ impl App {
)) ))
}; };
let xr_discovery = if pref!(dom.webxr.glwindow) { let xr_discovery = if pref!(dom.webxr.glwindow.enabled) {
let window = window.clone(); let window = window.clone();
let surfman = window.webrender_surfman(); let surfman = window.webrender_surfman();
let events_loop = events_loop.clone(); let events_loop = events_loop.clone();

View file

@ -651,6 +651,14 @@ impl webxr::glwindow::GlWindow for XRWindow {
fn get_translation(&self) -> Vector3D<f32, UnknownUnit> { fn get_translation(&self) -> Vector3D<f32, UnknownUnit> {
self.pose.xr_translation.get().clone() self.pose.xr_translation.get().clone()
} }
fn get_mode(&self) -> webxr::glwindow::GlWindowMode {
if pref!(dom.webxr.glwindow.red_cyan) {
webxr::glwindow::GlWindowMode::StereoRedCyan
} else {
webxr::glwindow::GlWindowMode::StereoLeftRight
}
}
} }
impl XRWindowPose { impl XRWindowPose {

View file

@ -33,7 +33,8 @@
"dom.webvr.test": false, "dom.webvr.test": false,
"dom.webvtt.enabled": false, "dom.webvtt.enabled": false,
"dom.webxr.enabled": true, "dom.webxr.enabled": true,
"dom.webxr.glwindow": true, "dom.webxr.glwindow.enabled": true,
"dom.webxr.glwindow.red-cyan": false,
"dom.webxr.hands.enabled": false, "dom.webxr.hands.enabled": false,
"dom.webxr.layers.enabled": false, "dom.webxr.layers.enabled": false,
"dom.webxr.test": false, "dom.webxr.test": false,