luxlabs header browser preview


@class NSObject, AVTRenderer, NSString, JFXAnimojiEffect, AVTAvatarStore, NSLock;
@protocol JFXAnimojiTrackingLossDelegate, OS_dispatch_queue;

@interface JFXAnimojiEffectRenderer : NSObject <PVCompositeDelegate, JFXSupportProtocol> {
    NSObject<OS_dispatch_queue> *_puppetLoadingQ;
    NSObject<OS_dispatch_queue> *_puppetRenderingQ;
    BOOL _logged_render_failed;
}

@property (retain, nonatomic) AVTRenderer *renderer;
@property (retain, nonatomic) AVTAvatarStore *avatarStore;
@property (retain, nonatomic) JFXAnimojiEffect *currentPuppet;
@property (readonly, nonatomic) NSLock *renderPassLock;
@property (retain, nonatomic) NSLock *rendererLock;
@property (nonatomic) struct __CVMetalTextureCache { } *metalTextureCache;
@property (nonatomic) struct CGSize { double width; double height; } workingSize;
@property (nonatomic) struct __CVPixelBufferPool { } *inputBufferPool;
@property (nonatomic) double systemTimeForAVTRenderer;
@property (nonatomic) struct __CVMetalTextureCache { } *metalDepthTextureCache;
@property (readonly, nonatomic) BOOL constrainHeadPose;
@property (nonatomic) BOOL asynchronouslyLoadNewPuppets;
@property (weak, nonatomic) id<JFXAnimojiTrackingLossDelegate> trackingLossDelegate;
@property (nonatomic) BOOL allowAntialiasing;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

+ (BOOL)isSupported;
+ (struct CGSize { double x0; double x1; })animojiBufferSizeWithImageSize:(struct CGSize { double x0; double x1; })a0 interfaceOrientation:(long long)a1;
+ (void)setupAVTMetalShaderCache;

- (void)clear;
- (id)init;
- (void)dealloc;
- (void)flush;
- (void).cxx_destruct;
- (id)renderWithInputs:(id)a0 time:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 userContext:(id)a2 compositeContext:(id)a3;
- (double)JFX_focalLengthForFrame:(id)a0 workingSize:(struct CGSize { double x0; double x1; })a1 interfaceOrientation:(long long)a2;
- (id)JFX_blendShapesForRenderer:(id)a0;
- (struct __CVBuffer { } *)JFX_depthDataToTexture:(id)a0;
- (BOOL)JFX_getRenderer:(id *)a0 forAnimojiEffect:(id)a1 primeFrame:(id)a2 captureOrientation:(long long)a3 interfaceOrientation:(long long)a4 backgroundColor:(id)a5;
- (BOOL)JFX_inputBufferIsPortraitAspect:(struct CGSize { double x0; double x1; })a0;
- (void)asyncLoadNewPuppet:(id)a0 currentPuppet:(id)a1 captureOrientation:(long long)a2 interfaceOrientation:(long long)a3 primeFrame:(id)a4 backgroundColor:(id)a5;
- (void)clearRenderer_renderLocked;
- (id)createNewRendererForPuppet:(id)a0;
- (void)createTextureCaches;
- (BOOL)currentPuppetIsEqualTo:(id)a0;
- (id)initWithConstrainedHeadPose:(BOOL)a0;
- (struct __CVBuffer { } *)newPixelBufferRenderedFromARFrame:(id)a0 withEffect:(id)a1 depthData:(id)a2 captureOrientation:(long long)a3 interfaceOrientation:(long long)a4 preRecordedBlendShapes:(id)a5 backgroundColor:(id)a6;
- (id)preRecordedBlendShapesForFrame:(id)a0 captureOrientation:(long long)a1 interfaceOrientation:(long long)a2 backgroundColor:(id)a3;
- (void)renderAnimoji:(id)a0 withPresentationTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a1 frame:(id)a2 depthData:(id)a3 backgroundColor:(id)a4 completionBlock:(id /* block */)a5;
- (void)renderFrame:(id)a0 withEffect:(id)a1 depthData:(id)a2 captureOrientation:(long long)a3 interfaceOrientation:(long long)a4 preRecordedBlendShapes:(id)a5 backgroundColor:(id)a6 completionBlock:(id /* block */)a7;
- (id)renderWithTime:(struct { long long x0; int x1; unsigned int x2; long long x3; })a0 metadata:(id)a1;
- (BOOL)setupHeadPoseAndBlendShapesForFrame:(id)a0 forRenderer:(id)a1 captureOrientation:(long long)a2 interfaceOrientation:(long long)a3 isInitialSetup:(BOOL)a4;
- (void)setupInputBufferPoolForSize:(struct CGSize { double x0; double x1; })a0;
- (BOOL)setupPoseForPreRecordedBlendShapes:(id)a0 forRenderer:(id)a1 captureOrientation:(long long)a2 interfaceOrientation:(long long)a3 withFrame:(id)a4;
- (void)updateCurrentRenderer:(id)a0 withPuppet:(id)a1;

@end