From 5612fe047cec327b9b9d8ab52c17ce8773f7a1a0 Mon Sep 17 00:00:00 2001 From: Mikhail <99481254+DCFApixels@users.noreply.github.com> Date: Mon, 3 Jul 2023 02:50:16 +0800 Subject: [PATCH] add simplified UncheckedGetPool for built-in pools --- src/Pools/EcsHybridPool.cs | 9 +++++++++ src/Pools/EcsPool.cs | 9 +++++++++ src/Pools/EcsTagPool.cs | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/src/Pools/EcsHybridPool.cs b/src/Pools/EcsHybridPool.cs index f6faac4..7d11fe6 100644 --- a/src/Pools/EcsHybridPool.cs +++ b/src/Pools/EcsHybridPool.cs @@ -198,19 +198,28 @@ namespace DCFApixels.DragonECS } public static class EcsHybridPoolExt { + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsHybridPool GetPool(this EcsWorld self) where T : IEcsHybridComponent { return self.GetPool>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsHybridPool UncheckedGetPool(this EcsWorld self) where T : IEcsHybridComponent + { + return self.UncheckedGetPool>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsHybridPool Include(this EcsAspectBuilderBase self) where T : IEcsHybridComponent { return self.Include>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsHybridPool Exclude(this EcsAspectBuilderBase self) where T : IEcsHybridComponent { return self.Exclude>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsHybridPool Optional(this EcsAspectBuilderBase self) where T : IEcsHybridComponent { return self.Optional>(); diff --git a/src/Pools/EcsPool.cs b/src/Pools/EcsPool.cs index ac14c63..3f16701 100644 --- a/src/Pools/EcsPool.cs +++ b/src/Pools/EcsPool.cs @@ -191,19 +191,28 @@ namespace DCFApixels.DragonECS public interface IEcsComponent { } public static class EcsPoolExt { + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsPool GetPool(this EcsWorld self) where TComponent : struct, IEcsComponent { return self.GetPool>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsPool UncheckedGetPool(this EcsWorld self) where TComponent : struct, IEcsComponent + { + return self.UncheckedGetPool>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsPool Include(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent { return self.Include>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsPool Exclude(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent { return self.Exclude>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsPool Optional(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent { return self.Optional>(); diff --git a/src/Pools/EcsTagPool.cs b/src/Pools/EcsTagPool.cs index 69f45a2..7e13bc8 100644 --- a/src/Pools/EcsTagPool.cs +++ b/src/Pools/EcsTagPool.cs @@ -186,19 +186,28 @@ namespace DCFApixels.DragonECS public interface IEcsTagComponent { } public static class EcsTagPoolExt { + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsTagPool GetPool(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent { return self.GetPool>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static EcsTagPool UncheckedGetPool(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent + { + return self.UncheckedGetPool>(); + } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsTagPool Include(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent { return self.Include>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsTagPool Exclude(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent { return self.Exclude>(); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] public static EcsTagPool Optional(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent { return self.Optional>();