31 lines
978 B
Swift
31 lines
978 B
Swift
//
|
|
// MetalView.swift
|
|
// chapter02
|
|
//
|
|
// Created by Marius on 1/9/16.
|
|
// Copyright © 2016 Marius Horga. All rights reserved.
|
|
//
|
|
|
|
import MetalKit
|
|
|
|
class MetalView: MTKView {
|
|
|
|
required init(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
device = MTLCreateSystemDefaultDevice()
|
|
}
|
|
|
|
override func draw(_ dirtyRect: NSRect) {
|
|
if let drawable = currentDrawable, let rpd = currentRenderPassDescriptor {
|
|
rpd.colorAttachments[0].texture = currentDrawable!.texture
|
|
rpd.colorAttachments[0].clearColor = MTLClearColor(red: 0, green: 0.5, blue: 0.5, alpha: 1)
|
|
rpd.colorAttachments[0].loadAction = .clear
|
|
let commandBuffer = device!.makeCommandQueue()?.makeCommandBuffer()
|
|
let commandEncoder = commandBuffer?.makeRenderCommandEncoder(descriptor: rpd)
|
|
commandEncoder?.endEncoding()
|
|
commandBuffer?.present(drawable)
|
|
commandBuffer?.commit()
|
|
}
|
|
}
|
|
}
|