aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <servo-ops@mozilla.com>2020-04-29 22:06:23 -0400
committerGitHub <noreply@github.com>2020-04-29 22:06:23 -0400
commit343f249c1d1dbd46d0712e34c1baa9aafe19a75a (patch)
treedee5dc3e9b9f40a3f4644693fccc07eac00bc3de
parentd1279ebdc66f8735eb29f051df365c74b0a5f1f5 (diff)
parentd4f0dbce25ae21f99548202ebf53525d9428a4f5 (diff)
downloadservo-343f249c1d1dbd46d0712e34c1baa9aafe19a75a.tar.gz
servo-343f249c1d1dbd46d0712e34c1baa9aafe19a75a.zip
Auto merge of #26352 - asajeffrey:webxr-glwindow-red-cyan, r=Manishearth
Add a pref for webxr glwindow anaglyphic red-cyan stereo <!-- Please describe your changes on the following line: --> Allows us to test out 3D content using old-skule glasses. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes do not require tests because it's back end work <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
-rw-r--r--Cargo.lock4
-rw-r--r--components/config/prefs.rs8
-rw-r--r--ports/glutin/app.rs2
-rw-r--r--ports/glutin/headed_window.rs8
-rw-r--r--resources/prefs.json3
5 files changed, 19 insertions, 6 deletions
diff --git a/Cargo.lock b/Cargo.lock
index bf1e2cf2331..8b68a7176a4 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -6428,7 +6428,7 @@ dependencies = [
[[package]]
name = "webxr"
version = "0.0.1"
-source = "git+https://github.com/servo/webxr#eae68436697131122504b035746daa3a157b36b4"
+source = "git+https://github.com/servo/webxr#e1e935abacbef378efd3c5a676dfe63d4e5a6692"
dependencies = [
"android_injected_glue",
"bindgen",
@@ -6451,7 +6451,7 @@ dependencies = [
[[package]]
name = "webxr-api"
version = "0.0.1"
-source = "git+https://github.com/servo/webxr#eae68436697131122504b035746daa3a157b36b4"
+source = "git+https://github.com/servo/webxr#e1e935abacbef378efd3c5a676dfe63d4e5a6692"
dependencies = [
"euclid",
"ipc-channel",
diff --git a/components/config/prefs.rs b/components/config/prefs.rs
index 25c59352693..b6f2030ad9c 100644
--- a/components/config/prefs.rs
+++ b/components/config/prefs.rs
@@ -297,8 +297,12 @@ mod gen {
enabled: bool,
#[serde(default)]
test: bool,
- #[serde(default)]
- glwindow: bool,
+ glwindow: {
+ #[serde(default)]
+ enabled: bool,
+ #[serde(rename = "dom.webxr.glwindow.red-cyan")]
+ red_cyan: bool,
+ },
hands: {
#[serde(default)]
enabled: bool,
diff --git a/ports/glutin/app.rs b/ports/glutin/app.rs
index 7b4adca6e28..e200015c8c9 100644
--- a/ports/glutin/app.rs
+++ b/ports/glutin/app.rs
@@ -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 surfman = window.webrender_surfman();
let events_loop = events_loop.clone();
diff --git a/ports/glutin/headed_window.rs b/ports/glutin/headed_window.rs
index abfe328431a..d15520b2125 100644
--- a/ports/glutin/headed_window.rs
+++ b/ports/glutin/headed_window.rs
@@ -651,6 +651,14 @@ impl webxr::glwindow::GlWindow for XRWindow {
fn get_translation(&self) -> Vector3D<f32, UnknownUnit> {
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 {
diff --git a/resources/prefs.json b/resources/prefs.json
index 1d578ee74d6..61d24c83f65 100644
--- a/resources/prefs.json
+++ b/resources/prefs.json
@@ -33,7 +33,8 @@
"dom.webvr.test": false,
"dom.webvtt.enabled": false,
"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.layers.enabled": false,
"dom.webxr.test": false,