Compose Rendering Pipeline & Skia Interaction
Compose Rendering Pipeline + Skia Interaction
1. Compose Rendering Pipeline Overview
Compose의 렌더링 파이프라인은 다음 단계로 구성된다.
The Compose rendering pipeline consists of the following stages:
Composition → Layout → Drawing → Skia GPU Pipeline
2. CompositionLocal의 영향 지점
CompositionLocal affects rendering during composition stage, deciding:
- 어떤 색상/타이포그래피를 사용할지
- 레이아웃 방향(LocalLayoutDirection)
- 간격/패딩(LocalSpacing)
- 로케일(LocalLocaleConfig)
3. LayoutNode 구조
Compose UI는 LayoutNode 트리 구조로 표현된다.
LayoutNode
├─ modifiers
├─ measure policy
├─ draw block
└─ children
CompositionLocal 값은 LayoutNode의 measure/draw 정책에 영향을 줄 수 있다.
4. Skia Rendering Flow
CanvasLayer → Skia Canvas → GPU Texture → Screen
CompositionLocal이 draw 단계에 영향을 주는 대표 사례:
- LocalContentColor
- LocalTextStyle
- LocalDensity (dp → px 변환)
5. Rendering Pipeline Diagram
CompositionLocalProvider
↓
Composition runs
↓
SlotTable stores environment
↓
LayoutNodes built with environment
↓
Skia draws using LayoutNode-rendered ops