Пример #1
0
        public static unsafe JobHandle ScheduleFilter <T>(this T jobData, NativeList <int> indices, int innerloopBatchCount, JobHandle dependsOn = new JobHandle()) where T : struct, IJobParallelForFilter
        {
            JobStructProduce <T> .JobDataWithFiltering fullData = new JobStructProduce <T> .JobDataWithFiltering()
            {
                data          = jobData,
                outputIndices = indices,
                appendCount   = -1
            };

            var scheduleParams = new JobsUtility.JobScheduleParameters(UnsafeUtility.AddressOf(ref fullData), JobStructProduce <T> .Initialize(), dependsOn, ScheduleMode.Batched);

            return(JobsUtility.Schedule(ref scheduleParams));
        }
Пример #2
0
        unsafe static public JobHandle ScheduleFilter <T>(this T jobData, NativeList <int> indices, int innerloopBatchCount, JobHandle dependsOn = new JobHandle()) where T : struct, IJobParallelForFilter
        {
            JobStructProduce <T> .JobDataWithFiltering fullData;
            fullData.data          = jobData;
            fullData.outputIndices = indices;
            fullData.appendCount   = -1;

#if UNITY_AVOID_REFLECTION
            JobStructProduce <T> job;
            job.FilteringData = fullData;
            return(job.Schedule(dependsOn));
#else
            var scheduleParams = new JobsUtility.JobScheduleParameters(UnsafeUtility.AddressOf(ref fullData), JobStructProduce <T> .Initialize(), dependsOn, ScheduleMode.Batched);

            return(JobsUtility.Schedule(ref scheduleParams));
#endif
        }