Create Terrain2 app, using Xcode's boilerplate
This commit is contained in:
parent
df0a4ca6fc
commit
a771c2622a
14 changed files with 1493 additions and 0 deletions
45
Terrain2/GameViewController.swift
Normal file
45
Terrain2/GameViewController.swift
Normal file
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// GameViewController.swift
|
||||
// Terrain2
|
||||
//
|
||||
// Created by Eryn Wells on 11/3/18.
|
||||
// Copyright © 2018 Eryn Wells. All rights reserved.
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
import MetalKit
|
||||
|
||||
// Our macOS specific view controller
|
||||
class GameViewController: NSViewController {
|
||||
|
||||
var renderer: Renderer!
|
||||
var mtkView: MTKView!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
guard let mtkView = self.view as? MTKView else {
|
||||
print("View attached to GameViewController is not an MTKView")
|
||||
return
|
||||
}
|
||||
|
||||
// Select the device to render with. We choose the default device
|
||||
guard let defaultDevice = MTLCreateSystemDefaultDevice() else {
|
||||
print("Metal is not supported on this device")
|
||||
return
|
||||
}
|
||||
|
||||
mtkView.device = defaultDevice
|
||||
|
||||
guard let newRenderer = Renderer(metalKitView: mtkView) else {
|
||||
print("Renderer cannot be initialized")
|
||||
return
|
||||
}
|
||||
|
||||
renderer = newRenderer
|
||||
|
||||
renderer.mtkView(mtkView, drawableSizeWillChange: mtkView.drawableSize)
|
||||
|
||||
mtkView.delegate = renderer
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue