// TODO : allow frame independend Jobs to be run in background public ScheduledJob Schedule(IJob job, ScheduleScope scope) { ScheduledJob sj = new ScheduledJob { Job = job, //Register = null, // TODO DependencyMissing = job.Dependencys.Length, }; foreach (RegisterdJob dependency in job.Dependencys) { List <ScheduledJob> jobs; if (!dependencyGraph.TryGetValue(dependency, out jobs)) { jobs = new List <ScheduledJob>(); dependencyGraph.Add(dependency, jobs); } jobs.Add(sj); } if (sj.IsReady) { readyBuffer.Enqueue(sj); } return(sj); }
public void SheduleJobs(JobSystem jobSystem, ScheduleScope scope) { jobSystem.Schedule(PlatformUpdate, scope); }
public void SheduleJobs(JobSystem jobSystem, ScheduleScope scope) { jobSystem.Schedule(CollectJob, scope); }