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)

Chrome Compositor LayerTree Architecture and Input Handling

Chrome Compositor LayerTree Architecture and Input Handling

The text provides a detailed overview of the architecture and function of Chrome's Compositor (cc) component, specifically focusing on the core data structures: LayerTree and LayerTreeImpl. It explain...

7 Loka 202527min

viz::Display::DrawAndSwap

viz::Display::DrawAndSwap

In Chrome’s rendering pipeline, the Viz service in the GPU process owns a viz::Display object. A Display is responsible for taking aggregated CompositorFrames (produced by the SurfaceAggregator), draw...

5 Loka 202528min

Chrome RenderingNG: Paint Artifact and Compositor Architecture

Chrome RenderingNG: Paint Artifact and Compositor Architecture

source provides an extensive, lecture-style examination of Chrome’s RenderingNG pipeline, specifically focusing on the roles of the PaintArtifact and the PaintArtifactCompositor. The text explains tha...

5 Loka 202534min

Browser Rendering: Calculating Draw Properties

Browser Rendering: Calculating Draw Properties

The source provides an extensive explanation of the internal browser rendering mechanism used in Blink and Chrome, specifically focusing on the CalculateDrawProperties algorithm. This process translat...

5 Loka 202539min

Chrome Compositor Transform Updates on Scroll

Chrome Compositor Transform Updates on Scroll

These sources provide an extensive technical explanation of how the Chrome compositor manages dynamic properties, specifically focusing on transformations and scrolling, using a structure called Prope...

4 Loka 202532min

Chrome Compositor Architecture: LayerTreeHost and LayerTreeHostImpl

Chrome Compositor Architecture: LayerTreeHost and LayerTreeHostImpl

The sources provide an extensive architectural overview of the Chrome cc compositor module, focusing on the collaboration between three critical classes: LayerTreeHost (LTH), LayerTreeHostImpl (LTHI),...

3 Loka 202534min

Chromium Blink's Layer Recycle Tree Optimization

Chromium Blink's Layer Recycle Tree Optimization

The sources provide an extensive technical explanation of the Chromium/Blink rendering pipeline, focusing specifically on the compositor's layer trees and a performance optimization known as the Recyc...

3 Loka 202529min

Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll

Chromium Compositor's CalculateDrawProperties: Scrolling and Overscroll

The sources provide an extremely detailed, line-by-line breakdown of the Chromium compositor function CalculateDrawProperties, explaining how it prepares the active layer tree for rendering. A primary...

3 Loka 202530min