return mx, my;
}
+// This one just tells you if the mouse is down or not.
+mouse_down :: () -> bool #foreign "canvas" "mouse_down" ---
+
// This one waits for a click event to happen, and returns the position
// on the canvas where the click occurs.
mouse_click_internal :: (out_x, out_y: ^f32) -> void #foreign "canvas" "mouse_get_click" ---
padding: 2px 6px;
height: 100%;
line-height: var(--tab-line-height);
+}
+
+::-webkit-scrollbar {
+ width: 0.75em;
+}
+
+::-webkit-scrollbar-track {
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+}
+
+::-webkit-scrollbar-thumb {
+ background-color: var(--active-color);
+ outline: 1px solid: var(--background-color);
}
\ No newline at end of file
Atomics.store(canvas_data, 4, my);
});
+ canvas_element.addEventListener("mousedown", (e) => {
+ let canvas_data = new Int32Array(canvas_shared_buffer);
+ Atomics.store(canvas_data, 6, 1);
+ });
+
+ canvas_element.addEventListener("mouseup", (e) => {
+ let canvas_data = new Int32Array(canvas_shared_buffer);
+ Atomics.store(canvas_data, 6, 0);
+ });
+
canvas_element.addEventListener("click", (e) => {
let canvas_data = new Int32Array(canvas_shared_buffer);
let box = canvas_element.getBoundingClientRect();
canvas_element.width = box.width;
canvas_element.height = box.height;
+ canvas_op_buffer = [];
+
Atomics.store(canvas_data, 0, box.width);
Atomics.store(canvas_data, 1, box.height);
Atomics.store(canvas_data, 2, 1);
}
function canvas_buffer_flush() {
- canvas_op_buffer.sort((a, b) => a[0] - b[0]);
+ // canvas_op_buffer.sort((a, b) => a[0] - b[0]);
for (let op of canvas_op_buffer) {
canvas_process(op);
let ui_theme = "dark";
let input_shared_buffer = new SharedArrayBuffer(1024 * Uint8Array.BYTES_PER_ELEMENT);
-let canvas_shared_buffer = new SharedArrayBuffer(6 * Int32Array.BYTES_PER_ELEMENT);
+let canvas_shared_buffer = new SharedArrayBuffer(7 * Int32Array.BYTES_PER_ELEMENT);
async function clear_output() {
let elem = document.getElementById('code-result');
data.setFloat32(outy, Atomics.load(canvas_data, 4), true);
},
+ mouse_down() {
+ let canvas_data = new Int32Array(canvas_data_buffer);
+ if (Atomics.load(canvas_data, 6) > 0) {
+ return 1;
+ } else {
+ return 0;
+ }
+ },
+
mouse_get_click(outx, outy) {
let data = new DataView(wasm_memory.buffer);
let canvas_data = new Int32Array(canvas_data_buffer);