diff --git a/Cargo.lock b/Cargo.lock index fab3ceb8e28..27778dad793 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5554,7 +5554,7 @@ dependencies = [ [[package]] name = "surfman" version = "0.2.0" -source = "git+https://github.com/servo/surfman#41ac1ee64bc2d1978aeed0f8bf549c57f20ec7c8" +source = "git+https://github.com/servo/surfman#bc084411664b04dba777659e5ce16b5f95b7371a" dependencies = [ "bitflags", "cfg_aliases", @@ -5570,6 +5570,7 @@ dependencies = [ "libc", "log", "mach", + "metal", "objc", "parking_lot", "wayland-sys 0.24.0", @@ -6446,7 +6447,7 @@ dependencies = [ [[package]] name = "webxr" version = "0.0.1" -source = "git+https://github.com/servo/webxr#755a872672c80d71651a305600b97526952d5293" +source = "git+https://github.com/servo/webxr#e30ebd848c4deb95833c2fea91d7d8d34f6d8ed8" dependencies = [ "android_injected_glue", "bindgen", @@ -6469,7 +6470,7 @@ dependencies = [ [[package]] name = "webxr-api" version = "0.0.1" -source = "git+https://github.com/servo/webxr#755a872672c80d71651a305600b97526952d5293" +source = "git+https://github.com/servo/webxr#e30ebd848c4deb95833c2fea91d7d8d34f6d8ed8" dependencies = [ "euclid", "ipc-channel", @@ -6477,7 +6478,6 @@ dependencies = [ "serde", "surfman-chains-api", "time", - "winit", ] [[package]] diff --git a/ports/libsimpleservo/api/src/lib.rs b/ports/libsimpleservo/api/src/lib.rs index 0eca0aa679f..cf133ff0a5b 100644 --- a/ports/libsimpleservo/api/src/lib.rs +++ b/ports/libsimpleservo/api/src/lib.rs @@ -40,6 +40,7 @@ use std::mem; use std::os::raw::c_void; use std::path::PathBuf; use std::rc::Rc; +use surfman::Adapter; use surfman::Connection; use surfman::SurfaceType; @@ -211,9 +212,12 @@ pub fn init( // Initialize surfman let connection = Connection::new().or(Err("Failed to create connection"))?; - let adapter = connection - .create_adapter() - .or(Err("Failed to create adapter"))?; + let adapter = match create_adapter() { + Some(adapter) => adapter, + None => connection + .create_adapter() + .or(Err("Failed to create adapter"))?, + }; let native_widget = unsafe { connection.create_native_widget_from_ptr( init_opts.native_widget, @@ -950,3 +954,13 @@ impl ResourceReaderMethods for ResourceReaderInstance { vec![] } } + +#[cfg(feature = "uwp")] +fn create_adapter() -> Option { + webxr::openxr::create_surfman_adapter() +} + +#[cfg(not(feature = "uwp"))] +fn create_adapter() -> Option { + None +}