diff options
| author | Jules Laplace <jules@okfoc.us> | 2014-11-22 11:44:05 -0500 |
|---|---|---|
| committer | Jules Laplace <jules@okfoc.us> | 2014-11-22 11:44:05 -0500 |
| commit | dd8a053f9845d4adeb8540f24d1e8d46def35ad3 (patch) | |
| tree | d61188f3f87ddc3023709667a659f867506a5ead /js/shader.js | |
| parent | 2464f6e5d4d190631efbb738e56d9c2c810f7ced (diff) | |
shader
Diffstat (limited to 'js/shader.js')
| -rw-r--r-- | js/shader.js | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/js/shader.js b/js/shader.js index a6937b7..b829a0d 100644 --- a/js/shader.js +++ b/js/shader.js @@ -1,7 +1,29 @@ -(function(){ +var shader = (function(){ + var fn_str, fn, lex + var exports = {} + + 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) + try { + new_fn(lex, 0, 0) + } + catch (e) { + throw 'Shader execution error' + } + exports.fn = fn = new_fn + return fn + } + exports.run = function(canvas){ + canvas.forEach(function(lex, y, x){ + fn(lex, x, y) + lex.build() + }) + } + + return exports - var fn_str = demo_shader.innerHTML - var shader = new Function('lex', 'x', 'y', fn_str) - - window.shader = shader -})()
\ No newline at end of file +})() |
