smol update

This commit is contained in:
2025-07-05 01:07:53 +00:00
parent c5bd2ba29c
commit 59abe5f5a1
7 changed files with 43 additions and 117 deletions

View File

@ -7,6 +7,8 @@ interface WorkerMessage {
height?: number;
time?: number;
renderMode?: string;
mouseX?: number;
mouseY?: number;
}
interface WorkerResponse {
@ -34,7 +36,7 @@ class ShaderWorker {
this.compileShader(message.id, message.code!);
break;
case 'render':
this.renderShader(message.id, message.width!, message.height!, message.time!, message.renderMode || 'classic');
this.renderShader(message.id, message.width!, message.height!, message.time!, message.renderMode || 'classic', message.mouseX || 0, message.mouseY || 0);
break;
}
} catch (error) {
@ -50,7 +52,7 @@ class ShaderWorker {
try {
const safeCode = this.sanitizeCode(code);
this.compiledFunction = new Function('x', 'y', 't', 'i', `
this.compiledFunction = new Function('x', 'y', 't', 'i', 'mouseX', 'mouseY', `
// Timeout protection
const startTime = performance.now();
let iterations = 0;
@ -76,7 +78,7 @@ class ShaderWorker {
}
}
private renderShader(id: string, width: number, height: number, time: number, renderMode: string): void {
private renderShader(id: string, width: number, height: number, time: number, renderMode: string, mouseX: number, mouseY: number): void {
if (!this.compiledFunction) {
this.postError(id, 'No compiled shader');
return;
@ -109,7 +111,7 @@ class ShaderWorker {
const pixelIndex = y * width + x;
try {
const value = this.compiledFunction(x, y, time, pixelIndex);
const value = this.compiledFunction(x, y, time, pixelIndex, mouseX, mouseY);
const safeValue = isFinite(value) ? value : 0;
const [r, g, b] = this.calculateColor(safeValue, renderMode);