protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        EntityManager.GetAllUniqueSharedComponentData <LineRenderer>(lineRenderers);

        NativeCounter      lineCounter = new NativeCounter(Allocator.Temp);
        LineMeshBuilderJob job         = new LineMeshBuilderJob();

        for (int i = 0; i < lineRenderers.Count; ++i)
        {
            LineRenderer renderer = lineRenderers[i];

            group.SetFilter(renderer);
            int groupCount = group.CalculateLength();
            if (groupCount == 0)
            {
                continue;
            }

            lineCounter.Count = 0;
            job.Initialize(group, renderer.Vertices, renderer.Normals, lineCounter);
            inputDeps = job.Schedule(groupCount, 8, inputDeps);
            inputDeps.Complete();
        }
        lineRenderers.Clear();
        lineCounter.Dispose();
        return(inputDeps);
    }
Example #2
0
    protected override JobHandle OnUpdate(JobHandle inputDeps)
    {
        EntityManager.GetAllUniqueSharedComponentData <LineRendererRef>(lineRendererRefs);
        NativeCounter lineCounter = new NativeCounter(Allocator.TempJob);

        var vertexBuffers = GetBufferFromEntity <BufferableVertex>();

        for (int i = 0; i < lineRendererRefs.Count; ++i)
        {
            Entity          lineRendererEntity = lineRendererRefs[i].Value;
            LineRendererRef rendererRef        = lineRendererRefs[i];

            lineQuery.SetFilter(rendererRef);
            int groupCount = lineQuery.CalculateEntityCount();
            if (groupCount == 0)
            {
                continue;
            }

            lineCounter.Count = 0;
            LineMeshBuilderJob job = new LineMeshBuilderJob {
                _counter      = lineCounter,
                _vertexBuffer = (vertexBuffers[lineRendererEntity]),
            };
            inputDeps = job.Schedule(this, inputDeps);
            inputDeps.Complete();
        }

        lineRendererRefs.Clear();
        lineCounter.Dispose();
        return(inputDeps);
    }