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(394)

DrawScrollingContentsOp: Accelerated Scrolling via Raster-Inducing Display Lists

DrawScrollingContentsOp: Accelerated Scrolling via Raster-Inducing Display Lists

The provided text describes DrawScrollingContentsOp, a specialized paint operation within Chromium’s rendering engine that enhances scrolling performance for non-composited content. By utilizing the R...

21 Tammi 30min

Chromium Compositor Synced Properties: Deep Dive

Chromium Compositor Synced Properties: Deep Dive

Chromium uses synced properties as a specialized coordination system to maintain consistency between the main thread and the compositor thread. These properties manage essential values that change fre...

21 Tammi 27min

Mastering CSS Background Attachment: A Technical Guide

Mastering CSS Background Attachment: A Technical Guide

The provided text offers a technical examination of the background-attachment CSS property, detailing how it dictates whether images remain static or move during scrolling. It identifies three primary...

20 Tammi 24min

Blink and Havok: Engineering Parallels in Web and Physics Engines

Blink and Havok: Engineering Parallels in Web and Physics Engines

This text examines the technical similarities between Chromium’s Blink engine and high-performance physics engines like Havok. Although they serve different purposes, both rely on iterative update loo...

20 Tammi 29min

CSS Float Layout and Blink's LayoutNG Implementation

CSS Float Layout and Blink's LayoutNG Implementation

The provided text explains the technical specifications and implementation of CSS float layouts, specifically focusing on the Blink engine's LayoutNG in Chrome. It details how floats are positioned ou...

20 Tammi 26min

CSS Positioned Layout Module Level 3

CSS Positioned Layout Module Level 3

The CSS Positioned Layout Module Level 3 is a comprehensive update that modernizes how elements are placed and layered on web pages. It preserves the core behaviors of CSS2.1 while introducing sticky ...

20 Tammi 14min

CSS Overflow Module Level 4

CSS Overflow Module Level 4

The provided documents detail the CSS Overflow Module Level 4, a specification that enhances how web browsers handle content exceeding an element's boundaries. It introduces sophisticated controls lik...

19 Tammi 36min

CSS Overflow Module Level 3

CSS Overflow Module Level 3

CSS Overflow Module Level 3 introduces more precise ways to manage content that exceeds an element's boundaries, building upon previous standards with new properties and values. A primary addition is ...

19 Tammi 35min