@class PXScrollViewSpeedometer, PXGAXCoalescingResponder, PXMediaProvider, PXScrollViewController, PXGTungstenEngineRecordingSession, NSObject, PXGEntityManager, NSMutableArray, PXGTextureManager, UIView, NSString, PXGLayout, PXGViewEnvironment, PXGSpriteDataStore, NSMutableSet, PXGAnimator, NSArray, PXGChangeDetails, PXGSpriteMetadataStore; @protocol PXGRenderer, PXGHitTestEnvironment, PXGEngineDelegate, OS_dispatch_queue, PXDisplayLinkProtocol; @interface PXGEngine : NSObject <PXGLayoutUpdateDelegate, PXGTextureManagerDelegate, PXGRendererDelegate, PXTilingScrollControllerUpdateDelegate, PXChangeObserver> { PXGAnimator *_animator; struct { BOOL updateDebugHUDWithStats; } _delegateRespondsTo; PXGSpriteDataStore *_layoutSpriteDataStore; PXGChangeDetails *_layoutChangeDetails; struct CGPoint { double x; double y; } _viewportShift; struct CGPoint { double x; double y; } _previousVisibleOrigin; PXGSpriteDataStore *_animationPresentationSpriteDataStore; PXGSpriteDataStore *_animationTargetSpriteDataStore; PXGLayout *_animationLayout; PXGChangeDetails *_animationChangeDetails; PXGSpriteMetadataStore *_presentationSpriteMetadaStore; struct { unsigned long long needsUpdate; unsigned long long updated; BOOL isPerformingUpdate; BOOL willPerformUpdate; } _updateFlags; unsigned long long _previousUpdateEntities; struct { long long scrollRegime; BOOL isAnimatingScroll; BOOL isScrubbing; BOOL isAnimatingContent; unsigned long long contentChangeTrend; BOOL isViewBoundsChanging; BOOL isInitialLoad; BOOL isVisible; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetRect; } _previousInteractionState; unsigned long long _pendingUpdateEntities; BOOL _keepDisplayLinkAlive; double _renderForTargetTimestamp; double _lastRenderCompletionTimestamp; BOOL _animatorWasAnimatingAtBeginningOfFrame; BOOL _isUpdatingScrollView; BOOL _isUpdatingTextureManager; BOOL _isUpdatingRenderer; BOOL _viewSizeDidChange; BOOL _lowMemoryMode; id /* block */ _pendingIsInvisibleForSomeTimeBlock; BOOL _extensionHostIsInBackground; PXGViewEnvironment *_pendingViewEnvironment; } @property (readonly, nonatomic) struct _PXGEngineScrollState { struct CGSize { double width; double height; } referenceSize; struct UIEdgeInsets { double top; double left; double bottom; double right; } contentInsets; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } visibleRect; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetRect; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } constrainedVisibleRect; struct CGPoint { double x; double y; } lastScrollDirection; long long scrollSpeedRegime; } scrollState; @property (readonly, nonatomic) long long currentFrameTime; @property (nonatomic) BOOL didDisappear; @property (nonatomic) BOOL didRenderThisFrame; @property (nonatomic) BOOL expectingScrollEvents; @property (nonatomic) BOOL gotScrollEventThisFrame; @property (nonatomic) double lastScrollEventTime; @property (nonatomic) BOOL missedScrollEventThisFrame; @property (nonatomic) BOOL isInvisibleForSomeTime; @property (nonatomic) BOOL isExporting; @property (readonly, nonatomic) id<PXGRenderer> drivingRenderer; @property (readonly, nonatomic) NSMutableSet *interactions; @property (readonly, nonatomic) NSMutableSet *activeInteractions; @property (readonly, nonatomic) NSMutableArray *pendingContentLoadedNotificationBlocks; @property (retain, nonatomic) PXGTungstenEngineRecordingSession *recordingSession; @property (nonatomic) BOOL recursiveUpdateRescheduled; @property (weak, nonatomic) id<PXGEngineDelegate> delegate; @property (readonly, nonatomic) NSArray *renderers; @property (nonatomic, getter=isVisible) BOOL visible; @property (retain, nonatomic) PXGViewEnvironment *viewEnvironment; @property (weak, nonatomic) UIView<PXGHitTestEnvironment> *interactionView; @property (nonatomic) BOOL statsTrackingEnabled; @property (readonly, nonatomic) struct { double x0[6]; double x1[6]; long long x2[6]; double x3[6]; double x4[6]; } *stats; @property (readonly, nonatomic) BOOL debugEngineUpdates; @property (nonatomic) BOOL slowAnimationsEnabled; @property (readonly, nonatomic) PXGAnimator *ppt_animator; @property (nonatomic) BOOL wantsImmediateUpdates; @property (nonatomic) BOOL isInitialLoad; @property (nonatomic) BOOL lowMemoryMode; @property (nonatomic) BOOL disableMetalViewDisplayCompositing; @property (nonatomic) BOOL allowLargerImagesDuringScrollingInLowMemoryMode; @property (readonly, nonatomic) PXGAXCoalescingResponder *coalescingAXResponder; @property (retain, nonatomic) PXMediaProvider *mediaProvider; @property (nonatomic) struct { long long scrollRegime; BOOL isAnimatingScroll; BOOL isScrubbing; BOOL isAnimatingContent; unsigned long long contentChangeTrend; BOOL isViewBoundsChanging; BOOL isInitialLoad; BOOL isVisible; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } targetRect; } interactionState; @property (retain, nonatomic) PXScrollViewController *scrollViewController; @property (retain, nonatomic) PXScrollViewSpeedometer *scrollViewSpeedometer; @property (retain, nonatomic) PXGLayout *layout; @property (readonly, nonatomic) PXGEntityManager *entityManager; @property (readonly, nonatomic) NSObject<OS_dispatch_queue> *layoutQueue; @property (readonly, nonatomic) PXGTextureManager *textureManager; @property (readonly, nonatomic) id<PXDisplayLinkProtocol> displayLink; @property (copy, nonatomic) id /* block */ renderingCompletionHandler; @property (copy, nonatomic) id /* block */ animationRenderingCompletionHandler; @property (nonatomic) BOOL isSuspended; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } normalizedVisibleRect; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)_updateLayout; - (void)_updateDisplayLink; - (void)handleDisplayLink:(id)a0; - (id)init; - (void)updateIfNeeded; - (void)_notifyContentLoadedObserversIfNeeded; - (void)tilingScrollControllerDidScroll:(id)a0; - (BOOL)_shouldDeferRenderUntilNextFrame; - (void)test_installRenderSnapshotHandler:(id /* block */)a0; - (void)_updateAnimatorWithTargetTimestamp:(double)a0; - (id)startRecordingToDirectoryURL:(id)a0; - (void)_releaseResources; - (void)observable:(id)a0 didChange:(unsigned long long)a1 context:(void *)a2; - (id)initForExportWithPixelBufferDestination:(id)a0 layoutQueue:(id)a1 displayLinkClass:(Class)a2; - (void)dealloc; - (void)rendererNeedsUpdate:(id)a0; - (void)registerAllTextureProvidersWithMediaProvider:(id)a0; - (void)_recursiveUpdateDetected; - (void)textureManagerNeedsUpdate:(id)a0; - (void)allowSecondRenderThisFrame; - (BOOL)_shouldDeferContentOffsetUpdates; - (void)_updateLayoutInteractions; - (void)registerAllTextureProvidersWithMediaProvider:(id)a0 namedImagesBundle:(id)a1; - (void)renderer:(id)a0 viewportSizeWillChange:(struct CGSize { double x0; double x1; })a1; - (BOOL)_isInBackground; - (void)_updateScrollStateWithReason:(unsigned long long)a0; - (void)registerTextureProvider:(id)a0 forMediaKind:(unsigned char)a1; - (void)ensureUpdatedLayout; - (void)_retargetAnimations; - (void)_updateInteractionState; - (void)_updateInvisibleTextureManager; - (void)rendererPerformRender:(id)a0; - (void)enumerateSpritesInRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a0 usingBlock:(id /* block */)a1; - (void)notifyContentFullyLoadedWithTimeout:(double)a0 block:(id /* block */)a1; - (void)_updateIfNeededWithReason:(id)a0; - (void)layoutNeedsUpdate:(id)a0; - (void)_performRender; - (void)_resetChangeDetails; - (void)_setNeedsRender; - (BOOL)_shouldWaitForScrollEvent; - (void).cxx_destruct; - (void)__setNeedsUpdate; - (void)_deferredInvalidate:(unsigned long long)a0; - (void)_extensionHostWillEnterForeground:(id)a0; - (void)_updateTextureManager; - (BOOL)copyPresentedSpriteFor:(id)a0 geometry:(struct { struct { double x0; double x1; double x2; } x0; } *)a1 style:(struct { float x0; struct { union { struct { float x0; float x1; float x2; float x3; } x0; float x1[4]; } x0; } x1; float x2; float x3; float x4; float x5; unsigned short x6; unsigned char x7; float x8; struct { void /* unknown type, empty encoding */ x0[4]; } x9; } *)a2 info:(struct { unsigned char x0; unsigned char x1; float x2; long long x3; unsigned short x4; unsigned char x5; } *)a3; - (void)rendererDidChangeTextureConverter:(id)a0; - (void)handleScreensDidWakeNotification:(id)a0; - (void)_enumerateRenderers:(id /* block */)a0; - (void)_forceInvalidate:(unsigned long long)a0; - (void)_handleTimeoutForNotificationBlock:(id /* block */)a0; - (id)initWithAnimator:(id)a0 renderers:(id)a1 displayLinkClass:(Class)a2 layoutQueue:(id)a3; - (void)layoutNeedsRenderUpdate:(id)a0; - (void)_invalidateOrDefer:(unsigned long long)a0; - (void)tilingScrollControllerDidUpdate:(id)a0; - (void)_extensionHostDidEnterBackground:(id)a0; - (void)_propagateTextureConverters; - (void)_hasBeenInvisibleForSomeTime; - (void)_handleRescheduledRecursiveUpdate; @end