public unsafe static void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex) { IJobParallelForTransformExtensions.TransformParallelForLoopStruct <T> .TransformJobData transformJobData; UnsafeUtility.CopyPtrToStructure <IJobParallelForTransformExtensions.TransformParallelForLoopStruct <T> .TransformJobData>((void *)jobData2, out transformJobData); int * ptr = (int *)((void *)TransformAccessArray.GetSortedToUserIndex(transformJobData.TransformAccessArray)); TransformAccess *ptr2 = (TransformAccess *)((void *)TransformAccessArray.GetSortedTransformAccess(transformJobData.TransformAccessArray)); bool flag = transformJobData.IsReadOnly == 1; if (flag) { while (true) { int num; int num2; bool flag2 = !JobsUtility.GetWorkStealingRange(ref ranges, jobIndex, out num, out num2); if (flag2) { break; } int num3 = num2; for (int i = num; i < num3; i++) { int num4 = i; int num5 = ptr[num4]; JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num5, 1); TransformAccess transform = ptr2[num4]; transform.MarkReadOnly(); jobData.Execute(num5, transform); } } } else { int num6; int num7; JobsUtility.GetJobRange(ref ranges, jobIndex, out num6, out num7); for (int j = num6; j < num7; j++) { int num8 = j; int num9 = ptr[num8]; JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num9, 1); TransformAccess transform2 = ptr2[num8]; transform2.MarkReadWrite(); jobData.Execute(num9, transform2); } } }
public unsafe static void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex) { IntPtr transformArrayIntPtr; UnsafeUtility.CopyPtrToStructure <IntPtr>(jobData2, out transformArrayIntPtr); int * ptr = (int *)((void *)TransformAccessArray.GetSortedToUserIndex(transformArrayIntPtr)); TransformAccess *ptr2 = (TransformAccess *)((void *)TransformAccessArray.GetSortedTransformAccess(transformArrayIntPtr)); int num; int num2; JobsUtility.GetJobRange(ref ranges, jobIndex, out num, out num2); for (int i = num; i < num2; i++) { int num3 = i; int num4 = ptr[num3]; JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf <T>(ref jobData), num4, 1); jobData.Execute(num4, ptr2[num3]); } }
public static unsafe void Execute(ref T jobData, System.IntPtr jobData2, System.IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex) { IntPtr transformAccessArray; UnsafeUtility.CopyPtrToStructure((void *)jobData2, out transformAccessArray); int * sortedToUserIndex = (int *)TransformAccessArray.GetSortedToUserIndex(transformAccessArray); TransformAccess *sortedTransformAccess = (TransformAccess *)TransformAccessArray.GetSortedTransformAccess(transformAccessArray); int begin; int end; JobsUtility.GetJobRange(ref ranges, jobIndex, out begin, out end); for (int i = begin; i < end; i++) { int sortedIndex = i; int userIndex = sortedToUserIndex[sortedIndex]; jobData.Execute(userIndex, sortedTransformAccess[sortedIndex]); } }
public static unsafe void Execute(ref T jobData, IntPtr jobData2, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex) { /*IntPtr output; * UnsafeUtility.CopyPtrToStructure<IntPtr>(jobData2, out output); * int* sortedToUserIndex = (int*) (void*) EudiReplicaTransformAccessArray.GetSortedToUserIndex(output); * TransformAccess* sortedTransformAccess = (TransformAccess*) (void*) EudiReplicaTransformAccessArray.GetSortedTransformAccess(output);*/ IntPtr output; UnsafeUtility.CopyPtrToStructure <IntPtr>(jobData2, out output); var transformArray = (EudiReplicaTransformAccessArray)GCHandle.FromIntPtr(output).Target; int beginIndex; int endIndex; JobsUtility.GetJobRange(ref ranges, jobIndex, out beginIndex, out endIndex); for (int index1 = beginIndex; index1 < endIndex; ++index1) { int index2 = index1; //int num = sortedToUserIndex[index2]; //JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf<T>(ref jobData), num, 1); jobData.Execute(index2, transformArray[index2]); } }