Move all Metal setup to the Renderer
This commit is contained in:
parent
e18a956875
commit
3ce38b4b8b
2 changed files with 23 additions and 23 deletions
|
@ -11,34 +11,24 @@ import MetalKit
|
|||
|
||||
class TerrainViewController: NSViewController {
|
||||
|
||||
var renderer: Renderer!
|
||||
let renderer = Renderer()
|
||||
|
||||
private var metalView: MTKView! {
|
||||
return view as? MTKView
|
||||
private var metalView: MTKView {
|
||||
return view as! MTKView
|
||||
}
|
||||
|
||||
override func loadView() {
|
||||
guard let device = MTLCreateSystemDefaultDevice() else {
|
||||
fatalError("Couldn't create system default Metal device")
|
||||
}
|
||||
let v = MTKView(frame: CGRect(), device: device)
|
||||
let v = MTKView()
|
||||
v.translatesAutoresizingMaskIntoConstraints = false
|
||||
v.widthAnchor.constraint(greaterThanOrEqualToConstant: 640).isActive = true
|
||||
v.heightAnchor.constraint(greaterThanOrEqualToConstant: 480).isActive = true
|
||||
view = v
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
renderer = Renderer()
|
||||
metalView.delegate = renderer
|
||||
}
|
||||
|
||||
override func viewWillAppear() {
|
||||
super.viewWillAppear()
|
||||
guard let device = metalView.device else {
|
||||
return
|
||||
}
|
||||
renderer.setupMetal(withDevice: device, pixelFormat: metalView.colorPixelFormat)
|
||||
metalView.delegate = renderer
|
||||
renderer.setupMetal(withView: metalView)
|
||||
renderer.prepareToRender()
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue