@class NSString, PXScrollViewController, PXGColorGradingTexturesStore, PXGSpriteDataStore, PXGMetalRenderTextureStore, PXGMetalOffscreenTexturesStore, NSMutableArray, PXGEntityManager, NSObject, PXGMetalTextureConverter; @protocol MTLDevice, PXGMetalRendererTestingDelegate, OS_dispatch_queue, PXGTextureConverter, PXGMetalRenderDestination, MTLDepthStencilState, MTLTexture, OS_dispatch_semaphore, MTLLibrary, MTLBuffer, PXGRendererDelegate, MTLSamplerState, MTLCommandQueue; @interface PXGMetalRenderer : NSObject <PXGMetalTextureConverterDelegate, PXGMetalRenderDestinationDelegate, PXGEffectComponentDelegate, PXGRenderer> { struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _metalLock; id<MTLDevice> _device; id<MTLLibrary> _library; id<MTLCommandQueue> _commandQueue; id<MTLBuffer> _squareGeometryBuffer; id<MTLBuffer> _yCbCrMatricesBuffer; double _lastOffscreenRenderTime; double _lastOffscreenEffectRenderTime; id<MTLTexture> _offscreenTexture; id<MTLTexture> _offscreenEffectTexture; BOOL _isCreatingOffscreenTexture; BOOL _isCreatingOffscreenEffectTexture; NSObject<OS_dispatch_queue> *_workQueue; id<MTLSamplerState> _mirrorRepeatSampler; id<MTLSamplerState> _clampToZeroSampler; id<MTLDepthStencilState> _depthStencil; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _pipelinesLock; struct { int x0; unsigned long long x1; id x2; id x3; id x4; BOOL x5; } *_pipelines; long long _pipelinesCount; long long _pipelinesCapacity; NSObject<OS_dispatch_queue> *_compilationQueue; NSObject<OS_dispatch_semaphore> *_inFlightSemaphore; NSMutableArray *_reusableRenderStates; PXGSpriteDataStore *_spriteRenderDataStore; long long _frameId; double _lastTime; PXGMetalRenderTextureStore *_opaqueTextures; PXGMetalRenderTextureStore *_translucentTextures; PXGMetalTextureConverter *_textureConverter; BOOL _didPerformFirstRender; BOOL _renderDestinationWantsCompleteRenderingNotification; BOOL _renderDestinationIsPresentable; PXGColorGradingTexturesStore *_colorGradingTexturesStore; PXGMetalOffscreenTexturesStore *_offscreenTextureCache; } @property (class, readonly, nonatomic) NSString *mainShaderSource; @property (class, readonly) float maxZPosition; @property (readonly, nonatomic) struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; } visibleRectInRenderCoordinates; @property (readonly, nonatomic) struct { } camera; @property (nonatomic) BOOL isInvertColorsEnabled; @property (nonatomic) double offscreenEffectScale; @property (readonly, nonatomic) NSObject<OS_dispatch_queue> *layoutQueue; @property (readonly, nonatomic) id<PXGMetalRenderDestination> renderDestination; @property (weak, nonatomic) id<PXGMetalRendererTestingDelegate> testingDelegate; @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; @property (weak, nonatomic) id<PXGRendererDelegate> delegate; @property (retain, nonatomic) PXGEntityManager *entityManager; @property (nonatomic) struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } visibleRect; @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 (nonatomic) struct PXGCameraConfiguration { struct { void /* unknown type, empty encoding */ columns[4]; } viewMatrix; struct { void /* unknown type, empty encoding */ columns[4]; } projectionMatrix; struct { void /* unknown type, empty encoding */ columns[4]; } billboardMatrix; void /* unknown type, empty encoding */ renderOrigin; } cameraConfiguration; @property (nonatomic) BOOL lowMemoryMode; @property (readonly, nonatomic) unsigned char presentationType; @property (readonly, nonatomic) id<PXGTextureConverter> textureConverter; @property (readonly, nonatomic) BOOL wantsToDriveRender; @property (readonly, nonatomic) BOOL wantsBGRATextures; @property (readonly, nonatomic) BOOL wantsMipmaps; @property (readonly, nonatomic) unsigned long long destinationColorSpaceName; @property (retain, nonatomic) PXScrollViewController *scrollViewController; @property (copy, nonatomic) id /* block */ test_renderSnapshotHandler; + (id)_loadAndPreprocessShaderSourceWithFilename:(id)a0 extension:(id)a1; - (void)releaseResources; - (void)_setupMetalIfNeeded; - (void)_pipelinesLock_resizePipelinesStorageIfNeeded; - (void)effectComponent:(id)a0 prepareForEffect:(id)a1; - (void)renderImmediately; - (void)setNeedsRender; - (id)startRecordingToDirectoryURL:(id)a0; - (void)dealloc; - (void)_setupSquareGeometryBuffer; - (void)renderSpritesWithTextures:(id)a0 dataStore:(id)a1 presentationDataStore:(id)a2 presentationMetadataStore:(id)a3 layout:(id)a4; - (void)_checkinRenderState:(id)a0; - (void)renderDestinationRequestRender:(id)a0; - (void)_setupConstantBuffers; - (void)updateWithChangeDetails:(id)a0; - (long long)_drawRenderTexture:(struct { id x0; id x1; struct _NSRange { unsigned long long x0; unsigned long long x1; } x2; float x3; int x4; unsigned char x5; BOOL x6; } *)a0 withCommandEncoder:(id)a1; - (void)_render:(id)a0 withCompletionCompletion:(id /* block */)a1; - (void)_configureCaptureSpriteTexture:(id)a0 renderState:(id)a1 withTexture:(id)a2 drawingScale:(double)a3; - (void)_preloadKernel:(id)a0; - (void)_populateEffectSprites:(id)a0 spriteRenderDataStore:(id)a1 presentationDataStore:(id)a2 metadataStore:(id)a3; - (void)_configureUniformGeometries:(struct { struct { void /* unknown type, empty encoding */ x0[4]; } x0; struct { void /* unknown type, empty encoding */ x0[4]; } x1; struct { void /* unknown type, empty encoding */ x0[4]; } x2; struct { void /* unknown type, empty encoding */ x0[4]; } x3; float x4; } *)a0 drawingScale:(double)a1; - (id)_checkoutRenderState; - (void)_clearPipelines; - (void)renderDestination:(id)a0 renderSizeWillChange:(struct CGSize { double x0; double x1; })a1; - (struct { int x0; unsigned long long x1; id x2; id x3; id x4; BOOL x5; })_pipelineForRenderTexture:(const struct { id x0; id x1; struct _NSRange { unsigned long long x0; unsigned long long x1; } x2; float x3; int x4; unsigned char x5; BOOL x6; } *)a0 waitForCompilation:(BOOL)a1; - (void)_prepare; - (void).cxx_destruct; - (void)metalTextureConverter:(id)a0 didCreateTexture:(id)a1 options:(struct { unsigned int x0; BOOL x1; })a2; - (long long)_drawSpritesWithRenderState:(id)a0 commandEncoder:(id)a1 passingTest:(id /* block */)a2; - (void)_parseSpriteTextures:(id)a0 willPerformOffscreenPass:(BOOL)a1 renderState:(id)a2; - (void)_preloadShader:(id)a0; - (id)initWithRenderDestination:(id)a0 layoutQueue:(id)a1; - (void)_setupYCbCrMatrices; - (id)_createPipelineStateForColorProgram:(id)a0 shader:(id)a1 shaderFlags:(int)a2 colorPixelFormat:(unsigned long long)a3 depthStencilPixelFormat:(unsigned long long)a4 isOpaque:(BOOL)a5; - (struct { int x0; unsigned long long x1; id x2; id x3; id x4; BOOL x5; })_handleCompiledRenderPipelineState:(id)a0 forColorProgram:(id)a1 shader:(id)a2 shaderFlags:(int)a3 colorPixelFormat:(unsigned long long)a4 pipelineIndex:(long long)a5 isOpaque:(BOOL)a6; - (void)renderDestinationDeviceDidChange:(id)a0; @end