Skeleton for pixelflood

This commit is contained in:
Tangent 2024-02-03 15:36:29 -05:00
parent b04ba4e622
commit 497731f62b
2 changed files with 56 additions and 0 deletions

45
pixelflood.ts Normal file
View file

@ -0,0 +1,45 @@
// TODO choose generator
// TODO get/put image data in render/tick loop
// TODO rediscover RGB/HSV pixelflood techniques
import { canvas2d, h } from "./lib/html";
interface Controls {
seed: HTMLInputElement;
}
function PixelfloodApplet() {
const [canvas, cx] = canvas2d({});
const [controls, controlUi] = ControlUi();
return [canvas, ...controlUi];
}
function numInput(init: number) {
return h("input", { type: "number", valueAsNumber: init });
}
function ControlUi(): [Controls, HTMLElement[]] {
let seed, width, height;
const html = [
h("h2", {}, "Controls"),
h(
"div",
{},
h(
"label",
{},
"Width: ",
(width = numInput(128)),
"Height: ",
(height = numInput(128))
)
),
h("div", {}, h("label", {}, "Random Seed: ", (seed = numInput(128)))),
];
return [{ seed }, html];
}
Object.assign(globalThis, { PixelfloodApplet });