EPISODE · Oct 10, 2025 · 29 MIN
blink::PaintArtifactCompositor
from Blink286 · host Free Debreuil
turns chunks into compositor layers & updates cc property trees. Consumes the new PaintArtifact and does the layerization and property‑tree updates required for compositor draw. It supports fast paths when only values changed (e.g., opacity) or when a scroll only induces raster invalidation, avoiding full rebuilds. It owns a subtree of cc layers corresponding to the artifact. (Chromium Git Repositories)Key fieldsscoped_refptr<cc::Layer> root_layer_ — root of the Blink‑owned layer subtree.UpdateType needs_update_ — kRepaint vs kFull (or scroll fast path).Caches/maps for synthesized mask clips and scroll translations seen while layerizing. (Chromium Git Repositories)Most important methodsbool TryFastPathUpdate(const PaintArtifact&) — take a cheap path (no topology change). (Chromium Git Repositories)void Update(const PaintArtifact&, const ViewportProperties&, const StackScrollTranslationVector&, Vector<std::unique_ptr<cc::ViewTransitionRequest>>) — full reconciliation to layers + cc property trees. (Chromium Git Repositories)“Direct update” helpers like DirectlyUpdateCompositedOpacityValue(...), DirectlyUpdateScrollOffsetTransform(...) — skip rebuilds for common animations/scrolling. (Chromium Git Repositories)Hands off to: PropertyTreeManager (internally) to mirror Blink property nodes to cc trees, ready for commit to the compositor thread.
What this episode covers
turns chunks into compositor layers & updates cc property trees. Consumes the new PaintArtifact and does the layerization and property‑tree updates required for compositor draw. It supports fast paths when only values changed (e.g., opacity) or when a scroll only induces raster invalidation, avoiding full rebuilds. It owns a subtree of cc layers corresponding to the artifact. (Chromium Git Repositories)Key fieldsscoped_refptr<cc::Layer> root_layer_ — root of the Blink‑owned layer subtree.UpdateType needs_update_ — kRepaint vs kFull (or scroll fast path).Caches/maps for synthesized mask clips and scroll translations seen while layerizing. (Chromium Git Repositories)Most important methodsbool TryFastPathUpdate(const PaintArtifact&) — take a cheap path (no topology change). (Chromium Git Repositories)void Update(const PaintArtifact&, const ViewportProperties&, const StackScrollTranslationVector&, Vector<std::unique_ptr<cc::ViewTransitionRequest>>) — full reconciliation to layers + cc property trees. (Chromium Git Repositories)“Direct update” helpers like DirectlyUpdateCompositedOpacityValue(...), DirectlyUpdateScrollOffsetTransform(...) — skip rebuilds for common animations/scrolling. (Chromium Git Repositories)Hands off to: PropertyTreeManager (internally) to mirror Blink property nodes to cc trees, ready for commit to the compositor thread.
NOW PLAYING
blink::PaintArtifactCompositor
No transcript for this episode yet
Similar Episodes
No similar episodes found.
Similar Podcasts
No similar podcasts found.