Skip to content

Commit 3b11156

Browse files
committed
Update RootTransform
1 parent 36de82a commit 3b11156

File tree

3 files changed

+36
-37
lines changed

3 files changed

+36
-37
lines changed

Sources/OpenSwiftUI/Integration/Hosting/UIKit/View/UIHostingView.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -330,11 +330,7 @@ open class _UIHostingView<Content>: UIView, XcodeViewDebugDataProvider where Con
330330
render(interval: interval, targetTimestamp: nil)
331331
Update.unlock()
332332
}
333-
334-
package func modifyViewInputs(_ inputs: inout _ViewInputs) {
335-
// TODO
336-
}
337-
333+
338334
override dynamic open var frame: CGRect {
339335
get {
340336
super.frame

Sources/OpenSwiftUICore/View/Graph/ViewGraph.swift

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -510,30 +510,7 @@ extension ViewGraph {
510510
}
511511
}
512512

513-
// MARK: - RootDisplayList
514513

515-
private struct RootDisplayList: Rule, AsyncAttribute {
516-
@Attribute var content: DisplayList
517-
@Attribute var time: Time
518-
519-
var value: (DisplayList, DisplayList.Version) {
520-
var displayList = content
521-
let version = DisplayList.Version(forUpdate: ())
522-
displayList.applyViewGraphTransform(time: $time, version: version)
523-
return (content, version)
524-
}
525-
}
526-
527-
// MARK: - RootTransform
528-
529-
private struct RootTransform: Rule {
530-
var value: ViewTransform {
531-
guard let delegate = ViewGraph.current.delegate else {
532-
return ViewTransform()
533-
}
534-
return delegate.rootTransform()
535-
}
536-
}
537514

538515
// MARK: - RootGeometry
539516

@@ -662,3 +639,36 @@ extension Graph {
662639
unsafeBitCast(context, to: ViewGraph.self)
663640
}
664641
}
642+
643+
// MARK: - RootTransformProvider
644+
645+
protocol RootTransformProvider {
646+
func rootTransform() -> ViewTransform
647+
}
648+
649+
// MARK: - RootDisplayList
650+
651+
private struct RootDisplayList: Rule, AsyncAttribute {
652+
@Attribute var content: DisplayList
653+
@Attribute var time: Time
654+
655+
var value: (DisplayList, DisplayList.Version) {
656+
var displayList = content
657+
let version = DisplayList.Version(forUpdate: ())
658+
displayList.applyViewGraphTransform(time: $time, version: version)
659+
return (content, version)
660+
}
661+
}
662+
663+
// MARK: - RootTransform [6.5.4]
664+
665+
private struct RootTransform: Rule {
666+
var value: ViewTransform {
667+
guard let delegate = ViewGraph.current.delegate,
668+
let provider = delegate.as(RootTransformProvider.self)
669+
else {
670+
return ViewTransform()
671+
}
672+
return provider.rootTransform()
673+
}
674+
}

Sources/OpenSwiftUICore/View/Graph/ViewGraphDelegate.swift

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,20 @@
22
// ViewGraphDelegate.swift
33
// OpenSwiftUICore
44
//
5-
// Audited for iOS 18.0
5+
// Audited for 6.5.4
66
// Status: Complete
77

88
package protocol ViewGraphDelegate: GraphDelegate {
99
func `as`<T>(_ type: T.Type) -> T?
10-
func modifyViewInputs(_ inputs: inout _ViewInputs)
1110
func updateViewGraph<T>(body: (ViewGraph) -> T) -> T
1211
func requestUpdate(after: Double) -> ()
13-
func rootTransform() -> ViewTransform
1412
}
1513

1614
@_spi(ForOpenSwiftUIOnly)
1715
extension ViewGraphDelegate {
1816
package func `as`<T>(_ type: T.Type) -> T? { nil }
19-
package func modifyViewInputs(_ inputs: inout _ViewInputs) {}
20-
17+
2118
public func updateGraph<T>(body: (GraphHost) -> T) -> T {
2219
updateViewGraph { body($0) }
2320
}
24-
25-
package func rootTransform() -> ViewTransform {
26-
ViewTransform()
27-
}
2821
}

0 commit comments

Comments
 (0)