luxlabs header browser preview


@class PKMetalPencilShadowRenderer, NSArray, PKMetalResourceHandler, PKMetalRenderState, MTKTextureLoader, PKStroke, PKMetalFramebuffer, PKLinedPaper;
@protocol MTLDevice, MTLTexture, MTLBuffer, MTLCommandQueueSPI;

@interface PKMetalRenderer : NSObject {
    PKMetalRenderState *_currentRenderState;
    unsigned long long _currentCacheSize;
    id<MTLDevice> _device;
    id<MTLCommandQueueSPI> _commandQueue;
    struct RendererFramebuffer { PKMetalFramebuffer *framebuffer; BOOL isNonPurgeable; BOOL mustBeCleared; } _originalBackFramebuffer;
    struct RendererFramebuffer { PKMetalFramebuffer *framebuffer; BOOL isNonPurgeable; BOOL mustBeCleared; } _sixChannelMultiplyFramebuffer;
    BOOL _shouldClearOriginalBackFramebuffer;
    struct { double red; double green; double blue; double alpha; } _originalBackClearColor;
    struct RendererFramebuffer { PKMetalFramebuffer *framebuffer; BOOL isNonPurgeable; BOOL mustBeCleared; } _paintFramebuffer[2];
    struct RendererFramebuffer { PKMetalFramebuffer *framebuffer; BOOL isNonPurgeable; BOOL mustBeCleared; } _paintAccumulationFramebuffer[2];
    PKMetalFramebuffer *_paintFramebufferMask;
    PKMetalFramebuffer *_maskMSAAFramebuffer;
    PKMetalResourceHandler *_resourceHandler;
    PKMetalFramebuffer *_dummyPaintFramebuffer[2];
    PKMetalFramebuffer *_dummyColorFramebuffer;
    struct CGSize { double width; double height; } _drawingPixelSize;
    struct CGColor { } *_backgroundColor;
    struct CGSize { double width; double height; } _actualSize;
    double _fromStrokeSpaceScale;
    struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } _strokeTransform;
    struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _viewScissor;
    BOOL _lastPointForEraserIsValid;
    struct _PKStrokePoint { double timestamp; struct CGPoint { double x; double y; } location; double radius; double aspectRatio; double edgeWidth; double force; double azimuth; double altitude; double opacity; double radius2; } _lastPointForEraser;
    id<MTLTexture> _paperTexture;
    struct CGSize { double width; double height; } _paperTextureSize;
    unsigned long long _originalBackPixelFormat;
    unsigned long long _paintAndParticlePixelFormat;
    BOOL _sixChannelCanvasHasContentTexture;
    struct vector<PKMetalParticleStrokePoint, std::allocator<PKMetalParticleStrokePoint>> { struct PKMetalParticleStrokePoint *__begin_; struct PKMetalParticleStrokePoint *__end_; struct __compressed_pair<PKMetalParticleStrokePoint *, std::allocator<PKMetalParticleStrokePoint>> { struct PKMetalParticleStrokePoint *__value_; } __end_cap_; } _particleStrokePointBuffer;
    struct vector<PKMetalPaintStrokePoint, std::allocator<PKMetalPaintStrokePoint>> { struct PKMetalPaintStrokePoint *__begin_; struct PKMetalPaintStrokePoint *__end_; struct __compressed_pair<PKMetalPaintStrokePoint *, std::allocator<PKMetalPaintStrokePoint>> { struct PKMetalPaintStrokePoint *__value_; } __end_cap_; } _paintStrokePointBuffer;
    struct vector<PKMetalLiveStrokePaintStrokePoint, std::allocator<PKMetalLiveStrokePaintStrokePoint>> { struct PKMetalLiveStrokePaintStrokePoint *__begin_; struct PKMetalLiveStrokePaintStrokePoint *__end_; struct __compressed_pair<PKMetalLiveStrokePaintStrokePoint *, std::allocator<PKMetalLiveStrokePaintStrokePoint>> { struct PKMetalLiveStrokePaintStrokePoint *__value_; } __end_cap_; } _liveStrokeStrokePointBuffer;
    struct shared_ptr<std::vector<(anonymous namespace)::StrokeVertex>> { void *__ptr_; struct __shared_weak_count *__cntrl_; } _sharedStrokeVertexBuffer;
    struct vector<(anonymous namespace)::AnimatingStroke, std::allocator<(anonymous namespace)::AnimatingStroke>> { struct AnimatingStroke *__begin_; struct AnimatingStroke *__end_; struct __compressed_pair<(anonymous namespace)::AnimatingStroke *, std::allocator<(anonymous namespace)::AnimatingStroke>> { struct AnimatingStroke *__value_; } __end_cap_; } _animatingStrokes;
    PKStroke *_activeCombinedStroke;
    NSArray *_activeCombinedAlternativeStrokes;
    struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _paintFramebufferDirtyRect;
    id<MTLBuffer> _randomNumberBuffer;
    unsigned long long _renderMaskMSAASampleCount;
    BOOL _needRestartWorkaroundForOldIntelDrivers;
    BOOL _useComputeRenderCaches;
    BOOL _sixChannelBlending;
    struct CGRect { struct CGPoint { double x; double y; } origin; struct CGSize { double width; double height; } size; } _drawableDirtyRect;
    MTKTextureLoader *_textureLoader;
    struct vector<_PKStrokePoint, std::allocator<_PKStrokePoint>> { struct _PKStrokePoint *__begin_; struct _PKStrokePoint *__end_; struct __compressed_pair<_PKStrokePoint *, std::allocator<_PKStrokePoint>> { struct _PKStrokePoint *__value_; } __end_cap_; } previewStrokePoints;
    struct PKShaderPipelineConfig { unsigned char framebufferPixelFormats[6]; } _defaultNonSixChannelPipelineConfig;
    struct PKShaderPipelineConfig { unsigned char framebufferPixelFormats[6]; } _defaultSixChannelPipelineConfig;
    PKMetalPencilShadowRenderer *_pencilShadowRenderer;
    struct _PKStrokePoint { double timestamp; struct CGPoint { double x; double y; } location; double radius; double aspectRatio; double edgeWidth; double force; double azimuth; double altitude; double opacity; double radius2; } _latestPencilShadowPoint;
    double _latestPencilShadowPointTimestamp;
    BOOL _solidColorBackboard;
    BOOL _oneRenderPassForLiveRendering;
    BOOL _fadeOutStrokesMode;
    BOOL _liveStrokeMode;
    BOOL _edgeMask;
    BOOL _invertColors;
    BOOL _drawBitmapEraserMask;
    BOOL _combineStrokesAllowed;
    unsigned long long _pixelFormat;
    PKLinedPaper *_linedPaper;
    struct CGColor { } *_liveRenderingOverrideColor;
    double _contentZoomScale;
    double _backboardPaperMultiply;
    double _inputScale;
    double _eraserIndicatorAlpha;
    double _previewStrokeAlpha;
    double _pencilShadowElevation;
    double _pencilShadowAlpha;
    double _previewStrokeMaxPoints;
    double _liveStrokeElapsedTime;
    struct CGSize { double width; double height; } _liveStrokeMaxSize;
    struct CGAffineTransform { double a; double b; double c; double d; double tx; double ty; } _paperTransform;
}

- (void)dealloc;
- (id).cxx_construct;
- (void).cxx_destruct;

@end