feat: update to bevy 0.17 and use individual bevy crates

Signed-off-by: Schmarni <marnistromer@gmail.com>
This commit is contained in:
Schmarni
2025-10-19 16:13:59 +02:00
parent 9fd0c79759
commit eb3ec03d91
45 changed files with 1581 additions and 986 deletions

View File

@@ -10,14 +10,14 @@ publish = false
bevy_mod_openxr.workspace = true
bevy_xr_utils.workspace = true
bevy_mod_xr.workspace = true
bevy = { workspace = true, default-features = false, features = [
# Bevy 0.15 made GameActivity the default which breaks Quest builds
# To use NativeActivity instead of GameActivity all of the features have to be listed manually
"android-native-activity",
"bevy_window",
"multi_threaded",
"tonemapping_luts",
] }
# bevy = { workspace = true, default-features = false, features = [
# # Bevy 0.15 made GameActivity the default which breaks Quest builds
# # To use NativeActivity instead of GameActivity all of the features have to be listed manually
# "android-native-activity",
# "bevy_window",
# "multi_threaded",
# "tonemapping_luts",
# ] }
[build-dependencies]
reqwest = { version = "0.12", features = ["blocking"] }

View File

@@ -2,7 +2,7 @@
use bevy::prelude::*;
use bevy_mod_openxr::{
add_xr_plugins, features::overlay::OxrOverlaySessionEvent, init::OxrInitPlugin,
add_xr_plugins, features::overlay::OxrOverlaySessionMessage, init::OxrInitPlugin,
resources::OxrSessionConfig, types::OxrExtensions,
};
use openxr::EnvironmentBlendMode;
@@ -36,20 +36,20 @@ fn main() {
.run();
}
fn print_main_session_changes(mut events: EventReader<OxrOverlaySessionEvent>) {
fn print_main_session_changes(mut events: MessageReader<OxrOverlaySessionMessage>) {
for event in events.read() {
let OxrOverlaySessionEvent::MainSessionVisibilityChanged { visible, flags: _ } = event;
let OxrOverlaySessionMessage::MainSessionVisibilityChanged { visible, flags: _ } = event;
info!("main session visible: {visible}");
}
}
fn handle_input(
keys: Res<ButtonInput<KeyCode>>,
mut end: EventWriter<bevy_mod_xr::session::XrEndSessionEvent>,
mut destroy: EventWriter<bevy_mod_xr::session::XrDestroySessionEvent>,
mut begin: EventWriter<bevy_mod_xr::session::XrBeginSessionEvent>,
mut create: EventWriter<bevy_mod_xr::session::XrCreateSessionEvent>,
mut request_exit: EventWriter<bevy_mod_xr::session::XrRequestExitEvent>,
mut end: MessageWriter<bevy_mod_xr::session::XrEndSessionMessage>,
mut destroy: MessageWriter<bevy_mod_xr::session::XrDestroySessionMessage>,
mut begin: MessageWriter<bevy_mod_xr::session::XrBeginSessionMessage>,
mut create: MessageWriter<bevy_mod_xr::session::XrCreateSessionMessage>,
mut request_exit: MessageWriter<bevy_mod_xr::session::XrRequestExitMessage>,
) {
if keys.just_pressed(KeyCode::KeyE) {
info!("sending end");

View File

@@ -35,7 +35,7 @@ fn main() -> AppExit {
app.run()
}
fn attach_set(actions: Res<ControllerActions>, mut attach: EventWriter<OxrAttachActionSet>) {
fn attach_set(actions: Res<ControllerActions>, mut attach: MessageWriter<OxrAttachActionSet>) {
attach.write(OxrAttachActionSet(actions.set.clone()));
}
@@ -45,7 +45,7 @@ struct ControllerActions {
left: openxr::Action<Posef>,
right: openxr::Action<Posef>,
}
fn sync_actions(actions: Res<ControllerActions>, mut sync: EventWriter<OxrSyncActionSet>) {
fn sync_actions(actions: Res<ControllerActions>, mut sync: MessageWriter<OxrSyncActionSet>) {
sync.write(OxrSyncActionSet(actions.set.clone()));
}
/// set up a simple 3D scene
@@ -81,7 +81,7 @@ fn setup(
}
fn suggest_action_bindings(
actions: Res<ControllerActions>,
mut bindings: EventWriter<OxrSuggestActionBinding>,
mut bindings: MessageWriter<OxrSuggestActionBinding>,
) {
bindings.write(OxrSuggestActionBinding {
action: actions.left.as_raw(),

View File

@@ -16,11 +16,11 @@ fn main() -> AppExit {
fn handle_input(
keys: Res<ButtonInput<KeyCode>>,
mut end: EventWriter<bevy_mod_xr::session::XrEndSessionEvent>,
mut destroy: EventWriter<bevy_mod_xr::session::XrDestroySessionEvent>,
mut begin: EventWriter<bevy_mod_xr::session::XrBeginSessionEvent>,
mut create: EventWriter<bevy_mod_xr::session::XrCreateSessionEvent>,
mut request_exit: EventWriter<bevy_mod_xr::session::XrRequestExitEvent>,
mut end: MessageWriter<bevy_mod_xr::session::XrEndSessionMessage>,
mut destroy: MessageWriter<bevy_mod_xr::session::XrDestroySessionMessage>,
mut begin: MessageWriter<bevy_mod_xr::session::XrBeginSessionMessage>,
mut create: MessageWriter<bevy_mod_xr::session::XrCreateSessionMessage>,
mut request_exit: MessageWriter<bevy_mod_xr::session::XrRequestExitMessage>,
state: Res<XrState>,
) {
if keys.just_pressed(KeyCode::KeyE) {