MetalByTutorials/04-3d-transforms/starter/3DTransforms.playground/Contents.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