luxlabs header browser preview


@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