public override void AddToRenderChain(RenderChain chain) { if (!GloballyVisible || ClipChildren == ClipMethod.NoRender || !ClipRegionTest(chain.ClipRegion)) { return; } if (renderTexture != null || ClipChildren == ClipMethod.ScissorTest || ClipChildren == ClipMethod.StencilTest) { AddSelfToRenderChain(chain, Layer); if (GetTangerineFlag(TangerineFlags.DisplayContent) && ClipChildren != ClipMethod.ScissorTest) { AddSelfAndChildrenToRenderChain(chain, Layer); } } else if (Layer == 0) { // 90% calls should go here. if (PostPresenter != null) { chain.Add(this, PostPresenter); } for (var node = FirstChild; node != null; node = node.NextSibling) { node.RenderChainBuilder?.AddToRenderChain(chain); } if (Presenter != null) { chain.Add(this, Presenter); } } else { AddSelfAndChildrenToRenderChain(chain, Layer); } }
protected void AddSelfAndChildrenToRenderChain(RenderChain chain, int layer) { if (layer == 0) { if (PostPresenter != null) { chain.Add(this, PostPresenter); } for (var node = FirstChild; node != null; node = node.NextSibling) { node.RenderChainBuilder?.AddToRenderChain(chain); } if (Presenter != null) { chain.Add(this, Presenter); } } else { var savedLayer = chain.CurrentLayer; chain.CurrentLayer = layer; AddSelfAndChildrenToRenderChain(chain, 0); chain.CurrentLayer = savedLayer; } }
public override void AddToRenderChain(RenderChain chain) { if (PostPresenter != null) { chain.Add(this, PostPresenter); } if (ReverseOrderRendering) { AddToRenderChainReversed(chain); } else { AddToRenderChainDirect(chain); } if (Presenter != null) { chain.Add(this, Presenter); } }
protected void AddSelfToRenderChain(RenderChain chain, int layer) { if (layer == 0) { if (PostPresenter != null) { chain.Add(this, PostPresenter); } if (Presenter != null) { chain.Add(this, Presenter); } } else { var savedLayer = chain.CurrentLayer; chain.CurrentLayer = layer; AddSelfToRenderChain(chain, 0); chain.CurrentLayer = savedLayer; } }