public NativeMinHeap(COMPARER comparer, Allocator allocator, int capacity) { _allocator = allocator; _stack = new NativeStack <VALUE>(capacity, allocator); _comparer = (COMPARER *)UnsafeUtility.Malloc(sizeof(COMPARER), UnsafeUtility.AlignOf <COMPARER>(), allocator); UnsafeUtility.CopyStructureToPtr(ref comparer, _comparer); }
public void NativeStackTest() { using NativeStack <int> stack = new NativeStack <int>(4); Assert.IsTrue(stack.IsValid); Assert.IsTrue(stack.IsEmpty); Assert.AreEqual(0, stack.Length); Assert.AreEqual(4, stack.Capacity); }
public EntityPool(ILoggerFactory logFactory, IAllocator allocator) { _logFactory = logFactory; _logger = _logFactory.CreateLogger <EntityPool>(); _memory = allocator; _freeIds = new NativeStack <uint>(_memory, ENTITIES_PER_POOL); _entityMap = new List <NativeArray <Entity> >(); //AddPage(); Take(); }
public unsafe void Test() { const int cnt = 1000; using var stack = new NativeStack <int>(0); var managed = new Stack <int>(cnt); var arr = new int[cnt]; var rand = new Random(); for (int i = 0; i < cnt; i++) { arr[i] = rand.Next(cnt); } for (int i = 0; i < cnt; i++) { managed.Push(arr[i]); stack.Push(arr[i]); } var se = stack.GetEnumerator(); var me = managed.GetEnumerator(); for (var i = 0; i < cnt; i++) { se.MoveNext(); me.MoveNext(); Assert.True(se.Current == me.Current); } se.Dispose(); me.Dispose(); for (int i = 0; i < cnt; i++) { Assert.True(managed.Count == stack.Count); var l = managed.Pop(); var r = stack.Peek(); Assert.True(l == r); stack.Pop(); } stack.Clear(); stack.TrimExcess(); Assert.True(!stack.IsDisposed); stack.Dispose(); Assert.True(stack.Ptr == null); Assert.True(stack.IsDisposed); }
public void Dispose() { var stack = new NativeStack <int>(Allocator.Temp); Assert.IsTrue(stack.IsCreated); stack.Dispose(); Assert.IsFalse(stack.IsCreated); Assert.Throws <System.ObjectDisposedException>(() => { stack.Dispose(); }); stack = new NativeStack <int>(Allocator.TempJob); Assert.IsTrue(stack.IsCreated); stack.Dispose(default).Complete();
public void IsEmpty() { var stack = new NativeStack <int>(Allocator.Temp); Assert.AreEqual(0, stack.Count); Assert.IsTrue(stack.IsEmpty); stack.Push(0); stack.Pop(); Assert.AreEqual(0, stack.Count); Assert.IsTrue(stack.IsEmpty); stack.Push(1); stack.Push(2); stack.Clear(); Assert.AreEqual(0, stack.Count); Assert.IsTrue(stack.IsEmpty); stack.Dispose(); }
public Enumerator(ref NativeStack <T> stack) { _stack = stack; _idx = -2; }
public bool Equals(NativeStack <T> other) { return(Equals(other)); }
public NativeStackDebugView(NativeStack <T> stack) { m_Stack = stack; }
public Enumerator(ref NativeStack <T> stack) { m_Buffer = stack.m_Buffer; m_Index = stack.Count; }