public unsafe void UpdateInjection(byte *systemPtr) { var groupStructPtr = systemPtr + m_GroupFieldOffset; int length; ComponentChunkIterator iterator; m_EntityGroup.GetComponentChunkIterator(out length, out iterator); for (var i = 0; i != m_ComponentDataInjections.Length; i++) { ComponentDataArray <ProxyComponentData> data; m_EntityGroup.GetComponentDataArray(ref iterator, m_ComponentDataInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_ComponentDataInjections[i].FieldOffset); } for (var i = 0; i != m_SharedComponentInjections.Length; i++) { SharedComponentDataArray <ProxySharedComponentData> data; m_EntityGroup.GetSharedComponentDataArray(ref iterator, m_SharedComponentInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_SharedComponentInjections[i].FieldOffset); } for (var i = 0; i != m_FixedArrayInjections.Length; i++) { FixedArrayArray <int> data; m_EntityGroup.GetFixedArrayArray(ref iterator, m_FixedArrayInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_FixedArrayInjections[i].FieldOffset); } if (m_EntityArrayOffset != -1) { EntityArray entityArray; m_EntityGroup.GetEntityArray(ref iterator, length, out entityArray); UnsafeUtility.CopyStructureToPtr(ref entityArray, groupStructPtr + m_EntityArrayOffset); } if (m_IndexFromEntityOffset != -1) { IndexFromEntity indexFromEntity; m_EntityGroup.GetIndexFromEntity(out indexFromEntity); UnsafeUtility.CopyStructureToPtr(ref indexFromEntity, groupStructPtr + m_IndexFromEntityOffset); } if (m_InjectionContext.HasEntries) { m_InjectionContext.UpdateEntries(m_EntityGroup, ref iterator, length, groupStructPtr); } if (m_LengthOffset != -1) { UnsafeUtility.CopyStructureToPtr(ref length, groupStructPtr + m_LengthOffset); } }
public unsafe void UpdateInjection(byte *systemPtr) { var groupStructPtr = systemPtr + m_GroupFieldOffset; int length = m_EntityGroup.CalculateLength(); ComponentChunkIterator iterator = m_EntityGroup.GetComponentChunkIterator(); for (var i = 0; i != m_ComponentDataInjections.Length; i++) { ComponentDataArray <ProxyComponentData> data; m_EntityGroup.GetComponentDataArray(ref iterator, m_ComponentDataInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_ComponentDataInjections[i].FieldOffset); } for (var i = 0; i != m_SharedComponentInjections.Length; i++) { SharedComponentDataArray <ProxySharedComponentData> data; m_EntityGroup.GetSharedComponentDataArray(ref iterator, m_SharedComponentInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_SharedComponentInjections[i].FieldOffset); } for (var i = 0; i != m_BufferArrayInjections.Length; i++) { BufferArray <ProxyBufferElementData> data; m_EntityGroup.GetBufferArray(ref iterator, m_BufferArrayInjections[i].IndexInComponentGroup, length, out data); UnsafeUtility.CopyStructureToPtr(ref data, groupStructPtr + m_BufferArrayInjections[i].FieldOffset); } if (m_EntityArrayOffset != -1) { EntityArray entityArray = m_EntityGroup.GetEntityArray(); UnsafeUtility.CopyStructureToPtr(ref entityArray, groupStructPtr + m_EntityArrayOffset); } if (m_InjectionContext.HasEntries) { m_InjectionContext.UpdateEntries(m_EntityGroup, ref iterator, length, groupStructPtr); } if (m_LengthOffset != -1) { UnsafeUtility.CopyStructureToPtr(ref length, groupStructPtr + m_LengthOffset); } }