30 lines
822 B
Swift
30 lines
822 B
Swift
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
|