[app,kit] Move Renderer and shaders to the Kit

This commit is contained in:
Eryn Wells 2017-08-16 22:07:30 -07:00
parent ff853e2c06
commit c226d7e72e
3 changed files with 12 additions and 18 deletions

View file

@ -11,6 +11,8 @@
C0B906D51F45432700B5F89B /* Preferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0B906D41F45432700B5F89B /* Preferences.swift */; };
C0B906DE1F455AD000B5F89B /* MetaballsSaverView.h in Headers */ = {isa = PBXBuildFile; fileRef = C0B906DD1F455AD000B5F89B /* MetaballsSaverView.h */; };
C0B906E01F455AD000B5F89B /* MetaballsSaverView.m in Sources */ = {isa = PBXBuildFile; fileRef = C0B906DF1F455AD000B5F89B /* MetaballsSaverView.m */; };
C0B906E51F455B7C00B5F89B /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE3AB1F2E941200E68524 /* Renderer.swift */; };
C0B906E61F455B7E00B5F89B /* Shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE3A91F2E91D900E68524 /* Shaders.metal */; };
C0BBE36B1F2E816500E68524 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE36A1F2E816500E68524 /* AppDelegate.swift */; };
C0BBE36D1F2E816500E68524 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE36C1F2E816500E68524 /* ViewController.swift */; };
C0BBE36F1F2E816500E68524 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C0BBE36E1F2E816500E68524 /* Assets.xcassets */; };
@ -22,8 +24,6 @@
C0BBE3A41F2E81C700E68524 /* Metaballs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE3A31F2E81C700E68524 /* Metaballs.swift */; };
C0BBE3A51F2E87D500E68524 /* MetaballsKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0BBE38C1F2E81B600E68524 /* MetaballsKit.framework */; };
C0BBE3A81F2E893A00E68524 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0BBE3A71F2E893A00E68524 /* MetalKit.framework */; };
C0BBE3AA1F2E91D900E68524 /* Shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE3A91F2E91D900E68524 /* Shaders.metal */; };
C0BBE3AC1F2E941200E68524 /* Renderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0BBE3AB1F2E941200E68524 /* Renderer.swift */; };
C0BBE3AD1F30CD7E00E68524 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0BBE3A71F2E893A00E68524 /* MetalKit.framework */; };
C0CE7C001F362C3F001516B6 /* Geometry.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0CE7BFF1F362C3F001516B6 /* Geometry.swift */; };
C0DF1D791F3789DC0038B0A0 /* Memory.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0DF1D781F3789DC0038B0A0 /* Memory.swift */; };
@ -159,8 +159,6 @@
children = (
C0BBE36A1F2E816500E68524 /* AppDelegate.swift */,
C0BBE36C1F2E816500E68524 /* ViewController.swift */,
C0BBE3AB1F2E941200E68524 /* Renderer.swift */,
C0BBE3A91F2E91D900E68524 /* Shaders.metal */,
C0BBE36E1F2E816500E68524 /* Assets.xcassets */,
C0BBE3701F2E816500E68524 /* Main.storyboard */,
C0BBE3731F2E816500E68524 /* Info.plist */,
@ -185,6 +183,8 @@
C0BBE3A31F2E81C700E68524 /* Metaballs.swift */,
C0CE7BFF1F362C3F001516B6 /* Geometry.swift */,
C0DF1D781F3789DC0038B0A0 /* Memory.swift */,
C0BBE3AB1F2E941200E68524 /* Renderer.swift */,
C0BBE3A91F2E91D900E68524 /* Shaders.metal */,
C0B906D41F45432700B5F89B /* Preferences.swift */,
C091616F1F3F5AE6009C4263 /* PreferencesViewController.swift */,
);
@ -433,8 +433,6 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C0BBE3AC1F2E941200E68524 /* Renderer.swift in Sources */,
C0BBE3AA1F2E91D900E68524 /* Shaders.metal in Sources */,
C0BBE36D1F2E816500E68524 /* ViewController.swift in Sources */,
C0BBE36B1F2E816500E68524 /* AppDelegate.swift in Sources */,
);
@ -453,9 +451,11 @@
buildActionMask = 2147483647;
files = (
C0DF1D791F3789DC0038B0A0 /* Memory.swift in Sources */,
C0B906E61F455B7E00B5F89B /* Shaders.metal in Sources */,
C0B906D51F45432700B5F89B /* Preferences.swift in Sources */,
C0BBE3A41F2E81C700E68524 /* Metaballs.swift in Sources */,
C0CE7C001F362C3F001516B6 /* Geometry.swift in Sources */,
C0B906E51F455B7C00B5F89B /* Renderer.swift in Sources */,
C09161701F3F5AE6009C4263 /* PreferencesViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;

View file

@ -7,37 +7,31 @@
//
import Foundation
import MetaballsKit
import MetalKit
enum RendererError: Error {
public enum RendererError: Error {
case MetalError(String)
}
protocol RendererDelegate {
public protocol RendererDelegate {
var renderSize: Size { get set }
var field: Field { get }
var metalView: MTKView { get }
}
struct Point {
let x: Float
let y: Float
}
struct Vertex {
let position: Point
let textureCoordinate: Point
}
class Renderer: NSObject, MTKViewDelegate {
public class Renderer: NSObject, MTKViewDelegate {
var delegate: RendererDelegate
private var device: MTLDevice
private var commandQueue: MTLCommandQueue
private var renderPipelineState: MTLRenderPipelineState
init(delegate: RendererDelegate) throws {
public init(delegate: RendererDelegate) throws {
self.delegate = delegate
guard let device = MTLCreateSystemDefaultDevice() else {
@ -78,11 +72,11 @@ class Renderer: NSObject, MTKViewDelegate {
/// MARK: - MTKViewDelegate
func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
public func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
delegate.renderSize = Size(size: size)
}
func draw(in view: MTKView) {
public func draw(in view: MTKView) {
let field = delegate.field
// Two triangles, plus texture coordinates.