Add DisplayList async platform updates#861
Conversation
🤖 Augment PR SummarySummary: This PR introduces an initial DisplayList-driven view render/update pipeline and adds “next update” scheduling support for dynamic content. Changes:
Technical Notes: Several async update helpers currently return “not supported” (false) to trigger fallback; QuartzCore-only behavior is guarded to keep non-Darwin builds viable. 🤖 Was this summary useful? React with 👍 or 👎 |
| do body: (AnyObject) -> Void | ||
| ) { | ||
| #if canImport(Darwin) | ||
| let kind = viewInfo.state.kind |
There was a problem hiding this comment.
Sources/OpenSwiftUICore/Render/DisplayList/DisplayListViewPlatform.swift:2008 — forEachChild no longer has the #if canImport(Darwin) guard, but subviews(_:) / maskView(_:) still call _openSwiftUIPlatformUnimplementedFailure() when QuartzCore isn’t available. If this path executes on Linux/non-QuartzCore platforms it looks like a runtime trap/regression compared to the previous no-op behavior.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| ) | ||
| if asyncLayer.kind == .mask { | ||
| var maskLayer = DisplayList.ViewUpdater.AsyncLayer( | ||
| layer: asyncLayer.layer.mask!, |
There was a problem hiding this comment.
Sources/OpenSwiftUICore/Render/DisplayList/DisplayListViewPlatform.swift:1858 — asyncLayer.layer.mask! is force-unwrapped; if a .mask layer ever exists without a configured mask (or if mask setup lags behind bounds updates), this will crash instead of falling back to a non-async path.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #861 +/- ##
==========================================
- Coverage 26.18% 25.69% -0.49%
==========================================
Files 677 677
Lines 46059 46905 +846
==========================================
- Hits 12059 12053 -6
- Misses 34000 34852 +852 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Summary
DisplayListViewModel, view cache, platform update paths, andnextUpdatesupport.CGPathbounding rect fallback.