Example #1
0
        public Entity FindPassOnNode(Entity node, RenderPassType pt)
        {
            var passes = EntityManager.GetBuffer <RenderPassRef>(node);

            for (int i = 0; i < passes.Length; i++)
            {
                var p = EntityManager.GetComponentData <RenderPass>(passes[i].e);
                if (p.passType == pt)
                {
                    return(passes[i].e);
                }
            }
            return(Entity.Null);
        }
Example #2
0
        Entity FindPassOnNodeWithCamera(Entity node, RenderPassType pt, Entity ecam)
        {
            var passes = EntityManager.GetBuffer <RenderPassRef>(node);

            for (int i = 0; i < passes.Length; i++)
            {
                var e = passes[i].e;
                var p = EntityManager.GetComponentData <RenderPass>(e);
                if (p.passType == pt)
                {
                    if (EntityManager.HasComponent <RenderPassUpdateFromCamera>(e))
                    {
                        var ufc = EntityManager.GetComponentData <RenderPassUpdateFromCamera>(e);
                        if (ufc.camera == ecam)
                        {
                            return(e);
                        }
                    }
                }
            }
            return(Entity.Null);
        }
Example #3
0
        protected Entity CreateScreenToWorldChain(RenderPassType rpt, ScreenToWorldId id)
        {
            Entity eBase = EntityManager.CreateEntity();

            if (eMainViewNode != eFrontBufferNode)
            {
                EntityManager.AddComponentData <ScreenToWorldRoot>(eBase, new ScreenToWorldRoot {
                    pass = FindPassOnNode(eFrontBufferNode, RenderPassType.FullscreenQuad),
                    id   = id
                });
                var buf = EntityManager.AddBuffer <ScreenToWorldPassList>(eBase);
                buf.Add(new ScreenToWorldPassList {
                    pass = FindPassOnNode(eMainViewNode, rpt),
                });
            }
            else
            {
                EntityManager.AddComponentData <ScreenToWorldRoot>(eBase, new ScreenToWorldRoot {
                    pass = FindPassOnNode(eFrontBufferNode, rpt),
                    id   = id
                });
            }
            return(eBase);
        }