Skip to content
This repository has been archived by the owner on Feb 7, 2024. It is now read-only.

Commit

Permalink
Use async with requestAnimationFrame
Browse files Browse the repository at this point in the history
  • Loading branch information
alfonsogarciacaro committed Sep 5, 2016
1 parent a79728a commit 91d9b4d
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions samples/pixi/blur-filter/blur-filter.fsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,20 @@ let blurFilter2 = filters.BlurFilter()
littleDudes.filters <- Some(ResizeArray[|blurFilter1 :> AbstractFilter|])
littleRobot.filters <- Some(ResizeArray[|blurFilter2 :> AbstractFilter|])

let rec animate =
let mutable count = 0.
let rec animate (dt:float) =
count <- count + 0.005
let blurAmount = Math.cos(count)
let blurAmount2 = Math.sin(count)
blurFilter1.blur <- 20. * (blurAmount)
blurFilter2.blur <- 20. * (blurAmount2)
window.requestAnimationFrame(FrameRequestCallback animate) |> ignore
renderer.render(stage)
animate
let awaitAnimationFrame() =
Async.FromContinuations <| fun (cont,_,_) ->
window.requestAnimationFrame(FrameRequestCallback cont) |> ignore

let rec animate count = async {
let count = count + 0.005
let blurAmount = Math.cos(count)
let blurAmount2 = Math.sin(count)
blurFilter1.blur <- 20. * (blurAmount)
blurFilter2.blur <- 20. * (blurAmount2)
renderer.render(stage)
let! _ = awaitAnimationFrame()
return! animate count
}

// start animating
animate 0.
animate 0. |> Async.StartImmediate

0 comments on commit 91d9b4d

Please sign in to comment.