Skip to content

Commit d366917

Browse files
committed
fix debug asset server code
1 parent 247f2b1 commit d366917

File tree

2 files changed

+37
-27
lines changed

2 files changed

+37
-27
lines changed

crates/bevy_asset/src/assets.rs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,8 +312,10 @@ impl AddAsset for App {
312312
let mut app = self
313313
.world
314314
.non_send_resource_mut::<crate::debug_asset_server::DebugAssetApp>();
315-
app.add_asset::<T>()
316-
.init_resource::<crate::debug_asset_server::HandleMap<T>>();
315+
app.get_mut(|app| {
316+
app.add_asset::<T>()
317+
.init_resource::<crate::debug_asset_server::HandleMap<T>>();
318+
});
317319
}
318320
self
319321
}
@@ -335,7 +337,9 @@ impl AddAsset for App {
335337
let mut app = self
336338
.world
337339
.non_send_resource_mut::<crate::debug_asset_server::DebugAssetApp>();
338-
app.init_asset_loader::<T>();
340+
app.get_mut(|app| {
341+
app.init_asset_loader::<T>();
342+
});
339343
}
340344
self
341345
}
@@ -357,13 +361,15 @@ macro_rules! load_internal_asset {
357361
let mut debug_app = $app
358362
.world
359363
.non_send_resource_mut::<$crate::debug_asset_server::DebugAssetApp>();
360-
$crate::debug_asset_server::register_handle_with_loader(
361-
$loader,
362-
&mut debug_app,
363-
$handle,
364-
file!(),
365-
$path_str,
366-
);
364+
debug_app.get_mut(|mut debug_app| {
365+
$crate::debug_asset_server::register_handle_with_loader(
366+
$loader,
367+
&mut debug_app,
368+
$handle,
369+
file!(),
370+
$path_str,
371+
);
372+
});
367373
}
368374
let mut assets = $app.world.resource_mut::<$crate::Assets<_>>();
369375
assets.set_untracked($handle, ($loader)(include_str!($path_str)));

crates/bevy_asset/src/debug_asset_server.rs

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -77,31 +77,35 @@ impl Plugin for DebugAssetServerPlugin {
7777
}
7878

7979
fn run_debug_asset_app(mut debug_asset_app: NonSendMut<DebugAssetApp>) {
80-
debug_asset_app.0.update();
80+
debug_asset_app.get_mut(|debug_asset_app| {
81+
debug_asset_app.0.update();
82+
});
8183
}
8284

8385
pub(crate) fn sync_debug_assets<T: Asset + Clone>(
8486
mut debug_asset_app: NonSendMut<DebugAssetApp>,
8587
mut assets: ResMut<Assets<T>>,
8688
) {
87-
let world = &mut debug_asset_app.0.world;
88-
let mut state = SystemState::<(
89-
Res<Events<AssetEvent<T>>>,
90-
Res<HandleMap<T>>,
91-
Res<Assets<T>>,
92-
)>::new(world);
93-
let (changed_shaders, handle_map, debug_assets) = state.get_mut(world);
94-
for changed in changed_shaders.iter_current_update_events() {
95-
let debug_handle = match changed {
96-
AssetEvent::Created { handle } | AssetEvent::Modified { handle } => handle,
97-
AssetEvent::Removed { .. } => continue,
98-
};
99-
if let Some(handle) = handle_map.handles.get(debug_handle) {
100-
if let Some(debug_asset) = debug_assets.get(debug_handle) {
101-
assets.set_untracked(handle, debug_asset.clone());
89+
debug_asset_app.get_mut(|debug_asset_app| {
90+
let world = &mut debug_asset_app.0.world;
91+
let mut state = SystemState::<(
92+
Res<Events<AssetEvent<T>>>,
93+
Res<HandleMap<T>>,
94+
Res<Assets<T>>,
95+
)>::new(world);
96+
let (changed_shaders, handle_map, debug_assets) = state.get_mut(world);
97+
for changed in changed_shaders.iter_current_update_events() {
98+
let debug_handle = match changed {
99+
AssetEvent::Created { handle } | AssetEvent::Modified { handle } => handle,
100+
AssetEvent::Removed { .. } => continue,
101+
};
102+
if let Some(handle) = handle_map.handles.get(debug_handle) {
103+
if let Some(debug_asset) = debug_assets.get(debug_handle) {
104+
assets.set_untracked(handle, debug_asset.clone());
105+
}
102106
}
103107
}
104-
}
108+
});
105109
}
106110

107111
/// Uses the return type of the given loader to register the given handle with the appropriate type

0 commit comments

Comments
 (0)