@class MTLRenderPassDescriptor, MTLTextureDescriptor, DYMTLCommonDebugFunctionPlayer, NSMutableArray; @protocol MTLCommandBuffer, MTLTexture, MTLBuffer, DYMTLStatefulParallelRenderCommandEncoder, MTLFunction, MTLRenderPipelineState, MTLLibrary, DYMTLStatefulRenderCommandEncoder; @interface DYMTLPixelHistoryDrawStatsSupport : NSObject { DYMTLCommonDebugFunctionPlayer *_player; id<MTLLibrary> _solidLibrary; id<MTLFunction> _solidCreationFragmentFunction; MTLTextureDescriptor *_stencilTextureDescriptor; NSMutableArray *_mockColorTextureDescriptors; MTLTextureDescriptor *_mockStencilTextureDescriptor; MTLTextureDescriptor *_mockDepthTextureDescriptor; id<MTLTexture> _stencilTexture; NSMutableArray *_mockColorTextures; id<MTLBuffer> _visibilityResultBuffer; MTLRenderPassDescriptor *_pixelHistoryRenderPassDescriptor; MTLRenderPassDescriptor *_pixelHistoryMockRenderPassDescriptor; MTLRenderPassDescriptor *_pixelHistoryVisibilityMockRenderPassDescriptor; id<MTLRenderPipelineState> _pixelHistorySolidRenderPipelineState; id<DYMTLStatefulRenderCommandEncoder> _savedVertexFragmentState; unsigned long long _originalCommandEncoderId; id<MTLCommandBuffer> _originalCommandBuffer; id<DYMTLStatefulRenderCommandEncoder> _originalEncoder; id<DYMTLStatefulParallelRenderCommandEncoder> _originalParallelEncoder; BOOL _supports_tessellation; } @property (retain, nonatomic) id<MTLTexture> mockStencilTexture; @property (retain, nonatomic) id<MTLTexture> mockDepthTexture; - (void).cxx_destruct; - (BOOL)_prepareWithEncoder:(id)a0 parallelEncoder:(id)a1 pipelineState:(id)a2 renderPassDescriptor:(struct DYMTLRenderPassDescriptor { unsigned long long x0; unsigned long long x1; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x2[8]; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x3; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; unsigned long long x11; unsigned long long x12; struct DYMTLSamplePosition { float x0; float x1; } x13[8]; unsigned long long x14; BOOL x15; BOOL x16; BOOL x17; } *)a3; - (BOOL)_updateTextureDescriptor:(id)a0 usingEncoder:(id)a1 renderPassDescriptor:(struct DYMTLRenderPassDescriptor { unsigned long long x0; unsigned long long x1; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x2[8]; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x3; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; unsigned long long x11; unsigned long long x12; struct DYMTLSamplePosition { float x0; float x1; } x13[8]; unsigned long long x14; BOOL x15; BOOL x16; BOOL x17; } *)a2; - (void)collectPixelHistoryStencilDrawStatsAtX:(unsigned long long)a0 y:(unsigned long long)a1 completion:(id /* block */)a2; - (void)collectPixelHistoryVisibilityDrawStatsAtCompletion:(id /* block */)a0; - (BOOL)createNumFragmentPassesRenderCommandEncoderInCommandBuffer:(id)a0 originalRenderPassDescriptor:(id)a1 originalPipeline:(id)a2; - (BOOL)createNumTotalRenderCommandEncoderInCommandBuffer:(id)a0 originalPipeline:(id)a1; - (BOOL)createNumVisibleRenderCommandEncoderInCommandBuffer:(id)a0 originalRenderPassDescriptor:(id)a1 originalPipeline:(id)a2 depthStencilDescriptor:(id)a3 mockDepthStencilTexture:(id)a4 visibilityResultMode:(unsigned long long)a5 atX:(unsigned long long)a6 y:(unsigned long long)a7; - (BOOL)createNumVisibleRenderCommandEncoderInCommandBuffer:(id)a0 originalRenderPassDescriptor:(id)a1 originalPipeline:(id)a2 depthStencilDescriptor:(id)a3 mockDepthTexture:(id)a4 visibilityResultMode:(unsigned long long)a5 atX:(unsigned long long)a6 y:(unsigned long long)a7; - (BOOL)createNumVisibleRenderCommandEncoderInCommandBuffer:(id)a0 originalRenderPassDescriptor:(id)a1 originalPipeline:(id)a2 depthStencilDescriptor:(id)a3 mockStencilTexture:(id)a4 visibilityResultMode:(unsigned long long)a5 atX:(unsigned long long)a6 y:(unsigned long long)a7; - (id)getSingleUseMockColorTexture:(unsigned long long)a0 pixelFormat:(unsigned long long)a1 width:(unsigned long long)a2 height:(unsigned long long)a3; - (id)getSingleUseMockDepthTextureWithPixelFormat:(unsigned long long)a0 width:(unsigned long long)a1 height:(unsigned long long)a2; - (id)getSingleUseMockStencilTextureWithPixelFormat:(unsigned long long)a0 width:(unsigned long long)a1 height:(unsigned long long)a2; - (id)initWithDebugFunctionPlayer:(id)a0; - (BOOL)prepareWithCommandEncoderId:(unsigned long long)a0 parallelEncoderId:(unsigned long long)a1 pipelineId:(unsigned long long)a2 renderPassDescriptor:(struct DYMTLRenderPassDescriptor { unsigned long long x0; unsigned long long x1; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x2[8]; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x3; struct DYMTLRenderPassAttachmentDescriptor { unsigned long long x0; unsigned long long x1; unsigned long long x2; unsigned long long x3; unsigned long long x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; struct DYMTLClearValue { union { struct { double x0; double x1; double x2; double x3; } x0; double x1[4]; } x0; } x11; BOOL x12; unsigned long long x13; unsigned long long x14; } x4; unsigned long long x5; unsigned long long x6; unsigned long long x7; unsigned long long x8; unsigned long long x9; unsigned long long x10; unsigned long long x11; unsigned long long x12; struct DYMTLSamplePosition { float x0; float x1; } x13[8]; unsigned long long x14; BOOL x15; BOOL x16; BOOL x17; } *)a3; @end