summaryrefslogtreecommitdiff
path: root/js/shader.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/shader.js')
-rw-r--r--js/shader.js20
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