import MetalKit import PlaygroundSupport // set up View device = MTLCreateSystemDefaultDevice()! let frame = NSRect(x: 0, y: 0, width: 600, height: 600) let view = MTKView(frame: frame, device: device) view.clearColor = MTLClearColor(red: 1, green: 1, blue: 0.8, alpha: 1) view.device = device // Metal set up is done in Utility.swift // set up render pass guard let drawable = view.currentDrawable, let descriptor = view.currentRenderPassDescriptor, let commandBuffer = commandQueue.makeCommandBuffer(), let renderEncoder = commandBuffer.makeRenderCommandEncoder(descriptor: descriptor) else { fatalError() } renderEncoder.setRenderPipelineState(pipelineState) // drawing code here renderEncoder.endEncoding() commandBuffer.present(drawable) commandBuffer.commit() PlaygroundPage.current.liveView = view