@@ -91,12 +91,75 @@ bool UIViewIgnoresTouchEvents(UIView *view);
9191OPENSWIFTUI_EXPORT
9292float UIAnimationDragCoefficient (void );
9393
94+ UIView * _UIKitCreateCustomView (Class class, CALayer *layer);
95+
9496// MARK: - UIUpdate related private API from UIKitCore
9597
9698OPENSWIFTUI_EXPORT
97- bool _UIUpdateAdaptiveRateNeeded ();
99+ bool _UIUpdateAdaptiveRateNeeded (void );
98100
99- UIView * _UIKitCreateCustomView (Class class, CALayer *layer);
101+ OPENSWIFTUI_EXPORT
102+ bool _UIUpdateCycleEnabled (void );
103+
104+ typedef struct _UIUpdateTiming {
105+ uint64_t unknown1;
106+ uint64_t unknown2;
107+ uint64_t unknown3;
108+ } _UIUpdateTiming;
109+
110+ typedef void (^_UIUpdateSequenceCallback)(void * _Nullable context, CGFloat time, const _UIUpdateTiming * _Nonnull timing);
111+
112+ typedef struct _UIUpdateSequenceItem _UIUpdateSequenceItem;
113+
114+ typedef struct _UIUpdateSequence {
115+ _UIUpdateSequenceItem * _Nullable first;
116+ } _UIUpdateSequence;
117+
118+ typedef struct _UIUpdateSequenceItem {
119+ const _UIUpdateSequenceItem * _Nullable next;
120+ const _UIUpdateSequence * _Nullable sequence;
121+ const char * name;
122+ uint32_t flags;
123+ void * _Nullable context;
124+ void * _Nullable callback; // Actual type should be _UIUpdateSequenceCallback*
125+ } _UIUpdateSequenceItem;
126+
127+ // MARK: - UIUpdateSequence Items
128+ //
129+ // UIUpdateActionPhase defines specific phases of the UI update process.
130+ // See: https://developer.apple.com/documentation/uikit/uiupdateactionphase
131+ //
132+ // Each UI update consists of several phases that run in a consistent order.
133+ // There are two phase groups: standard and low-latency.
134+ //
135+ // Standard phase group (runs for each UI update):
136+ // 1. beforeEventDispatch / afterEventDispatch -> HIDEventsItem
137+ // 2. beforeCADisplayLinkDispatch / afterCADisplayLinkDispatch -> CADisplayLinksItem
138+ // 3. beforeCATransactionCommit / afterCATransactionCommit -> CATransactionCommitItem
139+ //
140+ // Low-latency phase group (optional, runs after standard phases):
141+ // 1. beforeLowLatencyEventDispatch / afterLowLatencyEventDispatch -> LowLatencyHIDEventsItem
142+ // 2. beforeLowLatencyCATransactionCommit / afterLowLatencyCATransactionCommit -> LowLatencyCATransactionCommitItem
143+
144+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceScheduledItem;
145+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceHIDEventsItem;
146+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceCADisplayLinksItem;
147+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceAnimationsItem;
148+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceCATransactionCommitItem;
149+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceLowLatencyHIDEventsItem;
150+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceLowLatencyCATransactionCommitItem;
151+ OPENSWIFTUI_EXPORT const _UIUpdateSequenceItem * _Nonnull _UIUpdateSequenceDoneItem;
152+
153+ OPENSWIFTUI_EXPORT
154+ void * _Nonnull _UIUpdateSequenceInsertItem (const _UIUpdateSequenceItem * _Nullable next,
155+ const _UIUpdateSequence * _Nullable sequence,
156+ const char * name,
157+ uint32_t flags,
158+ void * _Nullable context,
159+ _UIUpdateSequenceCallback _Nullable callback);
160+
161+ OPENSWIFTUI_EXPORT
162+ void _UIUpdateSequenceRemoveItem (_UIUpdateSequenceItem *item);
100163
101164OPENSWIFTUI_ASSUME_NONNULL_END
102165
0 commit comments