terrain/Terrain/TerrainViewController.swift
Eryn Wells 67134c157b Get all the pieces together
Still doesn't render though. :\
2018-11-03 14:01:34 -04:00

45 lines
1.2 KiB
Swift

//
// 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 {
var renderer: Renderer!
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)
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)
renderer.prepareToRender()
}
}