aboutsummaryrefslogtreecommitdiff
path: root/src/Framebuffer.ts
diff options
context:
space:
mode:
authorJames Barnett <noreply@jamesbarnett.xyz>2025-07-26 11:17:10 +0100
committerJames Barnett <noreply@jamesbarnett.xyz>2025-07-26 11:17:10 +0100
commit10bfc58085c6ab7e62077a1a9b6a6d922fffb025 (patch)
tree3e1d3ff39891c2c2408235c209566f4c51915859 /src/Framebuffer.ts
parentebc500c522e7233fbc6037bce0569edf3a0b5136 (diff)
downloadjs-raytracer-10bfc58085c6ab7e62077a1a9b6a6d922fffb025.tar.xz
js-raytracer-10bfc58085c6ab7e62077a1a9b6a6d922fffb025.zip
Rework multithreaded rendering
Render worker tasks are now split into chunks rather than row blocks for better thread utilisation
Diffstat (limited to 'src/Framebuffer.ts')
-rw-r--r--src/Framebuffer.ts10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/Framebuffer.ts b/src/Framebuffer.ts
index a6ad5fc..63881ae 100644
--- a/src/Framebuffer.ts
+++ b/src/Framebuffer.ts
@@ -1,3 +1,5 @@
+import {Colour} from "./models/Colour";
+
export class Framebuffer {
readonly width: number;
readonly height: number;
@@ -22,11 +24,11 @@ export class Framebuffer {
);
}
- writePixelAt(x: number, y: number, r: number, g: number, b: number) {
+ writePixelAt(x: number, y: number, colour: Colour) {
const startIdx = (y * this.width + x) * 4;
- this.canvasImageData.data[startIdx] = r;
- this.canvasImageData.data[startIdx + 1] = g;
- this.canvasImageData.data[startIdx + 2] = b;
+ this.canvasImageData.data[startIdx] = colour.r;
+ this.canvasImageData.data[startIdx + 1] = colour.g;
+ this.canvasImageData.data[startIdx + 2] = colour.b;
this.canvasImageData.data[startIdx + 3] = 255; // No A
}