@protocol MTLDevice, MTLCommandBuffer, MTLLibrary, MTLCommandQueue, MTLPipelineLibrarySPI; @interface PTMetalContext : NSObject @property (retain, nonatomic) id device; @property (retain, nonatomic) id commandQueue; @property (retain, nonatomic) id library; @property (retain, nonatomic) id commandBuffer; @property (retain, nonatomic) id pipelineLibrary; @property (nonatomic) BOOL allowCommandbufferAllocation; - (void)commit; - (void)waitForIdle; - (void).cxx_destruct; - (id)copyWithZone:(struct _NSZone { } *)a0; - (id)functionWithName:(id)a0 withConstants:(id)a1; - (void)checkCurrentThreadEqualsCommandBufferThread; - (void)commitAndWaitUntilCompleted; - (void)commitAndWaitUntilScheduled; - (id)computePipelineStateFor:(id)a0 withConstants:(id)a1; - (id)initWithCommandQueue:(id)a0 bundleClass:(Class)a1; - (id)initWithDevice:(id)a0 bundleClass:(Class)a1; - (BOOL)isCommandBufferCommitted; @end