profiling: fix build

This commit is contained in:
Victor "multun" Collod 2020-08-16 02:05:05 -07:00
parent 7db4821287
commit 1ec7183494
5 changed files with 9 additions and 8 deletions

View file

@ -19,7 +19,7 @@ impl Plugin for DiagnosticsPlugin {
#[cfg(feature = "profiler")]
{
use bevy_ecs::IntoQuerySystem;
app.add_resource::<Box<dyn bevy_ecs::profiler::Profiler>>(Box::new(
app.add_resource::<Box<dyn bevy_ecs::Profiler>>(Box::new(
system_profiler::SystemProfiler::default(),
))
.add_system_to_stage(

View file

@ -1,5 +1,5 @@
use crate::{Diagnostic, DiagnosticId, Diagnostics};
use bevy_ecs::{profiler::Profiler, Res, ResMut};
use bevy_ecs::{Profiler, Res, ResMut};
use std::{
borrow::Cow,
collections::HashMap,

View file

@ -18,4 +18,5 @@ bevy_hecs = { path = "hecs", features = ["macros", "serialize"], version = "0.1"
rand = "0.7.2"
rayon = "1.3"
crossbeam-channel = "0.4.2"
fixedbitset = "0.3.0"
fixedbitset = "0.3.0"
downcast-rs = "1.1.1"

View file

@ -131,9 +131,9 @@ impl Schedule {
for stage_name in self.stage_order.iter() {
if let Some(stage_systems) = self.stages.get_mut(stage_name) {
for system in stage_systems.iter_mut() {
#[cfg(feature = "profiler")]
crate::profiler::profiler_start(resources, system.name().clone());
let mut system = system.lock().unwrap();
#[cfg(feature = "profiler")]
crate::profiler_start(resources, system.name().clone());
system.update_archetype_access(world);
match system.thread_local_execution() {
ThreadLocalExecution::NextFlush => system.run(world, resources),
@ -144,7 +144,7 @@ impl Schedule {
}
}
#[cfg(feature = "profiler")]
crate::profiler::profiler_stop(resources, system.name().clone());
crate::profiler_stop(resources, system.name().clone());
}
// "flush"

View file

@ -11,13 +11,13 @@ pub trait Profiler: Downcast + Send + Sync + 'static {
}
pub fn profiler_start(resources: &Resources, scope: Cow<'static, str>) {
if let Ok(profiler) = resources.get::<Box<dyn Profiler>>() {
if let Some(profiler) = resources.get::<Box<dyn Profiler>>() {
profiler.start(scope);
}
}
pub fn profiler_stop(resources: &Resources, scope: Cow<'static, str>) {
if let Ok(profiler) = resources.get::<Box<dyn Profiler>>() {
if let Some(profiler) = resources.get::<Box<dyn Profiler>>() {
profiler.stop(scope);
}
}