Compare commits

..

No commits in common. "ab7f576dea79cb48d30b077502c93cef659a0004" and "236d612c20da03ac6b63838962cad608d5491178" have entirely different histories.

5 changed files with 13 additions and 57 deletions

View file

@ -1,3 +1,4 @@
import { BrushPreview } from "rkgk/brush-preview.js";
import { Haku } from "rkgk/haku.js"; import { Haku } from "rkgk/haku.js";
import { randomId } from "rkgk/random.js"; import { randomId } from "rkgk/random.js";
import { SaveData } from "rkgk/framework.js"; import { SaveData } from "rkgk/framework.js";

View file

@ -1,63 +1,17 @@
import { BrushRenderer } from "rkgk/brush-renderer.js";
export class BrushPreview extends HTMLElement { export class BrushPreview extends HTMLElement {
constructor(width, height) {
super();
this.width = width;
this.height = height;
}
connectedCallback() { connectedCallback() {
this.canvas = this.appendChild(document.createElement("canvas")); // TODO
this.gl = this.canvas.getContext("webgl2");
this.brushRenderer = new BrushRenderer(this.gl, this.canvasSource());
let resizeObserver = new ResizeObserver(() => this.#updateCanvasSize());
resizeObserver.observe(this);
this.#updateCanvasSize();
}
#updateCanvasSize() {
this.canvas.width = this.clientWidth;
this.canvas.height = this.clientHeight;
this.dispatchEvent(new Event(".pixmapLost"));
}
canvasSource() {
let canvas = this.canvas;
return {
useCanvas(gl, id) {
let viewport = { x: 0, y: 0, width: canvas.width, height: canvas.height };
gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
return viewport;
},
resetCanvas(gl) {},
};
} }
async #renderBrushInner(haku) { async #renderBrushInner(haku) {
let gl = this.gl; // TODO
gl.clearColor(0, 0, 0, 0);
gl.clear(gl.COLOR_BUFFER_BIT);
let canvas = this.canvas;
let result = await haku.evalBrush({
runDotter: async () => {
return {
fromX: canvas.width / 2,
fromY: canvas.height / 2,
toX: canvas.width / 2,
toY: canvas.height / 2,
num: 0,
};
},
runScribble: async (renderToCanvas) => {
return renderToCanvas(this.brushRenderer, 0, 0, 0);
},
});
if (result.status != "ok") {
return { status: "error", phase: "eval", result };
}
return { status: "ok" }; return { status: "ok" };
} }

View file

@ -177,6 +177,7 @@ export class AtlasAllocator {
gl.bindBuffer(gl.ARRAY_BUFFER, this.compositeRectVbo); gl.bindBuffer(gl.ARRAY_BUFFER, this.compositeRectVbo);
gl.bufferData(gl.ARRAY_BUFFER, this.compositeRectData, gl.DYNAMIC_DRAW); gl.bufferData(gl.ARRAY_BUFFER, this.compositeRectData, gl.DYNAMIC_DRAW);
console.log(this.compositeRectData.byteLength);
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.compositeRectIbo); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.compositeRectIbo);
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, compositeRectIndices, gl.DYNAMIC_DRAW); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, compositeRectIndices, gl.DYNAMIC_DRAW);

View file

@ -287,7 +287,7 @@ function readUrl(urlString) {
let data = new Blob(dataParts); let data = new Blob(dataParts);
console.debug("sending edit data. record count:", editRecords.length, "data blob:", data); console.log("sending edit data. record count:", editRecords.length, "data blob:", data);
session.sendEdit(editRecords, data); session.sendEdit(editRecords, data);
}); });

View file

@ -89,7 +89,7 @@ export class Layer {
let blob = canvas.convertToBlob({ type: "image/png" }); let blob = canvas.convertToBlob({ type: "image/png" });
let end = performance.now(); let end = performance.now();
console.debug("encoding image took", end - start, "ms"); console.log("encoding image took", end - start, "ms");
encodeTime += end - start; encodeTime += end - start;
return blob; return blob;