cc::EffectTree
Blink2862 Marras 2025

cc::EffectTree

The source provides an extensive technical explanation of the Effect Property Tree within the Chromium compositor, which is crucial for managing how visual effects are applied to web content. This tree structure, composed of EffectNodes, decouples effects (such as opacity, filters, and blending modes) from the traditional layer hierarchy to centralize calculations, improving rendering performance. A primary function of the effect tree is determining when content must be rendered into a separate RenderSurface (an offscreen texture) for correct compositing, flagged by the render_surface_reason field for complex needs like filters or non-standard blend modes. The document details the structure of an EffectNode, including fields that track cumulative properties like screen_space_opacity and visibility flags like is_drawn, and explains how the effect tree seamlessly interacts with the Transform and Clip property trees to ensure correct coordinate spaces and boundaries are maintained during effect application. Finally, it addresses the tree's role in facilitating performant CSS animations by allowing real-time property updates on the compositor thread and ensuring stability through element identification.

Jaksot(397)

CSS Backdrop-Filter

CSS Backdrop-Filter

The sources provide an extensive technical explanation of the CSS backdrop-filter property within Google Chrome's Blink rendering engine. This deep dive details how the feature, which allows filters l...

16 Loka 202524min

Intersection Observer

Intersection Observer

The sources provide an in-depth explanation of the Intersection Observer API within the Blink rendering engine, focusing on its architecture and implementation to improve web performance. The initial ...

16 Loka 202544min

Chrome Compositor Animation Architecture (cc)

Chrome Compositor Animation Architecture (cc)

The sources provide an extensive architectural overview of the Chrome Compositor Animation (cc) subsystem, which is responsible for executing visual animations like transforms and opacity changes effi...

15 Loka 202541min

Blink's Graph Data Structures and Traversals

Blink's Graph Data Structures and Traversals

The text provides an extensive overview of the graph-structured data structures used within Blink, Chromium's rendering engine, detailing how web content is processed from initial input to final displ...

13 Loka 202539min

blink::PropertyTreeManager

blink::PropertyTreeManager

bridges Blink property trees → cc property trees. Given Blink’s Transform/Clip/Effect/Scroll nodes (from paint property trees), this class creates/updates the cc counterparts (cc::TransformNode, cc::C...

10 Loka 202546min

blink::PaintArtifactCompositor

blink::PaintArtifactCompositor

turns chunks into compositor layers & updates cc property trees. Consumes the new PaintArtifact and does the layerization and property‑tree updates required for compositor draw. It supports fast paths...

10 Loka 202529min

blink::PaintChunk and blink::DisplayItemList

blink::PaintChunk and blink::DisplayItemList

grouping and content. PaintChunk: groups sequential display items that share the same property‑tree state and cull/visibility; it’s the unit we layerize and invalidate.DisplayItemList: the recorded Sk...

10 Loka 202537min

blink::PaintArtifact

blink::PaintArtifact

the immutable “what to draw” package for this frame. A PaintArtifact is the product of Blink painting: a DisplayItemList plus an ordered vector of PaintChunks. It is immutable post‑creation and design...

10 Loka 202531min