31 lines
958 B
Swift
31 lines
958 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!.newCommandQueue().commandBuffer()
|
|
let commandEncoder = commandBuffer.renderCommandEncoder(with: rpd)
|
|
commandEncoder.endEncoding()
|
|
commandBuffer.present(drawable)
|
|
commandBuffer.commit()
|
|
}
|
|
}
|
|
}
|