Belangrijke datastructuren in RenderingNG

Chris Harrelson
Chris Harrelson
Daniel Cheng
Daniel Cheng
Filip Rogers
Philip Rogers
Koji Ishi
Koji Ishi
Ian Kilpatrick
Ian Kilpatrick
Kyle Charbonneau
Kyle Charbonneau

Laten we eens kijken naar de belangrijkste gegevensstructuren, die invoer en uitvoer zijn voor de weergavepijplijn .

Deze datastructuren zijn:

  • Framebomen zijn samengesteld uit lokale en externe knooppunten die vertegenwoordigen welke webdocumenten zich in welk renderproces bevinden en welke Blink-renderer.
  • De onveranderlijke fragmentboom vertegenwoordigt de uitvoer van (en invoer voor) het lay-outbeperkingsalgoritme.
  • Eigenschappenbomen vertegenwoordigen de transformatie-, clip-, effect- en schuifhiërarchieën van een webdocument. Deze worden door de hele pijpleiding gebruikt.
  • Weergavelijsten en verfbrokken zijn de invoer voor de raster- en gelaagdheidsalgoritmen.
  • Compositorframes kapselen oppervlakken, renderoppervlakken en GPU-textuurtegels in die worden gebruikt om te tekenen met behulp van de GPU.

Voordat we door deze datastructuren lopen, bouwt het volgende voorbeeld voort op een voorbeeld uit architecture review . Dit voorbeeld wordt in dit document gebruikt met demonstraties van hoe de datastructuren erop van toepassing zijn.

<!-- Example code -->
<html>
  <div style="overflow: hidden; width: 100px; height: 100px;">
    <iframe style="filter: blur(3px);
      transform: rotateZ(1deg);
      width: 100px; height: 300px"
      id="one" src="foo.com/etc"></iframe>
  </div>
  <iframe style="top:200px;
    transform: scale(1.1) translateX(200px)"
    id="two" src="bar.com"></iframe>
</html>

Kader bomen

Chrome kan er soms voor kiezen om een ​​cross-origin-frame in een ander weergaveproces weer te geven dan het bovenliggende frame.

In de voorbeeldcode zijn er in totaal drie frames: