blink::GraphicsContext
Blink28610 Loka 2025

blink::GraphicsContext

immediate drawing API that records to a display list.

Painters for layout objects use GraphicsContext to “draw”—but in modern Blink those calls get recorded into a display list (PaintRecord) backed by Skia commands. This recording is scoped and batched between BeginRecording(...)/EndRecording(). (Chromium Git Repositories)

Key methods (how display items get their pixels)

  • Recording: BeginRecording(const FloatRect&) → sk_sp<PaintRecord> EndRecording() — wraps a run of drawing commands for later replay. (Chromium Git Repositories)

  • Draw ops (representative): DrawRect, DrawImage(...), DrawText(...), BeginLayer/EndLayer — the stuff that becomes Skia ops inside display items. (Chromium Git Repositories)

Important fields

  • cc::PaintCanvas* canvas_ (owned by recorder), PaintRecorder paint_recorder_ — actual recording guts;

  • float device_scale_factor_, state stacks/flags — needed for correct pixel snapping/appearance. (Chromium Git Repositories)

Hands off to: PaintController, which packages these recorded ops into chunks/items.


Jaksot(394)

StyleResolver: Blink Architecture and CSS Engine Deep Dive

StyleResolver: Blink Architecture and CSS Engine Deep Dive

The provided text outlines the StyleResolver within Google’s Blink rendering engine, detailing its pivotal role in converting CSS rules into final ComputedStyle objects for DOM elements. This complex ...

2 Tammi 39min

StyleAdjuster: Blink Rendering Engine

StyleAdjuster: Blink Rendering Engine

The provided text explains the StyleAdjuster component within the Blink rendering engine, which serves as a critical post-processing stage in the CSS style resolution pipeline. Positioned between init...

2 Tammi 37min

FragmentBuilder: Architecture and Role

FragmentBuilder: Architecture and Role

In Blink’s LayoutNG engine, the FragmentBuilder class serves as a vital instrument for generating immutable fragment trees, which represent the final geometric output of the layout process. This syste...

2 Tammi 37min

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

ObjectPaintProperties: Linking Layout and Painting in Blink Engine

In the Blink rendering engine, the ObjectPaintProperties structure serves as a vital bridge between the layout and painting phases. It functions by organizing specific visual property nodes—such as tr...

2 Tammi 33min

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

BoxFragmentBuilder and Layout Architecture in Blink's LayoutNG

The provided text details the BoxFragmentBuilder, a vital component within the Blink LayoutNG engine that constructs physical representations of layout elements. It acts as a transitional bridge, taki...

2 Tammi 39min

Pseudo-Elements in Blink's Layout Tree

Pseudo-Elements in Blink's Layout Tree

In the Blink rendering engine, CSS pseudo-elements are managed through specialized C++ classes and internal structures that link them to their originating DOM elements. These entities are dynamically ...

2 Tammi 42min

Clip Nodes in the Blink and Chromium Compositor

Clip Nodes in the Blink and Chromium Compositor

The provided text explains how Chromium’s Blink engine and the compositor utilize clip nodes within property trees to manage page geometry and visual masking. These nodes define specific regions where...

2 Tammi 35min

Blink Runtime-Enabled Features in Chromium

Blink Runtime-Enabled Features in Chromium

Blink runtime-enabled features serve as internal configuration flags that allow Chromium developers to manage new web platform capabilities without rebuilding the browser. These flags facilitate safel...

1 Tammi 41min