//cm internal void AddBufferRaw(Entity entity, int componentTypeIndex, BufferHeader *tempBuffer) { EntityComponentStore->AssertEntityHasComponent(entity, componentTypeIndex); ComponentJobSafetyManager->CompleteReadAndWriteDependency(componentTypeIndex); var bufferHeader = (BufferHeader *)EntityComponentStore->GetComponentDataWithTypeRW(entity, componentTypeIndex, EntityComponentStore->GlobalSystemVersion); var typeInfo = TypeManager.GetTypeInfo(componentTypeIndex); var elementSize = typeInfo.ElementSize; var alignment = typeInfo.AlignmentInBytes; var total = bufferHeader->Length + tempBuffer->Length; if (total > bufferHeader->Capacity) { BufferHeader.EnsureCapacity(bufferHeader, total, elementSize, alignment, BufferHeader.TrashMode.RetainOldData); } UnsafeUtility.MemCpy( BufferHeader.GetElementPointer(bufferHeader) + bufferHeader->Length * elementSize, BufferHeader.GetElementPointer(tempBuffer), tempBuffer->Length * elementSize); bufferHeader->Length = total; }
public void Reserve(int length) { CheckWriteAccessAndInvalidateArrayAliases(); #if ENABLE_UNITY_COLLECTIONS_CHECKS BufferHeader.EnsureCapacity(m_Buffer, length, UnsafeUtility.SizeOf <T>(), UnsafeUtility.AlignOf <T>(), BufferHeader.TrashMode.RetainOldData, m_useMemoryInitPattern, m_memoryInitPattern); #else BufferHeader.EnsureCapacity(m_Buffer, length, UnsafeUtility.SizeOf <T>(), UnsafeUtility.AlignOf <T>(), BufferHeader.TrashMode.RetainOldData, false, 0); #endif }
public void ResizeUninitialized(int length) { BufferHeader.EnsureCapacity(m_Buffer, length, UnsafeUtility.SizeOf <T>(), UnsafeUtility.AlignOf <T>(), BufferHeader.TrashMode.RetainOldData); m_Buffer->Length = length; }
/// <summary> /// Increases the buffer capacity without increasing its length. /// </summary> /// <param name="length">The new buffer capacity.</param> public void Reserve(int length) { CheckWriteAccessAndInvalidateArrayAliases(); BufferHeader.EnsureCapacity(m_Buffer, length, UnsafeUtility.SizeOf <T>(), UnsafeUtility.AlignOf <T>(), BufferHeader.TrashMode.RetainOldData); }
public unsafe void ResizeUninitialized(int length) { this.InvalidateArrayAliases(); BufferHeader.EnsureCapacity(this.m_Buffer, length, UnsafeUtility.SizeOf <T>(), UnsafeUtility.AlignOf <T>(), BufferHeader.TrashMode.RetainOldData); this.m_Buffer.Length = length; }