terrain/Terrain/TerrainViewController.swift

46 lines
1.2 KiB
Swift
Raw Normal View History

//
// TerrainViewController.swift
// Terrain
//
// Created by Eryn Wells on 11/3/18.
// Copyright © 2018 Eryn Wells. All rights reserved.
//
import Cocoa
import MetalKit
class TerrainViewController: NSViewController {
2018-11-03 10:50:43 -04:00
var renderer: Renderer!
private var metalView: MTKView! {
return view as? MTKView
}
override func loadView() {
guard let device = MTLCreateSystemDefaultDevice() else {
2018-11-03 10:50:43 -04:00
fatalError("Couldn't create system default Metal device")
}
let v = MTKView(frame: CGRect(), device: device)
v.translatesAutoresizingMaskIntoConstraints = false
v.widthAnchor.constraint(greaterThanOrEqualToConstant: 640).isActive = true
v.heightAnchor.constraint(greaterThanOrEqualToConstant: 480).isActive = true
view = v
}
2018-11-03 10:50:43 -04:00
override func viewDidLoad() {
renderer = Renderer()
metalView.delegate = renderer
}
override func viewWillAppear() {
super.viewWillAppear()
2018-11-03 10:50:43 -04:00
guard let device = metalView.device else {
return
2018-11-03 10:50:43 -04:00
}
renderer.setupMetal(withDevice: device, pixelFormat: metalView.colorPixelFormat)
renderer.prepareToRender()
2018-11-03 10:50:43 -04:00
}
}