mirror of
https://github.com/servo/servo.git
synced 2025-08-17 03:15:34 +01:00
Auto merge of #26312 - jdm:webxr-debug, r=Manishearth
Provide feedback when OpenXR can't start - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [x] These changes fix #26213 - [x] These changes do not require tests because it's testing an edge case in an environment we can't test on CI
This commit is contained in:
commit
8c73fb997a
5 changed files with 52 additions and 26 deletions
|
@ -810,7 +810,7 @@ impl EmbedderMethods for ServoEmbedderCallbacks {
|
|||
}
|
||||
|
||||
struct GlThread(WebGlExecutor);
|
||||
impl webxr::openxr::GlThread for GlThread {
|
||||
impl openxr::GlThread for GlThread {
|
||||
fn execute(&self, runnable: Box<dyn FnOnce(&surfman::Device) + Send>) {
|
||||
let _ = self.0.send(runnable);
|
||||
}
|
||||
|
@ -819,12 +819,27 @@ impl EmbedderMethods for ServoEmbedderCallbacks {
|
|||
}
|
||||
}
|
||||
|
||||
let discovery = webxr::openxr::OpenXrDiscovery::new(
|
||||
Box::new(GlThread(executor)),
|
||||
Box::new(ProviderRegistration(surface_providers)),
|
||||
Box::new(ContextMenuCallback(embedder_proxy)),
|
||||
);
|
||||
registry.register(discovery);
|
||||
if openxr::create_instance().is_ok() {
|
||||
let discovery = openxr::OpenXrDiscovery::new(
|
||||
Box::new(GlThread(executor)),
|
||||
Box::new(ProviderRegistration(surface_providers)),
|
||||
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"))]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue