internal void SetTarget(MyEntityComponentBase owner)
 {
     _fixedEntry = ProfilerFixedEntry.Count;
     FreeHandles();
     _owner  = GCHandle.Alloc(owner, GCHandleType.Weak);
     _getter = GetterImplEntityComponent;
 }
 internal void SetTarget(IMyCubeGrid grid, object owner)
 {
     _fixedEntry = ProfilerFixedEntry.Count;
     FreeHandles();
     _owner       = GCHandle.Alloc(owner, GCHandleType.Weak);
     _getterExtra = new[] { GCHandle.Alloc(grid, GCHandleType.Weak) };
     _getter      = GetterImplGridSystem;
 }
 internal void SetTarget(ProfilerFixedEntry owner)
 {
     if (owner == ProfilerFixedEntry.Count)
     {
         throw new ArgumentOutOfRangeException(nameof(owner), "Must not be the count enum");
     }
     _fixedEntry = owner;
     FreeHandles();
     _owner = GCHandle.Alloc(owner, GCHandleType.Weak);
     // we can capture here since its a value type
     _getter = () => ProfilerData.FixedProfiler(owner);
 }
示例#4
0
 internal static FatProfilerEntry FixedProfiler(ProfilerFixedEntry item)
 {
     return(_fixed[(int)item] ?? throw new InvalidOperationException($"Fixed profiler {item} doesn't exist"));
 }