public void UpdateConwaysNoLoopedWorld(int width, int height, int batchCount) { NativeArray <int> cellsArray = default; Measure.Method(() => { var job = new UpdateAreaCells_ShiftNeighborsCountJob { CellStates = cellsArray }.Schedule(cellsArray.Length, batchCount); var statesInt4 = cellsArray.Reinterpret <int4>(UnsafeUtility.SizeOf <int>()); job = new SetHorizontalSidesInAreasJob { Width = width / 4, CellStates = statesInt4 }.Schedule(height, 64, job); job = new SetVerticalSidesInAreasJob { Width = width / 4, CellStates = statesInt4 }.Schedule(width / 4, 64, job); job.Complete(); }) .SetUp(() => { cellsArray = new NativeArray <int>(width * height, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); }) .CleanUp(() => { cellsArray.Dispose(); }) .Run(); }
public void UpdateCellsStateInAreas_ShiftNeighborsCount(int width, int height, int batchCount) { NativeArray <int> cellsArray = default; Measure.Method(() => { var job = new UpdateAreaCells_ShiftNeighborsCountJob { CellStates = cellsArray }.Schedule(cellsArray.Length, batchCount); job.Complete(); }) .SetUp(() => { cellsArray = new NativeArray <int>(width * height, Allocator.TempJob, NativeArrayOptions.UninitializedMemory); }) .CleanUp(() => { cellsArray.Dispose(); }) .Run(); }