Remove UWP / Hololens support

This commit is contained in:
Martin Robinson 2023-07-05 08:46:07 +02:00
parent 041d95e0f4
commit c58d74fe62
No known key found for this signature in database
GPG key ID: D56AA4FA55EFE6F8
97 changed files with 54 additions and 7084 deletions

View file

@ -48,7 +48,6 @@ no_static_freetype = ["libservo/no_static_freetype"]
no-wgl = ["libservo/no-wgl"]
profilemozjs = ["libservo/profilemozjs"]
refcell_backtrace = ["libservo/refcell_backtrace"]
uwp = ["libservo/uwp", "webxr/openxr-api"]
webdriver = ["libservo/webdriver"]
webgl_backtrace = ["libservo/webgl_backtrace"]
xr-profile = ["libservo/xr-profile"]

View file

@ -49,22 +49,6 @@ fn main() {
let mut pkg_prefs = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
pkg_prefs.push("../../../resources/package-prefs.json");
let pkg_prefs: Value = serde_json::from_reader(File::open(&pkg_prefs).unwrap()).unwrap();
if target.contains("uwp") {
// Assuming Hololens build
let to_merge = pkg_prefs
.as_object()
.unwrap()
.get("hololens")
.unwrap()
.as_object()
.unwrap();
for (key, value) in to_merge.iter() {
prefs
.as_object_mut()
.unwrap()
.insert(key.clone(), value.clone());
}
}
let file = File::create(&dest.join("prefs.json")).unwrap();
serde_json::to_writer(file, &prefs).unwrap();
}

View file

@ -267,12 +267,9 @@ pub fn init(
// Initialize surfman
let connection = Connection::new().or(Err("Failed to create connection"))?;
let adapter = match create_adapter() {
Some(adapter) => adapter,
None => connection
.create_adapter()
.or(Err("Failed to create adapter"))?,
};
let adapter = connection
.create_adapter()
.or(Err("Failed to create adapter"))?;
let surface_type = match init_opts.surfman_integration {
SurfmanIntegration::Widget(native_widget) => {
let native_widget = unsafe {
@ -824,79 +821,6 @@ struct ServoWindowCallbacks {
}
impl EmbedderMethods for ServoEmbedderCallbacks {
#[cfg(feature = "uwp")]
fn register_webxr(
&mut self,
registry: &mut webxr::MainThreadRegistry,
embedder_proxy: EmbedderProxy,
) {
use ipc_channel::ipc::{self, IpcReceiver};
use webxr::openxr;
debug!("EmbedderMethods::register_xr");
assert!(
self.xr_discovery.is_none(),
"UWP builds should not be initialized with a WebXR Discovery object"
);
#[derive(Clone)]
struct ContextMenuCallback(EmbedderProxy);
struct ContextMenuFuture(IpcReceiver<ContextMenuResult>);
impl openxr::ContextMenuProvider for ContextMenuCallback {
fn open_context_menu(&self) -> Box<dyn openxr::ContextMenuFuture> {
let (sender, receiver) = ipc::channel().unwrap();
self.0.send((
None,
EmbedderMsg::ShowContextMenu(
sender,
Some("Would you like to exit the XR session?".into()),
vec!["Exit".into()],
),
));
Box::new(ContextMenuFuture(receiver))
}
fn clone_object(&self) -> Box<dyn openxr::ContextMenuProvider> {
Box::new(self.clone())
}
}
impl openxr::ContextMenuFuture for ContextMenuFuture {
fn poll(&self) -> openxr::ContextMenuResult {
if let Ok(result) = self.0.try_recv() {
if let ContextMenuResult::Selected(0) = result {
openxr::ContextMenuResult::ExitSession
} else {
openxr::ContextMenuResult::Dismissed
}
} else {
openxr::ContextMenuResult::Pending
}
}
}
if openxr::create_instance(false, false).is_ok() {
let discovery =
openxr::OpenXrDiscovery::new(Box::new(ContextMenuCallback(embedder_proxy)));
registry.register(discovery);
} else {
let msg =
"Cannot initialize OpenXR - please ensure runtime is installed and enabled in \
the OpenXR developer portal app.\n\nImmersive mode will not function until \
this error is fixed.";
let (sender, _receiver) = ipc::channel().unwrap();
embedder_proxy.send((
None,
EmbedderMsg::Prompt(
PromptDefinition::Alert(msg.to_owned(), sender),
PromptOrigin::Trusted,
),
));
}
}
#[cfg(not(feature = "uwp"))]
fn register_webxr(
&mut self,
registry: &mut webxr::MainThreadRegistry,
@ -1002,13 +926,3 @@ impl ResourceReaderMethods for ResourceReaderInstance {
vec![]
}
}
#[cfg(feature = "uwp")]
fn create_adapter() -> Option<Adapter> {
webxr::openxr::create_surfman_adapter()
}
#[cfg(not(feature = "uwp"))]
fn create_adapter() -> Option<Adapter> {
None
}

View file

@ -43,7 +43,6 @@ native-bluetooth = ["simpleservo/native-bluetooth"]
no-wgl = ["simpleservo/no-wgl"]
profilemozjs = ["simpleservo/profilemozjs"]
refcell_backtrace = ["simpleservo/refcell_backtrace"]
uwp = ["simpleservo/uwp"]
webdriver = ["simpleservo/webdriver"]
webgl_backtrace = ["simpleservo/webgl_backtrace"]
xr-profile = ["simpleservo/xr-profile"]