git.iko.soy/metal-metaballs
on master help sign in
Refactored dynamic rendering to be class dependent.
commitcf62eba1376b2aeae9dcf98d8ad5fb62f7ac0d69 authorvinivendra <vinivendra@gmail.com> dateWed 10 Feb 2016, 16:22 (11 years ago) parent2126ee6
4 files changed+13−2
PixelImage/ImageMetaballRenderer.swift+6 PixelImage/MetaballRenderer.swift+1 PixelImage/MetalMetaballRenderer.swift+5 PixelImage/ViewController.swift+1−2
PixelImage/ImageMetaballRenderer.swift+6
@@ -2,8 +2,14 @@
22import UIKit
33
44class ImageMetaballRenderer: MetaballRenderer {
5+
56 typealias TargetView = UIImageView
67
8+ var supportsDynamicRendering: Bool { get {
9+ return false
10+ }
11+ }
12+
713 let targetView = TargetView()
814
915 let dataSource: MetaballDataSource
PixelImage/MetaballRenderer.swift+1
@@ -9,6 +9,7 @@ protocol MetaballRenderer {
99 typealias TargetView: UIView
1010
1111 var targetView: TargetView { get }
12+ var supportsDynamicRendering: Bool { get }
1213
1314 init(dataSource: MetaballDataSource)
1415
PixelImage/MetalMetaballRenderer.swift+5
@@ -15,6 +15,11 @@ class MetalMetaballRenderer: MetaballRenderer {
1515
1616 typealias TargetView = UIImageView
1717
18+ var supportsDynamicRendering: Bool { get {
19+ return true
20+ }
21+ }
22+
1823 let targetView = TargetView()
1924 var previousFrame = CGRect.zero
2025
PixelImage/ViewController.swift+1−2
@@ -3,7 +3,6 @@ import UIKit
33
44class ViewController: UIViewController, MetaballDataSource {
55
6− let dynamicRendering = true
76 typealias Renderer = MetalMetaballRenderer // ImageMetaballRenderer // MetalMetaballRenderer
87 typealias TargetView = Renderer.TargetView
98
@@ -59,7 +58,7 @@ class ViewController: UIViewController, MetaballDataSource {
5958
6059 selectedMetaball?.middle = location
6160
62− if recognizer.state == .Changed && dynamicRendering {
61+ if recognizer.state == .Changed && renderer.supportsDynamicRendering {
6362 renderer.updateTargetView()
6463 }
6564 if recognizer.state == .Ended {