blink::PaintController
Blink28610 Loka 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.


Jaksot(397)

Chromium Tile Raster Transform Propagation Audit

Chromium Tile Raster Transform Propagation Audit

This detailed audit examines the complete code path within Chromium that determines the raster_transform_ property of a cc::Tile, which is an immutable scale and translation used during rasterization....

31 Loka 202528min

Chromium Compositor Tile Raster Transform Path Map

Chromium Compositor Tile Raster Transform Path Map

The source provides an exhaustive technical mapping of how the Tile::raster_transform_ field is initialized and maintained within the Chromium compositor. It explains that this transform, which consis...

31 Loka 202527min

(ALT) Chromium Compositor PictureLayerImpl Deep Dive

(ALT) Chromium Compositor PictureLayerImpl Deep Dive

The source provides an extensive technical overview of the cc::PictureLayerImpl class, a critical component in the rendering architecture of Chromium's compositor, responsible for processing content o...

31 Loka 202540min

Chromium Compositor PictureLayerImpl Deep Dive

Chromium Compositor PictureLayerImpl Deep Dive

The source provides an extensive technical overview of the cc::PictureLayerImpl class, a critical component in the rendering architecture of Chromium's compositor, responsible for processing content o...

31 Loka 202536min

Chromium Compositor Picture Layer Deep Dive

Chromium Compositor Picture Layer Deep Dive

This source provides an extensive, practitioner-focused examination of the Chromium Compositor's PictureLayerImpl class and its associated tiling stack, which manages the rasterization and drawing of ...

31 Loka 202536min

Singing and Memory in Ancient Greek Oral Tradition

Singing and Memory in Ancient Greek Oral Tradition

The source materials offer an extensive analysis of how ancient Greek civilization used music and rhythm as fundamental mnemonic tools for preserving and transmitting cultural knowledge long before wi...

30 Loka 20251h 24min

Chrome Property Trees: Blink vs. Compositor Comparison

Chrome Property Trees: Blink vs. Compositor Comparison

The source provides an extensive technical comparison of the Paint Property Trees (PPTs) used in Chrome's Blink rendering engine and the corresponding Compositor Property Trees (CC) utilized by the co...

30 Loka 202553min

Chrome Blink and CC Finch Experiment Guide

Chrome Blink and CC Finch Experiment Guide

The source material is a comprehensive guide detailing the process for Google Chrome engineers to launch an A/B field trial (experiment) for changes made to the rendering engine (Blink) or the composi...

29 Loka 202544min