git.iko.soy/metal-metaballs
on master help sign in
Refactored dispatch_after.
5b0bad6vinivendra
PixelImage.xcodeproj/project.pbxproj+4
@@ -23,6 +23,7 @@
23 24E1E7F11C67D74300ECF1C4 /* shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */; };
23 24E1E7F11C67D74300ECF1C4 /* shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */; };
24 24ED21CD1C6C2397009C40FC /* MetaballDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */; };
24 24ED21CD1C6C2397009C40FC /* MetaballDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */; };
25 24FC38341C7F931E0085C04A /* Metaball.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38331C7F931E0085C04A /* Metaball.swift */; };
25 24FC38341C7F931E0085C04A /* Metaball.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38331C7F931E0085C04A /* Metaball.swift */; };
26+ 24FC38361C7F9ABE0085C04A /* Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FC38351C7F9ABE0085C04A /* Dispatch.swift */; };
26 24FFA86B1C6BA038005ACD60 /* ApproximationOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */; };
27 24FFA86B1C6BA038005ACD60 /* ApproximationOperator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */; };
27 24FFA86C1C6BA038005ACD60 /* Collections.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84D1C6BA038005ACD60 /* Collections.swift */; };
28 24FFA86C1C6BA038005ACD60 /* Collections.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84D1C6BA038005ACD60 /* Collections.swift */; };
28 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */; };
29 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */; };
@@ -73,6 +74,7 @@
73 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = shaders.metal; sourceTree = "<group>"; };
74 24E1E7EF1C67D74300ECF1C4 /* shaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; path = shaders.metal; sourceTree = "<group>"; };
74 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetaballDataSource.swift; sourceTree = "<group>"; };
75 24ED21CC1C6C2397009C40FC /* MetaballDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetaballDataSource.swift; sourceTree = "<group>"; };
75 24FC38331C7F931E0085C04A /* Metaball.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Metaball.swift; sourceTree = "<group>"; };
76 24FC38331C7F931E0085C04A /* Metaball.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Metaball.swift; sourceTree = "<group>"; };
77+ 24FC38351C7F9ABE0085C04A /* Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dispatch.swift; sourceTree = "<group>"; };
76 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApproximationOperator.swift; sourceTree = "<group>"; };
78 24FFA84C1C6BA038005ACD60 /* ApproximationOperator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApproximationOperator.swift; sourceTree = "<group>"; };
77 24FFA84D1C6BA038005ACD60 /* Collections.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collections.swift; sourceTree = "<group>"; };
79 24FFA84D1C6BA038005ACD60 /* Collections.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Collections.swift; sourceTree = "<group>"; };
78 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComparatorChains.swift; sourceTree = "<group>"; };
80 24FFA84E1C6BA038005ACD60 /* ComparatorChains.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComparatorChains.swift; sourceTree = "<group>"; };
@@ -146,6 +148,7 @@
146 24FFA84B1C6BA038005ACD60 /* SwiftSugar */,
148 24FFA84B1C6BA038005ACD60 /* SwiftSugar */,
147 242686871C63B72A00D62456 /* AppDelegate.swift */,
149 242686871C63B72A00D62456 /* AppDelegate.swift */,
148 242686891C63B72A00D62456 /* ViewController.swift */,
150 242686891C63B72A00D62456 /* ViewController.swift */,
151+ 24FC38351C7F9ABE0085C04A /* Dispatch.swift */,
149 24FC38331C7F931E0085C04A /* Metaball.swift */,
152 24FC38331C7F931E0085C04A /* Metaball.swift */,
150 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */,
153 24E1E7D61C67C8B200ECF1C4 /* UIKit.swift */,
151 246B0F821C70635D00A71D05 /* UIColor.swift */,
154 246B0F821C70635D00A71D05 /* UIColor.swift */,
@@ -394,6 +397,7 @@
394 24FFA8831C6BA038005ACD60 /* Slicing.swift in Sources */,
397 24FFA8831C6BA038005ACD60 /* Slicing.swift in Sources */,
395 24FFA8721C6BA038005ACD60 /* Sequence.swift in Sources */,
398 24FFA8721C6BA038005ACD60 /* Sequence.swift in Sources */,
396 24FFA87F1C6BA038005ACD60 /* Iterate.swift in Sources */,
399 24FFA87F1C6BA038005ACD60 /* Iterate.swift in Sources */,
400+ 24FC38361C7F9ABE0085C04A /* Dispatch.swift in Sources */,
397 24FFA8761C6BA038005ACD60 /* Categorise.swift in Sources */,
401 24FFA8761C6BA038005ACD60 /* Categorise.swift in Sources */,
398 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */,
402 24FFA86D1C6BA038005ACD60 /* ComparatorChains.swift in Sources */,
399 24FFA8711C6BA038005ACD60 /* PowerOperator.swift in Sources */,
403 24FFA8711C6BA038005ACD60 /* PowerOperator.swift in Sources */,
PixelImage/Dispatch.swiftnew file+6
@@ -0,0 +1,6 @@
1+
2+import Dispatch
3+
4+func delay(duration: Float = 1, block: () -> ()) {
5+ dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(duration * Float(NSEC_PER_SEC))), dispatch_get_main_queue(), block)
6+}
PixelImage/ViewController.swift+1−1
@@ -56,7 +56,7 @@ class ViewController: UIViewController, MetaballDataSource {
56
56
57 addEdge(0, 2)
57 addEdge(0, 2)
58
58
59− dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 2 * Int64(NSEC_PER_SEC)), dispatch_get_main_queue()) {
59+ delay {
60 self.removeEdge(0, 2)
60 self.removeEdge(0, 2)
61 }
61 }
62
62