diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-11-22 14:47:43 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-11-22 14:47:43 -0500 |
| commit | b4d19e469b3de98778002ac97814c6b647cba113 (patch) | |
| tree | ab4d0f8ad5d33588a8287530971880f1889da5cd /js/shader.js | |
| parent | dd8a053f9845d4adeb8540f24d1e8d46def35ad3 (diff) | |
better chara input
Diffstat (limited to 'js/shader.js')
| -rw-r--r-- | js/shader.js | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/js/shader.js b/js/shader.js index b829a0d..cd6b899 100644 --- a/js/shader.js +++ b/js/shader.js @@ -1,13 +1,14 @@ var shader = (function(){ var fn_str, fn, lex var exports = {} + var animating = false exports.init = function(){ lex = new Lex (0, 0) exports.build(demo_shader.innerHTML) } exports.build = function (fn_str){ - new_fn = new Function('lex', 'x', 'y', fn_str) + new_fn = new Function('lex', 'x', 'y', 't', fn_str) try { new_fn(lex, 0, 0) } @@ -18,11 +19,26 @@ var shader = (function(){ return fn } exports.run = function(canvas){ + var t = +new Date canvas.forEach(function(lex, y, x){ - fn(lex, x, y) + fn(lex, x, y, t) lex.build() }) } + exports.toggle = function(state){ + animating = typeof state == "boolean" ? state : ! animating + } + exports.pause = function(){ + animating = false + } + exports.play = function(){ + animating = true + } + exports.animate = function (t){ + requestAnimationFrame(exports.animate) + if (! animating) { return } + exports.run(canvas) + } return exports |
