From bc61d4f939216239934ae25ec64b4a4701caac1e Mon Sep 17 00:00:00 2001 From: Marius Horga Date: Tue, 3 Oct 2017 12:55:38 -0500 Subject: [PATCH] updated to Swift 4 --- particles/particle.playground/Contents.swift | 2 +- .../Resources/Shaders.metal | 8 +++++--- .../UserInterfaceState.xcuserstate | Bin 13076 -> 14041 bytes .../particle.playground/timeline.xctimeline | 6 ------ 4 files changed, 6 insertions(+), 10 deletions(-) delete mode 100644 particles/particle.playground/timeline.xctimeline diff --git a/particles/particle.playground/Contents.swift b/particles/particle.playground/Contents.swift index 694d377..912110b 100644 --- a/particles/particle.playground/Contents.swift +++ b/particles/particle.playground/Contents.swift @@ -2,7 +2,7 @@ import MetalKit import PlaygroundSupport -let frame = NSRect(x: 0, y: 0, width: 400, height: 400) +let frame = NSRect(x: 0, y: 0, width: 400, height: 800) let delegate = MetalView() let view = MTKView(frame: frame, device: delegate.device) view.delegate = delegate diff --git a/particles/particle.playground/Resources/Shaders.metal b/particles/particle.playground/Resources/Shaders.metal index 0da8ea0..230648a 100644 --- a/particles/particle.playground/Resources/Shaders.metal +++ b/particles/particle.playground/Resources/Shaders.metal @@ -14,10 +14,12 @@ float distanceToParticle(float2 point, Particle p) { kernel void compute(texture2d output [[texture(0)]], constant float &time [[buffer(0)]], uint2 gid [[thread_position_in_grid]]) { - int width = output.get_width(); - int height = output.get_height(); + float width = output.get_width(); + float height = output.get_height(); float2 uv = float2(gid) / float2(width, height); - float2 center = float2(0.5, time); + float aspect = width / height; + uv.x *= aspect; + float2 center = float2(aspect / 2, time); float radius = 0.05; float stop = 1 - radius; if (time >= stop) { center.y = stop; } diff --git a/particles/particle.playground/playground.xcworkspace/xcuserdata/mhorga.xcuserdatad/UserInterfaceState.xcuserstate b/particles/particle.playground/playground.xcworkspace/xcuserdata/mhorga.xcuserdatad/UserInterfaceState.xcuserstate index b1d57fa83bfaef6045b0b670fbbbf0dbd5ecc180..861773a0748e4bcdae4d6620d9beb2680e667e15 100644 GIT binary patch delta 7881 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 delta 7245 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 diff --git a/particles/particle.playground/timeline.xctimeline b/particles/particle.playground/timeline.xctimeline deleted file mode 100644 index bf468af..0000000 --- a/particles/particle.playground/timeline.xctimeline +++ /dev/null @@ -1,6 +0,0 @@ - - - - -