add destroy trash runners

This commit is contained in:
Mikhail 2023-03-30 11:17:17 +08:00
parent 14e1a0ae09
commit 4710778ddf
2 changed files with 12 additions and 3 deletions

View File

@ -10,8 +10,11 @@ namespace DCFApixels.DragonECS
public readonly int id; public readonly int id;
public EcsProfilerMarker(int id) => this.id = id; public EcsProfilerMarker(int id) => this.id = id;
public EcsProfilerMarker(string name) => id = EcsDebug.RegisterMark(name); public EcsProfilerMarker(string name) => id = EcsDebug.RegisterMark(name);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void Begin() => EcsDebug.ProfileMarkBegin(id); public void Begin() => EcsDebug.ProfileMarkBegin(id);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void End() => EcsDebug.ProfileMarkEnd(id); public void End() => EcsDebug.ProfileMarkEnd(id);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public AutoScope Auto() => new AutoScope(id); public AutoScope Auto() => new AutoScope(id);
public readonly struct AutoScope : IDisposable public readonly struct AutoScope : IDisposable

View File

@ -64,9 +64,15 @@ namespace DCFApixels.DragonECS
} }
_isInit = true; _isInit = true;
GetRunner<IEcsInject<EcsPipeline>>().Inject(this); var ecsPipelineInjectRunner = GetRunner<IEcsInject<EcsPipeline>>();
GetRunner<IEcsPreInitSystem>().PreInit(this); ecsPipelineInjectRunner.Inject(this);
GetRunner<IEcsInitSystem>().Init(this); EcsRunner.Destroy(ecsPipelineInjectRunner);
var preInitRunner = GetRunner<IEcsPreInitSystem>();
preInitRunner.PreInit(this);
EcsRunner.Destroy(preInitRunner);
var initRunner = GetRunner<IEcsInitSystem>();
initRunner.Init(this);
EcsRunner.Destroy(initRunner);
_runRunnerCache = GetRunner<IEcsRunSystem>(); _runRunnerCache = GetRunner<IEcsRunSystem>();
} }