luxlabs header browser preview


@class MPSImageGuidedFilter;
@protocol MTLDevice, MTLLibrary, MTLTexture, MTLComputePipelineState;

@interface ARDualGuidedFilter : NSObject {
    id<MTLDevice> _device;
    MPSImageGuidedFilter *_guidedFilter;
    id<MTLLibrary> _mattingLibrary;
    id<MTLComputePipelineState> _boxblurVPSO;
    id<MTLComputePipelineState> _boxblurHPSO;
    id<MTLComputePipelineState> _erodeVPSO;
    id<MTLComputePipelineState> _erodeHPSO;
    id<MTLComputePipelineState> _invertPSO;
    id<MTLComputePipelineState> _smoothCoeficients;
    id<MTLComputePipelineState> _getConfidence;
    id<MTLComputePipelineState> _combineFGBGStencil;
    id<MTLTexture> _overlayCoefficentsNonBlurredBG;
    id<MTLTexture> _overlayCoefficentsNonBlurred;
    id<MTLTexture> _overlayStencilDownsampled;
    id<MTLTexture> _overlayStencilDownsampledBG;
    id<MTLTexture> _smoothedCoefficientsTextureFG;
    id<MTLTexture> _smoothedCoefficientsTextureBG;
    id<MTLTexture> _erodeIntermediate;
    id<MTLTexture> _blurIntermediate;
    id<MTLTexture> _confidenceMap;
    id<MTLTexture> _combinedFGBG;
    BOOL _usingSmoothing;
    BOOL _useSoftGuidedFilter;
    BOOL _enableDoubleMLResolutionMatting;
    unsigned int _width;
    unsigned int _height;
}

@property (nonatomic) unsigned long long uncertaintyRadius;
@property (nonatomic) unsigned long long erosionRadius;
@property (nonatomic) double epsilon;

- (void).cxx_destruct;
- (id)encodeBoxBlurToCommandBuffer:(id)a0 input:(id)a1 intermediate:(id)a2 output:(id)a3;
- (void)encodeDualCoefficients:(id)a0 guide:(id)a1 stencil:(id)a2 coefficientsTextureFG:(id)a3 coefficientsTextureBG:(id)a4;
- (id)initWithDevice:(id)a0 useSmoothing:(BOOL)a1;
- (void)setupBuffersWithWidth:(unsigned int)a0 andHeight:(unsigned int)a1;

@end