diff options
| author | jules <jules@okfoc.us> | 2014-01-01 23:53:29 -0500 |
|---|---|---|
| committer | jules <jules@okfoc.us> | 2014-01-01 23:53:29 -0500 |
| commit | b0abdb7bb0980474048110d683a81fb037854103 (patch) | |
| tree | f79804b9931518724689aac3acec59a635d7a330 | |
| parent | 468ed78c18fea799091dd9c0e638beff24c6b7aa (diff) | |
save shaders locally
| -rw-r--r-- | js/user.js | 38 | ||||
| -rw-r--r-- | shader-picker.html | 8 |
2 files changed, 45 insertions, 1 deletions
@@ -2,6 +2,7 @@ var user = new function(){} user.init = function(){ user.load() user.bind() + user.shaders.init() } user.bind = function(){ $("#username").on("input", user.save) @@ -37,3 +38,40 @@ user.setCookie = function(username){ document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400" localStorage.setItem("im.name", username); } +user.shaders = new function(){} +user.shaders.init = function(){ + user.shaders.bind() +} +user.shaders.bind = function(){ + var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || [] + for (var i = 0; i < shaders.length; i++){ + user.shaders.bindButton(shaders[i]) + } + document.getElementById("add-shader").addEventListener("click", user.shaders.save, false) +} +user.shaders.bindButton = function(name){ + var button = document.createElement("button") + button.innerHTML = name + button.addEventListener("click", user.shaders.load.bind(this, name), false) + document.getElementById("shaders").appendChild(button) +} +user.shaders.load = function(name){ + var shader = localStorage.getItem("im.shaders." + name) + console.log(name,shader) + if (shader && shader.length > 0) { + $("#shader").val(shader) + shader_build() + } +} +user.shaders.save = function(){ + var name = prompt("enter shader name") + var shader = $("#shader").val() + console.log(name,shader) + if (! name) return; + if (shade !== shade_no_error_handling) return; + localStorage.setItem("im.shaders." + name, shader) + var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || [] + shaders.push(name) + localStorage.setItem("im.shaders", JSON.stringify(shaders)) + user.shaders.bindButton(name) +} diff --git a/shader-picker.html b/shader-picker.html index 4024583..5561b6a 100644 --- a/shader-picker.html +++ b/shader-picker.html @@ -32,6 +32,7 @@ form { display: inline-block; } #gallery-images { display: block; max-height: 210px; overflow-y: auto; } #gallery-images img, #gallery-images canvas { max-width: 200px; height: 100px; margin: 5px; cursor: pointer; } #username { width: 40px; } +#shaders { display: inline-block; } </style> </head> <body> @@ -77,6 +78,8 @@ form { display: inline-block; } <button id="help">help</button> <button id="demo">demo</button> <button id="dither-demo">dither</button> + <div id="shaders"></div> + <button id="add-shader">+</button> <br> </div> @@ -169,7 +172,9 @@ function init(){ console.log("gallery init") user.init() - console.log("signed in as ", user.username) + if (user.username.length) { + console.log("signed in as ", user.username) + } document.getElementById('shader').addEventListener('input', shader_build); shader_build() @@ -189,6 +194,7 @@ function demo(el){ $el = $(el) s = $el.html() $("#shader").html(s) + shader_build() } function load(){ loading = true |
