@class NSHashTable, PXGViewEnvironment, NSArray, NSString, NSIndexSet, NSMutableDictionary, NSDictionary, NSObject, PXGEntityManager, NSMutableSet, PXGTextureManagerPreheatingStrategy, NSMapTable; @protocol PXGTextureConverter, PXGMutableSpriteTexture, PXGTextureManagerDelegate, OS_dispatch_queue; @interface PXGTextureManager : NSObject <PXGTextureProviderDelegate, PXGTextureAtlasManagerDelegate> { NSObject<OS_dispatch_queue> *_requestQueue; NSObject<OS_dispatch_queue> *_workQueue; NSObject<OS_dispatch_queue> *_processQueue; NSObject<OS_dispatch_queue> *_adjustQueue; NSObject<OS_dispatch_queue> *_deallocationsQueue; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _lookupLock; NSMapTable *_lookupLock_textureByKeyByPresentationType[3]; struct unordered_map<int, PXGRequestDetails, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<const int, PXGRequestDetails>>> { struct __hash_table<std::__hash_value_type<int, PXGRequestDetails>, std::__unordered_map_hasher<int, std::__hash_value_type<int, PXGRequestDetails>, std::hash<int>, std::equal_to<int>>, std::__unordered_map_equal<int, std::__hash_value_type<int, PXGRequestDetails>, std::equal_to<int>, std::hash<int>>, std::allocator<std::__hash_value_type<int, PXGRequestDetails>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<int, PXGRequestDetails>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<int, std::__hash_value_type<int, PXGRequestDetails>, std::hash<int>, std::equal_to<int>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<int, std::__hash_value_type<int, PXGRequestDetails>, std::equal_to<int>, std::hash<int>>> { float __value_; } __p3_; } __table_; } _lookupLock_requestDetailsByRequestID; NSHashTable *_spriteTexturesInUse; NSMapTable *_pendingSpriteTextureByRequestID; NSDictionary *_textureConverterByPresentationType; id<PXGTextureConverter> _atlasTextureConverter; unsigned char _atlasPresentationType; BOOL _didSwitchTextureConverter; NSMutableDictionary *_textureProviderByMediaKind; NSMapTable *_textureProvidersDisplayLinkRegistrationState; struct unordered_map<int, unsigned int, std::hash<int>, std::equal_to<int>, std::allocator<std::pair<const int, unsigned int>>> { struct __hash_table<std::__hash_value_type<int, unsigned int>, std::__unordered_map_hasher<int, std::__hash_value_type<int, unsigned int>, std::hash<int>, std::equal_to<int>>, std::__unordered_map_equal<int, std::__hash_value_type<int, unsigned int>, std::equal_to<int>, std::hash<int>>, std::allocator<std::__hash_value_type<int, unsigned int>>> { struct unique_ptr<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> *[], std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> *>>> { struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> **, std::__bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> *>>> { void **__value_; struct __bucket_list_deallocator<std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> *>> { struct __compressed_pair<unsigned long, std::allocator<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> *>> { unsigned long long __value_; } __data_; } __value_; } __ptr_; } __bucket_list_; struct __compressed_pair<std::__hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *>, std::allocator<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *>>> { struct __hash_node_base<std::__hash_node<std::__hash_value_type<int, unsigned int>, void *> *> { void *__next_; } __value_; } __p1_; struct __compressed_pair<unsigned long, std::__unordered_map_hasher<int, std::__hash_value_type<int, unsigned int>, std::hash<int>, std::equal_to<int>>> { unsigned long long __value_; } __p2_; struct __compressed_pair<float, std::__unordered_map_equal<int, std::__hash_value_type<int, unsigned int>, std::equal_to<int>, std::hash<int>>> { float __value_; } __p3_; } __table_; } _spriteIndexByRequestID; NSIndexSet *_loadedSpriteIndexes; struct { struct { unsigned int x0; } x0; int x1; unsigned char x2; unsigned char x3; unsigned short x4; void *x5; unsigned int x6; void *x7; unsigned int x8; unsigned int x9; unsigned char x10; } *_streamInfoBySpriteIndex; unsigned long long _streamInfoBySpriteIndexCount; unsigned long long _streamInfoBySpriteIndexCapacity; _Atomic unsigned char _isPerformingUpdateFromRequestQueue; unsigned long long _requestQueue_pendingSetNeedsUpdate; id<PXGMutableSpriteTexture> _emptyTexture; NSMutableSet *_placeholderTextures; NSArray *_trackedComponents; } @property (retain) NSArray *textureAtlasManagers; @property (readonly, nonatomic) long long streamCount; @property (weak, nonatomic) id<PXGTextureManagerDelegate> delegate; @property (readonly, nonatomic) PXGEntityManager *entityManager; @property (readonly, nonatomic) NSObject<OS_dispatch_queue> *layoutQueue; @property (copy, nonatomic) NSArray *textureConverters; @property (retain, nonatomic) PXGTextureManagerPreheatingStrategy *preheatingStrategy; @property (retain, nonatomic) PXGViewEnvironment *viewEnvironment; @property (nonatomic) BOOL lowMemoryMode; @property (nonatomic) BOOL allowLargerImagesDuringScrollingInLowMemoryMode; @property (nonatomic) BOOL preferBGRA; @property (nonatomic) BOOL preferMipmaps; @property (nonatomic) unsigned long long preferredColorSpaceName; @property (nonatomic) BOOL isInactive; @property (readonly, nonatomic) NSDictionary *texturesByPresentationType; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)releaseCachedResources; - (void)streamTexturesForSpritesInDataStore:(id)a0 presentationDataStore:(id)a1 changeDetails:(id)a2 layout:(id)a3 interactionState:(struct { long long x0; BOOL x1; BOOL x2; BOOL x3; unsigned long long x4; BOOL x5; BOOL x6; BOOL x7; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x8; })a4; - (void)_processPixelBuffer:(struct __CVBuffer { } *)a0 options:(struct { BOOL x0; float x1; BOOL x2; })a1 adjustment:(id)a2 fromTextureProvider:(id)a3 withTextureConverter:(id)a4 forRequestID:(int)a5 requestDetails:(struct { unsigned char x0; unsigned int x1; })a6 deliveryOrder:(unsigned int)a7; - (void)textureProvider:(id)a0 didProvideImageData:(id)a1 withSpecAtIndex:(long long)a2 size:(struct CGSize { double x0; double x1; })a3 bytesPerRow:(unsigned long long)a4 contentsRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a5 forRequestID:(int)a6; - (void)_registerTextureConverter:(id)a0 forPresentationType:(unsigned char)a1; - (void)dealloc; - (void)_requestQueue_scheduleUpdateIfAllowed; - (void)_processCGImage:(struct CGImage { } *)a0 options:(struct { BOOL x0; float x1; BOOL x2; })a1 adjustment:(id)a2 isDegraded:(BOOL)a3 fromTextureProvider:(id)a4 withTextureConverter:(id)a5 requestID:(int)a6 requestDetails:(struct { unsigned char x0; unsigned int x1; })a7 deliveryOrder:(unsigned int)a8; - (void)_configureTextureProvider:(id)a0; - (void)_configureTextureConverter:(id)a0; - (void)_enumerateTextureProviders:(id /* block */)a0; - (BOOL)_getRequestDetails:(out struct { unsigned char x0; unsigned int x1; } *)a0 forRequestID:(int)a1; - (void)_requestQueue_setNeedsUpdate; - (id)_storeTexture:(id)a0 forKey:(id)a1 replaceExisting:(BOOL)a2; - (void)textureProviderNeedsToRegisterToDisplayLinkUpdates:(id)a0; - (id)_existingTextureForPayload:(id)a0 presentationType:(unsigned char)a1; - (id)_createTextureForCGImage:(struct CGImage { } *)a0 requestID:(int)a1 requestDetails:(struct { unsigned char x0; unsigned int x1; })a2 processingOptions:(struct { BOOL x0; float x1; BOOL x2; })a3 fromTextureProvider:(id)a4 withTextureConverter:(id)a5; - (void)registerTextureProvider:(id)a0 forMediaKind:(unsigned char)a1; - (void)_resizeStorageIfNeededForSpriteCount:(long long)a0; - (id)_storeTexture:(id)a0 forPayload:(id)a1; - (id)_textureAtlasManagerForImageDataSpec:(struct { unsigned long long x0; struct __CFString *x1; unsigned short x2; unsigned short x3; })a0; - (void)_configureAllTextureConverters; - (void)_updatePreheatingStrategy; - (void)_configureAllTextureProviders; - (id).cxx_construct; - (id)initWithEntityManager:(id)a0 layoutQueue:(id)a1; - (void)_setNeedsUpdate; - (void)textureProvider:(id)a0 didProvideCGImage:(struct CGImage { } *)a1 options:(struct { BOOL x0; float x1; BOOL x2; })a2 adjustment:(id)a3 isDegraded:(BOOL)a4 forRequestID:(int)a5; - (void)textureProvider:(id)a0 didProvidePayload:(id)a1 forRequestID:(int)a2; - (id)_existingAdjustedTextureForSourceTexture:(id)a0 adjustment:(id)a1 wantsMipmaps:(BOOL)a2 presentationType:(unsigned char)a3; - (id)_createTextureForCVPixelBuffer:(struct __CVBuffer { } *)a0 requestID:(int)a1 requestDetails:(struct { unsigned char x0; unsigned int x1; })a2 processingOptions:(struct { BOOL x0; float x1; BOOL x2; })a3 fromTextureProvider:(id)a4 withTextureConverter:(id)a5; - (void)textureProviderNeedsToUnregisterFromDisplayLinkUpdates:(id)a0; - (struct CGImage { } *)textureSnapshotForSpriteIndex:(unsigned int)a0; - (void)simulateTextureLoad; - (void)_blockOnThumbnailsIfNeededWithGeometries:(struct { struct { double x0; double x1; double x2; } x0; } *)a0 visibleRect:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a1 interactionState:(struct { long long x0; BOOL x1; BOOL x2; BOOL x3; unsigned long long x4; BOOL x5; BOOL x6; BOOL x7; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x8; })a2 fences:(id)a3; - (void)_lookupLock_requestTexturesForSpritesInRange:(struct _PXGSpriteIndexRange { unsigned int x0; unsigned int x1; })a0 textureProvider:(id)a1 mediaKind:(unsigned char)a2 presentationType:(unsigned char)a3 isAppearing:(BOOL)a4 layout:(id)a5 leafSpriteIndexRange:(struct _PXGSpriteIndexRange { unsigned int x0; unsigned int x1; })a6 sprites:(struct { unsigned int x0; struct *x1; struct *x2; struct *x3; struct *x4; })a7 textureStreamInfos:(struct { struct { unsigned int x0; } x0; int x1; unsigned char x2; unsigned char x3; unsigned short x4; void *x5; unsigned int x6; void *x7; unsigned int x8; unsigned int x9; unsigned char x10; } *)a8 loadingStatus:(id)a9; - (BOOL)streamUpdatedTexturesForDisplayLinkIfNeeded:(id)a0; - (void)_applyAdjustment:(id)a0 withMipmaps:(BOOL)a1 toTexture:(id)a2 fromTextureProvider:(id)a3 withTextureConverter:(id)a4 forRequestID:(int)a5 deliveryOrder:(unsigned int)a6 requestDetails:(struct { unsigned char x0; unsigned int x1; })a7; - (void)textureProvider:(id)a0 didProvidePixelBuffer:(struct __CVBuffer { } *)a1 options:(struct { BOOL x0; float x1; BOOL x2; })a2 adjustment:(id)a3 forRequestID:(int)a4; - (id)_textureConverterForPresentationType:(unsigned char)a0 contentType:(unsigned long long)a1; - (void).cxx_destruct; - (void)_addTextureToTexturesInUse:(id)a0; - (void)textureProvider:(id)a0 didProvideFailureWithError:(id)a1 forRequestID:(int)a2; - (void)textureProvider:(id)a0 didProvideNothingForRequestID:(int)a1; - (void)_enumerateSpriteTextures:(id /* block */)a0; - (void)_removeAllTexturesForPresentationType:(unsigned char)a0; - (id)_existingTextureForCGImage:(struct CGImage { } *)a0 processingOptions:(struct { BOOL x0; float x1; BOOL x2; })a1 presentationType:(unsigned char)a2; - (void)_pruneTextures:(id)a0; - (id)_existingTextureForKey:(id)a0 presentationType:(unsigned char)a1; - (void)_streamTexturesForSpritesInDataStore:(id)a0 presentationDataStore:(id)a1 changeDetails:(id)a2 layout:(id)a3 interactionState:(struct { long long x0; BOOL x1; BOOL x2; BOOL x3; unsigned long long x4; BOOL x5; BOOL x6; BOOL x7; struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } x8; })a4 loadingStatus:(id)a5; - (void)_handleProvidedSpriteTexture:(id)a0 fromTextureProvider:(id)a1 requestID:(int)a2 deliveryOrder:(unsigned int)a3; - (id)_storeAdjustedTexture:(id)a0 forSourceTexture:(id)a1 adjustment:(id)a2 mipmaps:(BOOL)a3; - (BOOL)textureAtlasManagerShouldPruneUnusedTextures:(id)a0; - (void)_enumerateTextureConverters:(id /* block */)a0; - (id)_storeTexture:(id)a0 forKey:(id)a1; - (id)_existingTextureForPixelBuffer:(struct __CVBuffer { } *)a0 processingOptions:(struct { BOOL x0; float x1; BOOL x2; })a1 presentationType:(unsigned char)a2; - (long long)_processTextureProviderResults; @end