Blink PrePaint: Fragment Traversal and Paint Property Tree Construction
Blink28629 Des 2025

Blink PrePaint: Fragment Traversal and Paint Property Tree Construction

The provided text explains the PrePaint phase within Blink’s rendering engine, a critical stage where the system prepares for visual output by invalidating old paint and building property trees. During this process, a tree walk traverses the layout and fragment trees to establish hierarchical relationships for CSS properties like transforms, clips, and effects. This traversal is optimized to skip clean subtrees, ensuring that only "dirty" elements or those affected by ancestor changes are processed. The system specifically manages complex scenarios such as block fragmentation and out-of-flow elements, ensuring they are correctly positioned within their containing blocks. Results are stored in FragmentData objects, which provide the essential coordinate and property state used by the subsequent Paint phase to generate display items. Ultimately, this phase bridges the gap between layout geometry and the final composited layers sent to the screen.


Episoder(457)

cc::PropertyTrees

cc::PropertyTrees

(TransformTree / ClipTree / EffectTree / ScrollTree) with nodes cc::TransformNode / ClipNode / EffectNode / ScrollNode — The impl‑side property‑tree state that positions, clips, blends, and scrolls co...

22 Sep 202534min

cc::LayerTreeHostImpl

cc::LayerTreeHostImpl

The compositor‑thread twin that owns the active/pending trees, runs impl‑side animations/scroll, and prepares draw. Implements cc::InputHandler for threaded scrolling/pinch.

22 Sep 202546min

main —> impl cc::LayerTreeHost

main —> impl cc::LayerTreeHost

Packages updated layers/property trees; kicks a commit to the compositor thread (via the proxy).

22 Sep 202536min

blink::PropertyTreeManager

blink::PropertyTreeManager

Bridges Blink’s paint property trees into cc property trees: creates/updates cc TransformNode, ClipNode, EffectNode, and ScrollNode (including inner/outer viewport scroll nodes).

22 Sep 202539min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

Decides what needs to be composited and prepares the main‑thread representation to feed cc (layers if needed, scrollbar compositing, etc.).

22 Sep 202542min

blink::PaintArtifact

blink::PaintArtifact

The immutable package of paint chunks + display items for this frame, used to drive compositing without re‑painting.

21 Sep 202536min

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

blink::TransformPaintPropertyNode / ClipPaintPropertyNode / EffectPaintPropertyNode / ScrollPaintPropertyNode

The paint property trees captured during painting (transform, clip, effect/opacity, scroll offset) that define visual & coordinate‑space state.

21 Sep 202541min

blink::PaintController

blink::PaintController

Records drawing into a DisplayItemList, segmenting it into PaintChunks keyed by property‑tree state. (Output: a PaintArtifact.)

21 Sep 202533min

Populært innen Teknologi

lydartikler-fra-aftenposten
romkapsel
teknisk-sett
nasjonal-sikkerhetsmyndighet-nsm
smart-forklart
elektropodden
energi-og-klima
rss-ki-praten
fornybaren
rss-impressions-2
tomprat-med-gunnar-tjomlid
shifter
rss-alt-vi-kan
rss-heis
rss-ai-forklart
rss-bouvet-bobler
rss-fjorsilkebris-podcast
rss-alt-som-gar-pa-strom
rss-praktisk-proptech
rss-anleggspraten