luxlabs header browser preview


@class NSObject;
@protocol OS_dispatch_group, MTLCommandBuffer, MTLDevice, MTLTexture, MTLComputePipelineState, MTLBuffer;

@interface CIBilateralSolverGPU : NSObject {
    id<MTLCommandBuffer> _commandBuffer;
    id<MTLDevice> _metalDevice;
    id<MTLComputePipelineState> _computePipelines[9];
    NSObject<OS_dispatch_group> *_computePipelinesGroup;
    struct { struct { unsigned long long width; unsigned long long height; unsigned long long depth; } dispatchThreadgroups; struct { unsigned long long width; unsigned long long height; unsigned long long depth; } threadsPerThreadgroup; } _threadGroupInfo;
    struct { float lambda; unsigned int N; unsigned short dims; float sigma_s; float sigma_r_luma; } _params;
    struct { void /* unknown type, empty encoding */ reference; void /* unknown type, empty encoding */ confidence; void /* unknown type, empty encoding */ disparity; void /* unknown type, empty encoding */ output; } _offsets;
    int _width;
    int _height;
    unsigned long long _maxVertices;
    id<MTLBuffer> _gridHashBuffer;
    id<MTLBuffer> _gridBlurBuffer;
    id<MTLBuffer> _gridCoordIndicesBuffer;
    id<MTLBuffer> _gridCoordTableBuffer;
    id<MTLTexture> _gridHashMatrix;
    id<MTLBuffer> _gridInterpIndicesBuffer;
    id<MTLBuffer> _gridInterpTableBuffer;
    id<MTLBuffer> _gridInterpPadBuffer;
    id<MTLBuffer> _A_buf;
    id<MTLBuffer> _b_buf;
    id<MTLBuffer> _s_buf;
    id<MTLBuffer> _q_buf;
    id<MTLBuffer> _Dn_buf[2];
    id<MTLBuffer> _x_buf[2];
    id<MTLBuffer> _r_buf[2];
    id<MTLBuffer> _d_buf[2];
    int _idxDnBufIn;
    int _idxSwapBufIn;
}

@property (nonatomic) BOOL useTrilinearInterpolation;

- (void).cxx_destruct;
- (int)_doBistochastizeWithCommandBuffer:(id)a0 t_tex:(id)a1 c_tex:(id)a2 lambda:(float)a3 nIterations:(int)a4;
- (int)_doPCGWithCommandBuffer:(id)a0 nIterations:(int)a1;
- (int)_doSliceTrilinearWithCommandBuffer:(id)a0 ref_tex:(id)a1 o_tex:(id)a2;
- (int)_doSliceWithCommandBuffer:(id)a0 o_tex:(id)a1;
- (void)_prepareResources:(id)a0;
- (void)_setupBuffer;
- (void)_setupMetal;
- (void)_setupPipelineCache;
- (void)_setupPipelinesAsync:(id /* block */)a0;
- (int)doSolveWithBilateralGridhash:(id)a0 reference:(id)a1 disparity:(id)a2 confidence:(id)a3 output:(id)a4 lambda:(float)a5 maxIterations:(int)a6 offsets:(struct { } *)a7;
- (id)initWithWidth:(int)a0 height:(int)a1 maxVertices:(unsigned long long)a2 commandBuffer:(id)a3;

@end