Exemple #1
0
 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);
     }
 }
Exemple #2
0
 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;
     }
 }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
 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;
     }
 }