summaryrefslogtreecommitdiff
path: root/fractiform.js
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2023-06-19 16:10:05 -0400
committerpommicket <pommicket@gmail.com>2023-06-19 16:10:05 -0400
commit48af5aecfab645509ca38922c8a552b6a90c7340 (patch)
tree51d080b43be5fa277b965eb00a6fdf9cca113829 /fractiform.js
parent055f6afc33e773be1e2a8c9642288e84d36308eb (diff)
the start of something
Diffstat (limited to 'fractiform.js')
-rw-r--r--fractiform.js28
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;