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); }
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); }
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); }