@class PKMetalPencilShadowRenderer, NSArray, PKMetalResourceHandler, PKMetalRenderState, MTKTextureLoader, PKStroke, PKMetalFramebuffer, PKLinedPaper; @protocol MTLDevice, MTLTexture, MTLBuffer, MTLCommandQueueSPI; @interface PKMetalRenderer : NSObject { PKMetalRenderState *_currentRenderState; unsigned long long _currentCacheSize; id _device; id _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 _paperTexture; struct CGSize { double width; double height; } _paperTextureSize; unsigned long long _originalBackPixelFormat; unsigned long long _paintAndParticlePixelFormat; BOOL _sixChannelCanvasHasContentTexture; struct vector> { struct PKMetalParticleStrokePoint *__begin_; struct PKMetalParticleStrokePoint *__end_; struct __compressed_pair> { struct PKMetalParticleStrokePoint *__value_; } __end_cap_; } _particleStrokePointBuffer; struct vector> { struct PKMetalPaintStrokePoint *__begin_; struct PKMetalPaintStrokePoint *__end_; struct __compressed_pair> { struct PKMetalPaintStrokePoint *__value_; } __end_cap_; } _paintStrokePointBuffer; struct vector> { struct PKMetalLiveStrokePaintStrokePoint *__begin_; struct PKMetalLiveStrokePaintStrokePoint *__end_; struct __compressed_pair> { struct PKMetalLiveStrokePaintStrokePoint *__value_; } __end_cap_; } _liveStrokeStrokePointBuffer; struct shared_ptr> { 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 _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