luxlabs header browser preview


@class VNMetalContext;
@protocol MTLBuffer, MTLTexture, MTLCommandQueue, MTLComputePipelineState;

@interface LKTOpticalFlowGPU : LKTOpticalFlow {
    VNMetalContext *_mtlContext;
    id<MTLCommandQueue> _commandQueue;
    id<MTLComputePipelineState> _computePipelines[9];
    unsigned long long _maxThreadExecutionWidth;
    struct CGSize { double width; double height; } _pyramid_size[10];
    id<MTLTexture> _I_tex[2][10];
    id<MTLTexture> _I_u32_alias_tex[2][10];
    struct __CVBuffer { } *_G0_pxbuf;
    struct __CVBuffer { } *_G1_pxbuf;
    id<MTLTexture> _G0_tex[10];
    id<MTLTexture> _G1_tex[10];
    struct __CVBuffer { } *_C0_pxbuf;
    struct __CVBuffer { } *_C1_pxbuf;
    id<MTLTexture> _C0_tex[10];
    id<MTLTexture> _C1_tex[10];
    id<MTLBuffer> _Adiagb_buf[2];
    id<MTLBuffer> _Ixy_buf[2];
    struct __CVBuffer { } *_w_pxbuf;
    id<MTLTexture> _w_tex[10];
    struct __CVBuffer *_uv_pxbuf[2];
    id<MTLTexture> _uv_tex[2][10];
    id<MTLTexture> _uv_u32_alias_tex[2][10];
    int _current_frame_index;
    id<MTLTexture> _uv_tex_user_ref;
}

- (void)waitUntilCompleted;
- (void)dealloc;
- (void).cxx_destruct;
- (void)_computeFeaturesDerivativesWithCommandBuffer:(id)a0 in_tex:(id)a1 out_tex:(id)a2;
- (void)_computeFeaturesWithCommandBuffer:(id)a0 in_tex:(id)a1 out_tex:(id)a2;
- (void)_computeOpticalFlow;
- (BOOL)_createImagePyramidWithCommandBuffer:(id)a0 in_pixelbuf:(struct __CVBuffer { } *)a1 I_idx:(int)a2 error:(id *)a3;
- (void)_doNLRegularizationWithCommandBuffer:(id)a0 in_uv_tex:(id)a1 join_tex:(id)a2 w_tex:(id)a3 out_uv_tex:(id)a4;
- (void)_doSolverWithCommandBuffer:(id)a0 scale:(SEL)a1 scale_xy_inv:(id)a2 coeff:(int)a3 in_uv_tex:(id)a4 out_uv_tex:(id)a5 out_w_tex:(id)a6;
- (void)_downscale2XWithCommandBuffer:(id)a0 in_u32_alias_tex:(id)a1 out_u32_alias_tex:(id)a2;
- (void)_initMemory:(int)a0 height:(int)a1 numScales:(int)a2;
- (BOOL)_setupBufferAndReturnError:(id *)a0;
- (BOOL)_setupPipelinesReturnError:(id *)a0;
- (void)_zeroFlowWithCommandBuffer:(id)a0 uv_tex:(id)a1;
- (BOOL)estimateFlowFromReference:(struct __CVBuffer { } *)a0 target:(struct __CVBuffer { } *)a1 error:(id *)a2;
- (BOOL)estimateFlowStream:(struct __CVBuffer { } *)a0 error:(id *)a1;
- (id)initWithMetalContext:(id)a0 width:(int)a1 height:(int)a2 numScales:(int)a3 error:(id *)a4;
- (BOOL)setOutputUV:(struct __CVBuffer { } *)a0 error:(id *)a1;

@end