blink::PaintController
Blink28610 Okt 2025

blink::PaintController

builds the display list + paint chunks and manages caching.

As painters call into GraphicsContext, they also drive a PaintController which groups drawing into display items and paint chunks (each keyed by the current property‑tree state). It also handles reuse of cached items to avoid repaint when nothing visually changed. Output is an immutable PaintArtifact. (Chromium Git Repositories)

Key fields

  • PaintArtifact* new_paint_artifact_ — being built for this frame;

  • PaintArtifact* old_paint_artifact_ — previous frame for cache matching;

  • PaintChunker paint_chunker_ — forms chunk boundaries based on property state;

  • PaintControllerPersistentData* persistent_data_ — holds prior artifact & subsequences. (Chromium Git Repositories)

Most important methods

  • UpdateCurrentPaintChunkProperties(const PropertyTreeStateOrAlias&) — starts/updates the current chunk when property state changes. (Chromium Git Repositories)

  • template <class T> CreateAndAppend(...) — appends a display item (records drawing op + metadata). (Chromium Git Repositories)

  • bool UseCachedItemIfPossible(...) — reuses prior items to skip repaints. (Chromium Git Repositories)

  • void BeginFrame(const void* frame) / FrameFirstPaint EndFrame(const void* frame) — delimit a painting pass for metrics + cache book‑keeping. (Chromium Git Repositories)

  • (Internals also maintain id→index maps to support O(1)/linear cache lookups.) (Chromium Git Repositories)

Hands off to: the PaintArtifact it produces.


Avsnitt(454)

CSS Multi-Column Layout Modules 1 and 2

CSS Multi-Column Layout Modules 1 and 2

The provided text outlines the evolution and technical mechanics of CSS Multi-Column Layout, moving from the foundational features of Level 1 to the advanced proposals in Level 2. It explains how the ...

24 Jan 34min

Mastering CSS Fragmentation: Levels 3 and 4

Mastering CSS Fragmentation: Levels 3 and 4

CSS fragmentation describes the mechanical process of dividing web content across multiple containers, such as printed pages, layout columns, or digital regions. The provided sources detail the evolut...

24 Jan 36min

CSS Scroll Markers: Deep Dive into CSS Overflow Level 5

CSS Scroll Markers: Deep Dive into CSS Overflow Level 5

The provided text outlines CSS scroll markers, an emerging feature in the CSS Overflow Module Level 5 designed to create interactive navigation like carousels and tables of contents without JavaScript...

24 Jan 35min

CSS Automatic Minimum Size in Flexbox and Grid

CSS Automatic Minimum Size in Flexbox and Grid

The provided text explains the CSS min-size: auto property and how it functions as a default constraint within Flexbox and Grid layouts. It details how this mechanism prevents elements from shrinking ...

23 Jan 35min

Blink Layout Engine: Method Mechanisms for Flex and Grid Sizing

Blink Layout Engine: Method Mechanisms for Flex and Grid Sizing

The provided text details the internal mechanics of the Blink Layout Engine, specifically focusing on how it calculates and enforces automatic minimum sizes for Flexbox and Grid elements. It explains ...

23 Jan 34min

Blink Engine Architecture: content-visibility: auto

Blink Engine Architecture: content-visibility: auto

The provided text explains the content-visibility: auto CSS property and its technical implementation within the Blink rendering engine. This feature boosts web performance by skipping the layout, sty...

22 Jan 27min

Negative Margins and Scroll Behavior in CSS and Blink

Negative Margins and Scroll Behavior in CSS and Blink

The provided text explains how negative CSS margins function across different layout contexts and how they impact browser scrolling behavior. While these values allow elements to overlap by pulling th...

22 Jan 29min

Blink Rendering: Background Paint Location in Overflow Scrolling boxes

Blink Rendering: Background Paint Location in Overflow Scrolling boxes

The provided text explains the technical inner workings of LayoutBox::ComputeBackgroundPaintLocation, a specific C++ function within Google’s Blink rendering engine. This function acts as a decision-m...

21 Jan 29min

Populärt inom Teknik

uppgang-och-fall
elbilsveckan
market-makers
rss-elektrikerpodden
bilar-med-sladd
skogsforum-podcast
rss-veckans-ai
har-vi-akt-till-mars-an
natets-morka-sida
gubbar-som-tjotar-om-bilar
developers-mer-an-bara-kod
rss-laddstationen-med-elbilen-i-sverige
rss-technokratin
rss-uppgang-och-fall
rss-it-sakerhetspodden
ai-sweden-podcast
bli-saker-podden
rss-powerboat-sverige-podcast
rss-snacka-om-ai
rss-ai-med-katarina-gospic-och-viggo-cavling