Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
with
32 additions
and 98 deletions.
- +4 −89 extras/CactusFramer/static/app.coffee
- +8 −0 framer/Config.coffee
- +4 −4 framer/Layer.coffee
- +16 −5 test/tests/LayerTest.coffee
@@ -1,92 +1,7 @@ | ||
getTime = Date.now | ||
|
||
if performance.now | ||
getTime = -> performance.now() | ||
|
||
# class Timer | ||
# constructor: -> @start() | ||
# start: -> @_startTime = getTime() | ||
# stop: -> getTime() - @_startTime | ||
|
||
class FPSTimer | ||
|
||
constructor: -> @start() | ||
|
||
start: -> | ||
@_frameCount = 0 | ||
@_startTime = getTime() | ||
|
||
Framer.Loop.on("render", @_tick) | ||
|
||
stop: -> | ||
|
||
time = getTime() - @_startTime | ||
|
||
Framer.Loop.off("render", @_tick) | ||
|
||
results = | ||
time: time | ||
frames: @_frameCount | ||
fps: 1000 / (time / @_frameCount) | ||
return results | ||
_tick: => | ||
@_frameCount++ | ||
run = (options, callback) -> | ||
context = new Framer.Context(name:"TestRun") | ||
context.run -> _run options, (results) -> | ||
context.reset() | ||
callback(results) | ||
_run = (options, callback) -> | ||
startTime = getTime() | ||
results = {} | ||
LAYERS = for i in [1..options.n] | ||
layerC = new Layer | ||
x: Math.random() * window.innerWidth, | ||
y: Math.random() * window.innerHeight | ||
results.layers = Framer.CurrentContext._layerList.length | ||
results.buildTotal = getTime() - startTime | ||
results.buildLayer = results.buildTotal / results.layers | ||
t1 = new FPSTimer | ||
for layer in LAYERS | ||
layer.animate | ||
properties: | ||
x: Math.random() * window.innerWidth, | ||
y: Math.random() * window.innerHeight | ||
curve: "spring(1000, 10, 0)" | ||
layer.on Events.AnimationEnd, -> | ||
results.fps = t1.stop() | ||
callback(results) | ||
Utils.domComplete -> | ||
c = 0 | ||
callback = (results) -> | ||
if results | ||
print "#{c} - #{results.layers} | ||
Build: #{Utils.round(results.buildTotal, 0)}ms/#{Utils.round(results.buildLayer, 2)}ms | ||
FPS: #{Utils.round(results.fps.fps, 1)}" | ||
|
||
if c < 100 | ||
c++ | ||
run {n: c * 20}, callback | ||
|
||
callback() | ||
|
||
layer = new Layer | ||
|
||
print layer.ignoreEvents | ||
|
||
layer.html = "<input type='text'>" | ||
|
||
print layer.ignoreEvents |