Exemplo n.º 1
0
        public static void Start(Args args)
        {
            MyPrecalcJobPhysicsPrefetch work = m_instancePool.Allocate();

            work.m_args = args;
            args.Tracker.Add(args.GeometryCell, work);
            MyPrecalcComponent.EnqueueBack(work);
        }
        public static void Start(Args args)
        {
            var job = m_instancePool.Allocate();

            job.m_args = args;
            args.Tracker.Add(args.GeometryCell, job);

            MyPrecalcComponent.EnqueueBack(job);
        }
        public static void Start(MyVoxelPhysicsBody targetPhysics, ref HashSet <Vector3I> cellBatchForSwap)
        {
            var job = m_instancePool.Allocate();

            job.m_targetPhysics = targetPhysics;
            MyUtils.Swap(ref job.CellBatch, ref cellBatchForSwap);
            Debug.Assert(targetPhysics.RunningBatchTask == null);
            targetPhysics.RunningBatchTask = job;
            MyPrecalcComponent.EnqueueBack(job, true);
        }
Exemplo n.º 4
0
        public static void Start(MyVoxelPhysicsBody targetPhysics, ref HashSet <Vector3I> cellBatchForSwap, int lod)
        {
            MyPrecalcJobPhysicsBatch job = m_instancePool.Allocate();

            job.Lod             = lod;
            job.m_targetPhysics = targetPhysics;
            MyUtils.Swap <HashSet <Vector3I> >(ref job.CellBatch, ref cellBatchForSwap);
            targetPhysics.RunningBatchTask[lod] = job;
            MyPrecalcComponent.EnqueueBack(job);
        }
Exemplo n.º 5
0
        public static void Start(Args args)
        {
            Debug.Assert(args.Storage != null);
            var job = m_instancePool.Allocate();

            job.m_isCancelled = false;
            job.m_args        = args;
            args.RenderWorkTracker.Add(args.WorkId, job);

            MyPrecalcComponent.EnqueueBack(job, false /*job.m_args.IsHighPriority*/);
        }
Exemplo n.º 6
0
        public static void Start(Args args)
        {
            Debug.Assert(args.Storage != null);
            var job = m_instancePool.Allocate();

            job.m_isCancelled = false;
            job.m_args        = args;

            if (!args.RenderWorkTracker.Exists(args.WorkId))
            {
                args.RenderWorkTracker.Add(args.WorkId, job);
            }

            MyPrecalcComponent.EnqueueBack(job);
        }
Exemplo n.º 7
0
        public static void Start(Args args)
        {
            var job = m_instancePool.Allocate();

            Debug.Assert(job.m_outBatches.Count == 0, "Merge job batches not cleared");

            job.m_isCancelled = false;
            job.m_args        = args;

            if (!args.RenderWorkTracker.Exists(args.WorkId))
            {
                args.RenderWorkTracker.Add(args.WorkId, job);
            }

            MyPrecalcComponent.EnqueueBack(job);
        }