Skip to content
This repository was archived by the owner on Feb 16, 2025. It is now read-only.

Commit fcbdddb

Browse files
author
bors-servo
authored
Auto merge of #27 - Manishearth:gvr, r=asajeffrey
GoogleVR support Depends on #25 Not yet finished.
2 parents 96c964c + b00d879 commit fcbdddb

21 files changed

Lines changed: 1662 additions & 3 deletions

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
*~
22
target
33
Cargo.lock
4+
5+
.idea
6+
.vscode
7+
.gradle/
8+
build/
9+
*.iml
10+
local.properties

.travis.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ before_script:
1010
script:
1111
- cargo fmt --all -- --check
1212
- cd webxr
13-
- cargo build --features=glwindow,headless
14-
- cargo build --features=ipc,glwindow,headless
13+
- cargo build --features=glwindow,headless,googlevr
14+
- cargo build --features=ipc,glwindow,headless,googlevr
15+
- rustup target add arm-linux-androideabi
16+
- cargo build --target arm-linux-androideabi --features=ipc,googlevr
1517

1618
notifications:
1719
webhooks: http://build.servo.org:54856/travis

webxr-api/error.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ use serde::{Deserialize, Serialize};
1414
pub enum Error {
1515
NoMatchingDevice,
1616
CommunicationError,
17+
BackendSpecific(String),
1718
}

webxr/Cargo.toml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,19 @@ path = "lib.rs"
2222
glwindow = ["glutin"]
2323
headless = []
2424
ipc = ["webxr-api/ipc"]
25+
googlevr = ["gvr-sys", "android_injected_glue"]
26+
2527

2628
[dependencies]
2729
webxr-api = { path = "../webxr-api" }
2830
euclid = "0.20"
2931
gleam = "0.6"
3032
glutin = { version = "0.21", optional = true }
31-
log = "0.4"
33+
log = "0.4.6"
34+
gvr-sys = { version = "0.7", optional = true }
35+
36+
[target.'cfg(target_os = "android")'.dependencies]
37+
android_injected_glue = { version = "0.2.2", optional = true }
38+
39+
[build-dependencies]
40+
gl_generator = "0.11"

webxr/build.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
use gl_generator::{Api, Fallbacks, Profile, Registry};
2+
use std::env;
3+
use std::fs::{self, File};
4+
use std::path::Path;
5+
6+
fn main() {
7+
// Copy AARs
8+
if let Ok(aar_out_dir) = env::var("AAR_OUT_DIR") {
9+
fs::copy(
10+
&Path::new("googlevr/aar/GVRService.aar"),
11+
&Path::new(&aar_out_dir).join("GVRService.aar"),
12+
)
13+
.unwrap();
14+
}
15+
16+
if !cfg!(feature = "googlevr") {
17+
return;
18+
}
19+
20+
let out_dir = env::var("OUT_DIR").unwrap();
21+
22+
// GLES 2.0 bindings
23+
let mut file = File::create(&Path::new(&out_dir).join("gles_bindings.rs")).unwrap();
24+
let gles_reg = Registry::new(Api::Gles2, (3, 0), Profile::Core, Fallbacks::All, []);
25+
gles_reg
26+
.write_bindings(gl_generator::StaticGenerator, &mut file)
27+
.unwrap();
28+
}

webxr/googlevr/aar/GVRService.aar

6.65 KB
Binary file not shown.

0 commit comments

Comments
 (0)