internal int GetBufferLength(Entity entity, int typeIndex) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); BufferHeader *header = (BufferHeader *)Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); return(header->Length); }
internal void *GetComponentDataRawRW(Entity entity, int typeIndex) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); return(ptr); }
internal void *GetBufferRawRW(Entity entity, int typeIndex) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); BufferHeader *header = (BufferHeader *)Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); return(BufferHeader.GetElementPointer(header)); }
internal void SetComponentDataRaw(Entity entity, int typeIndex, void *data, int size) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); UnsafeUtility.MemCpy(ptr, data, size); }
internal void *GetComponentDataRaw(Entity entity, int typeIndex) { m_Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); byte *ptr = m_Entities->GetComponentDataWithType(entity, typeIndex); return(ptr); }
internal void SetComponentDataRaw(Entity entity, int typeIndex, void *data, int size) { m_Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); byte *ptr = m_Entities->GetComponentDataWithType(entity, typeIndex); UnsafeUtility.MemCpy(ptr, data, size); }
internal void SetBufferRaw(Entity entity, int componentTypeIndex, BufferHeader *tempBuffer, int sizeInChunk) { Entities->AssertEntityHasComponent(entity, componentTypeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(componentTypeIndex); var ptr = Entities->GetComponentDataWithTypeRW(entity, componentTypeIndex, Entities->GlobalSystemVersion); BufferHeader.Destroy((BufferHeader *)ptr); UnsafeUtility.MemCpy(ptr, tempBuffer, sizeInChunk); }
public void SetComponentData <T>(Entity entity, T componentData) where T : struct, IComponentData { var typeIndex = TypeManager.GetTypeIndex <T>(); m_Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); var ptr = m_Entities->GetComponentDataWithType(entity, typeIndex); UnsafeUtility.CopyStructureToPtr(ref componentData, ptr); }
internal void SetComponentDataRaw(Entity entity, int typeIndex, void *data, int size) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); #if ENABLE_UNITY_COLLECTIONS_CHECKS if (TypeManager.GetTypeInfo(typeIndex).SizeInChunk != size) { throw new System.ArgumentException($"SetComponentDataRaw<{TypeManager.GetType(typeIndex)}> can not be called with a zero sized component and must have same size as sizeof(T)."); } #endif var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); UnsafeUtility.MemCpy(ptr, data, size); }
internal void *GetComponentDataRawRW(Entity entity, int typeIndex) { Entities->AssertEntityHasComponent(entity, typeIndex); ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); #if ENABLE_UNITY_COLLECTIONS_CHECKS if (TypeManager.GetTypeInfo(typeIndex).IsZeroSized) { throw new System.ArgumentException($"GetComponentDataRaw<{TypeManager.GetType(typeIndex)}> can not be called with a zero sized component."); } #endif var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); return(ptr); }
public void SetComponentData <T>(Entity entity, T componentData) where T : struct, IComponentData { var typeIndex = TypeManager.GetTypeIndex <T>(); Entities->AssertEntityHasComponent(entity, typeIndex); #if ENABLE_UNITY_COLLECTIONS_CHECKS if (ComponentType.FromTypeIndex(typeIndex).IsZeroSized) { throw new System.ArgumentException($"GetComponentData<{typeof(T)}> can not be called with a zero sized component."); } #endif ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); UnsafeUtility.CopyStructureToPtr(ref componentData, ptr); }
public void SetComponentData <T>(Entity entity, T componentData) where T : struct, IComponentData { var typeIndex = TypeManager.GetTypeIndex <T>(); Entities->AssertEntityHasComponent(entity, typeIndex); // If the user attempts to set a zero-sized type, we do nothing instead. // This is to prevent requiring users from checking for zero-size before calling this API. var componentType = ComponentType.FromTypeIndex(typeIndex); if (componentType.IsZeroSized) { return; } ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); var ptr = Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); UnsafeUtility.CopyStructureToPtr(ref componentData, ptr); }
public DynamicBuffer <T> GetBuffer <T>(Entity entity) where T : struct, IBufferElementData { var typeIndex = TypeManager.GetTypeIndex <T>(); #if ENABLE_UNITY_COLLECTIONS_CHECKS Entities->AssertEntityHasComponent(entity, typeIndex); if (TypeManager.GetTypeInfo <T>().Category != TypeManager.TypeCategory.BufferData) { throw new ArgumentException( $"GetBuffer<{typeof(T)}> may not be IComponentData or ISharedComponentData; currently {TypeManager.GetTypeInfo<T>().Category}"); } #endif ComponentJobSafetyManager.CompleteReadAndWriteDependency(typeIndex); BufferHeader *header = (BufferHeader *)Entities->GetComponentDataWithTypeRW(entity, typeIndex, Entities->GlobalSystemVersion); #if ENABLE_UNITY_COLLECTIONS_CHECKS return(new DynamicBuffer <T>(header, ComponentJobSafetyManager.GetSafetyHandle(typeIndex, false), ComponentJobSafetyManager.GetBufferSafetyHandle(typeIndex), false)); #else return(new DynamicBuffer <T>(header)); #endif }