@class MTLRenderPassDescriptor, NSObject; @protocol OS_dispatch_group, MTLDevice, OS_dispatch_semaphore, MTLBuffer, MTLTexture, MTLCommandQueue, MTLRenderPipelineState; @interface CRMetalPolygonRectifier : NSObject { id _device; int _ioColorSpace; unsigned long long _pixelFormat; id _pipelineState; id _commandQueue; MTLRenderPassDescriptor *_renderPassDescriptor; struct CGSize { double width; double height; } _imageSize; struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _regionOfInterest; id _texture; NSObject *_textureCreationGroup; id _renderDestination; void /* unknown type, empty encoding */ _viewportSize; id _managedBlitTexture; NSObject *_renderDestinationSem; id _vertices; unsigned long long _numVertices; } - (void).cxx_destruct; - (void)_createRenderTargetWithSize:(struct CGSize { double x0; double x1; })a0; - (void)_createTextureForInputCRImage:(id)a0; - (void)_setSourceImage:(id)a0; - (id)imageByRectifyingPolygon:(id)a0 imageHeight:(unsigned long long)a1; - (id)initWithDevice:(id)a0 sourceImage:(id)a1; - (id)initWithDevice:(id)a0 sourceImage:(id)a1 regionOfInterest:(struct CGRect { struct CGPoint { double x0; double x1; } x0; struct CGSize { double x0; double x1; } x1; })a2; - (void)rectifyPolygonAsync:(id)a0 imageHeight:(unsigned long long)a1 completionHandler:(id /* block */)a2; @end