diff options
author | pommicket <pommicket@gmail.com> | 2023-06-19 16:10:05 -0400 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2023-06-19 16:10:05 -0400 |
commit | 48af5aecfab645509ca38922c8a552b6a90c7340 (patch) | |
tree | 51d080b43be5fa277b965eb00a6fdf9cca113829 /fractiform.js | |
parent | 055f6afc33e773be1e2a8c9642288e84d36308eb (diff) |
the start of something
Diffstat (limited to 'fractiform.js')
-rw-r--r-- | fractiform.js | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/fractiform.js b/fractiform.js index 9fe9681..0e9eb81 100644 --- a/fractiform.js +++ b/fractiform.js @@ -72,6 +72,7 @@ function on_key_press(e) { if (e.target.tagName === 'INPUT') { return; } + console.log('key press', code); switch (code) { case 32: // space @@ -82,6 +83,9 @@ function on_key_press(e) { set_ui_shown(!ui_shown); e.preventDefault(); break; + case 13: // return + get_shader_source(); + break; } } @@ -107,6 +111,22 @@ function on_click(e) { } } +function get_shader_source() { + let widgets = []; + for (let widget of document.getElementsByClassName('widget')) { + let names = widget.getElementsByClassName('name'); + console.assert(names.length <= 1, 'multiple name inputs for widget'); + let name = names.length > 0 ? names[0].value : null; + let func = widget.dataset.func; + let inputs = {}; + for (let input of widget.getElementsByClassName('in')) { + let name = input.getElementsByTagName('label')[0].innerText; + inputs[name] = input.getElementsByTagName('input')[0].value; + } + console.log(name, func, inputs); + } +} + function startup() { page = document.getElementById('page'); canvas = document.getElementById('canvas'); @@ -160,9 +180,9 @@ function startup() { function frame(time) { current_time = time * 1e-3; - - let page_width = page.offsetWidth; - let page_height = page.offsetHeight; + let ui_width = ui_shown ? ui_div.offsetWidth : 0; + let page_width = page.offsetWidth - ui_width; + let page_height = page.offsetHeight; let aspect_ratio = width / height; let canvas_x = 0, canvas_y = 0; @@ -180,7 +200,7 @@ function frame(time) { canvas.width = viewport_width; canvas.height = viewport_height; - canvas.style.left = canvas_x + 'px'; + canvas.style.left = ui_width + canvas_x + 'px'; canvas.style.top = canvas_y + 'px'; let step = true; |