@oliversalzburg/js-utils 0.0.28-dev.12 → 0.0.28-dev.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -61,7 +61,9 @@ export interface CanvasWorkerSceneFinishMessage {
|
|
|
61
61
|
* The messages that are passed between the canvas sandbox host and its workers.
|
|
62
62
|
* @group Graphics
|
|
63
63
|
*/
|
|
64
|
-
export type CanvasWorkerMessage<TApplicationOptions extends CanvasSandboxExpectedOptions> = CanvasWorkerMessageReconfigure<TApplicationOptions> | CanvasWorkerMessageStart<TApplicationOptions> | CanvasWorkerSceneFinishMessage
|
|
64
|
+
export type CanvasWorkerMessage<TApplicationOptions extends CanvasSandboxExpectedOptions> = CanvasWorkerMessageReconfigure<TApplicationOptions> | CanvasWorkerMessageStart<TApplicationOptions> | CanvasWorkerSceneFinishMessage | {
|
|
65
|
+
type: string;
|
|
66
|
+
};
|
|
65
67
|
/**
|
|
66
68
|
* The canvas worker handles a web worker instance in the canvas sandbox host.
|
|
67
69
|
*
|
|
@@ -75,6 +77,7 @@ export declare class CanvasWorker<TApplicationOptions extends CanvasSandboxExpec
|
|
|
75
77
|
id: string;
|
|
76
78
|
/**
|
|
77
79
|
* The canvas element that this worker should handle.
|
|
80
|
+
* This is purely for informational purposes on the host side.
|
|
78
81
|
*/
|
|
79
82
|
canvas: HTMLCanvasElement | undefined;
|
|
80
83
|
/**
|
|
@@ -175,10 +178,10 @@ export declare class CanvasWorkerInstance<TCanvas extends Canvas2DHeadless, TApp
|
|
|
175
178
|
/**
|
|
176
179
|
* Reconfigure the worker.
|
|
177
180
|
* @param id - New ID for this worker.
|
|
178
|
-
* @param
|
|
181
|
+
* @param offscreenCanvas - New canvas to render to.
|
|
179
182
|
* @param options - New application options.
|
|
180
183
|
*/
|
|
181
|
-
reconfigure(id: string,
|
|
184
|
+
reconfigure(id: string, offscreenCanvas: OffscreenCanvas, options: TApplicationOptions): void;
|
|
182
185
|
/**
|
|
183
186
|
* Start rendering.
|
|
184
187
|
* @param options - New application options.
|
|
@@ -15,6 +15,7 @@ export class CanvasWorker extends EventTarget {
|
|
|
15
15
|
id;
|
|
16
16
|
/**
|
|
17
17
|
* The canvas element that this worker should handle.
|
|
18
|
+
* This is purely for informational purposes on the host side.
|
|
18
19
|
*/
|
|
19
20
|
canvas;
|
|
20
21
|
/**
|
|
@@ -51,9 +52,8 @@ export class CanvasWorker extends EventTarget {
|
|
|
51
52
|
this.workerInstance = new Worker(source, {
|
|
52
53
|
type: "module",
|
|
53
54
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
};
|
|
55
|
+
// Translate messages to events.
|
|
56
|
+
this.workerInstance.onmessage = (message) => this.dispatchEvent(new CustomEvent(message.data.type));
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Posts a message to the worker.
|
|
@@ -128,6 +128,11 @@ export class CanvasWorkerInstance extends EventTarget {
|
|
|
128
128
|
this.id = "<unassigned>";
|
|
129
129
|
this.#Kernel = Kernel;
|
|
130
130
|
self.onmessage = (message) => {
|
|
131
|
+
const event = new CustomEvent(message.data.type);
|
|
132
|
+
this.dispatchEvent(event);
|
|
133
|
+
if (event.defaultPrevented) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
131
136
|
if (message.data.type === "start") {
|
|
132
137
|
const startMessage = message.data;
|
|
133
138
|
this.start(startMessage.options);
|
|
@@ -136,9 +141,6 @@ export class CanvasWorkerInstance extends EventTarget {
|
|
|
136
141
|
const reconfigureMessage = message.data;
|
|
137
142
|
this.reconfigure(reconfigureMessage.id, reconfigureMessage.canvas, reconfigureMessage.options);
|
|
138
143
|
}
|
|
139
|
-
else {
|
|
140
|
-
this.dispatchEvent(new CustomEvent(message.data.type));
|
|
141
|
-
}
|
|
142
144
|
};
|
|
143
145
|
}
|
|
144
146
|
/**
|
|
@@ -151,18 +153,18 @@ export class CanvasWorkerInstance extends EventTarget {
|
|
|
151
153
|
/**
|
|
152
154
|
* Reconfigure the worker.
|
|
153
155
|
* @param id - New ID for this worker.
|
|
154
|
-
* @param
|
|
156
|
+
* @param offscreenCanvas - New canvas to render to.
|
|
155
157
|
* @param options - New application options.
|
|
156
158
|
*/
|
|
157
|
-
reconfigure(id,
|
|
159
|
+
reconfigure(id, offscreenCanvas, options) {
|
|
158
160
|
this.renderLoop?.block();
|
|
159
161
|
this.id = id;
|
|
160
|
-
this.offscreenCanvas =
|
|
162
|
+
this.offscreenCanvas = offscreenCanvas;
|
|
161
163
|
this.offscreenContext = mustExist(this.offscreenCanvas.getContext("2d"));
|
|
162
164
|
this.canvas = new Canvas2DHeadless(this.offscreenCanvas, this.offscreenContext);
|
|
163
165
|
this.renderLoop = new RenderLoop(this.render, this.canvas);
|
|
164
166
|
if (isNil(this.renderKernel)) {
|
|
165
|
-
this.renderKernel = new this.#Kernel(this, canvas, options);
|
|
167
|
+
this.renderKernel = new this.#Kernel(this, this.canvas, options);
|
|
166
168
|
}
|
|
167
169
|
else {
|
|
168
170
|
this.renderKernel.reconfigure(this.canvas, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-sandbox-mp.js","sourceRoot":"","sources":["../../source/graphics/canvas-sandbox-mp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"canvas-sandbox-mp.js","sourceRoot":"","sources":["../../source/graphics/canvas-sandbox-mp.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED