small size update with tons of rendering modes, palettes and keybindings
This commit is contained in:
@ -6,6 +6,8 @@ interface WorkerMessage {
|
||||
height?: number;
|
||||
time?: number;
|
||||
renderMode?: string;
|
||||
valueMode?: string;
|
||||
hueShift?: number;
|
||||
startY?: number; // Y offset for tile rendering
|
||||
mouseX?: number;
|
||||
mouseY?: number;
|
||||
@ -30,6 +32,7 @@ interface WorkerMessage {
|
||||
bassLevel?: number;
|
||||
midLevel?: number;
|
||||
trebleLevel?: number;
|
||||
bpm?: number;
|
||||
}
|
||||
|
||||
interface WorkerResponse {
|
||||
@ -54,6 +57,9 @@ export class FakeShader {
|
||||
private pendingRenders: string[] = [];
|
||||
private renderMode: string = 'classic';
|
||||
private valueMode: string = 'integer';
|
||||
private hueShift: number = 0;
|
||||
private timeSpeed: number = 1.0;
|
||||
private currentBPM: number = 120;
|
||||
|
||||
// Multi-worker state
|
||||
private tileResults: Map<number, ImageData> = new Map();
|
||||
@ -216,7 +222,7 @@ export class FakeShader {
|
||||
|
||||
this.isRendering = true;
|
||||
// this._currentRenderID = id; // Removed unused property
|
||||
const currentTime = (Date.now() - this.startTime) / 1000;
|
||||
const currentTime = (Date.now() - this.startTime) / 1000 * this.timeSpeed;
|
||||
|
||||
// Always use multiple workers if available
|
||||
if (this.workerCount > 1) {
|
||||
@ -237,6 +243,7 @@ export class FakeShader {
|
||||
time: currentTime,
|
||||
renderMode: this.renderMode,
|
||||
valueMode: this.valueMode,
|
||||
hueShift: this.hueShift,
|
||||
mouseX: this.mouseX,
|
||||
mouseY: this.mouseY,
|
||||
mousePressed: this.mousePressed,
|
||||
@ -260,6 +267,7 @@ export class FakeShader {
|
||||
bassLevel: this.bassLevel,
|
||||
midLevel: this.midLevel,
|
||||
trebleLevel: this.trebleLevel,
|
||||
bpm: this.currentBPM,
|
||||
} as WorkerMessage);
|
||||
}
|
||||
|
||||
@ -293,6 +301,7 @@ export class FakeShader {
|
||||
time: currentTime,
|
||||
renderMode: this.renderMode,
|
||||
valueMode: this.valueMode,
|
||||
hueShift: this.hueShift,
|
||||
mouseX: this.mouseX,
|
||||
mouseY: this.mouseY,
|
||||
mousePressed: this.mousePressed,
|
||||
@ -316,6 +325,7 @@ export class FakeShader {
|
||||
bassLevel: this.bassLevel,
|
||||
midLevel: this.midLevel,
|
||||
trebleLevel: this.trebleLevel,
|
||||
bpm: this.currentBPM,
|
||||
} as WorkerMessage);
|
||||
});
|
||||
}
|
||||
@ -392,6 +402,18 @@ export class FakeShader {
|
||||
this.valueMode = mode;
|
||||
}
|
||||
|
||||
setHueShift(shift: number): void {
|
||||
this.hueShift = shift;
|
||||
}
|
||||
|
||||
setTimeSpeed(speed: number): void {
|
||||
this.timeSpeed = speed;
|
||||
}
|
||||
|
||||
setBPM(bpm: number): void {
|
||||
this.currentBPM = bpm;
|
||||
}
|
||||
|
||||
setMousePosition(
|
||||
x: number,
|
||||
y: number,
|
||||
|
||||
Reference in New Issue
Block a user