@illgrenoble/webx-client 1.10.6 → 1.11.0

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.
package/README.md CHANGED
@@ -10,7 +10,9 @@ All data sent over the websocket is in binary format as an optimisation (eg avoi
10
10
 
11
11
  Two websocket tunnels are available for use: the standard websocket or a socket.io websocket. Since data is sent in binary format the standard websocket is recommended rather than socket.io for better performance.
12
12
 
13
- WebGL is used to render the Remote Desktop (using the three.js library): textures for individual X11 windows and generated and updated directly from JPEG data sent from WebX Engine running the WebX host.
13
+ WebGL is used primarily to render the Remote Desktop (using the three.js library): textures for individual X11 windows and generated and updated directly from JPEG data sent from WebX Engine running the WebX host.
14
+
15
+ If WebGL is not available on the browser (or if software rendering is used) then the client library uses a custom CanvasRender to render the window images to pure HTML Canvases. In this case window image blending is performed in a web worker.
14
16
 
15
17
  To account for varying bandwidths between the client and the remote desktop, the client can request different quality settings. For lower quality, this will for example reduce the image quality and reduce the frequency of window updates.
16
18
 
@@ -282,17 +282,7 @@ class WebXClient {
282
282
  */
283
283
  createScreenshot(type, quality) {
284
284
  return __awaiter(this, void 0, void 0, function* () {
285
- return new Promise((resolve, reject) => {
286
- try {
287
- this.display.render();
288
- this.display.renderer.domElement.toBlob((blob) => {
289
- resolve(blob);
290
- }, type, quality);
291
- }
292
- catch (error) {
293
- reject(error);
294
- }
295
- });
285
+ return this.display.createScreenshot(type, quality);
296
286
  });
297
287
  }
298
288
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WebXClient.js","sourceRoot":"","sources":["../src/WebXClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebXClient.js","sourceRoot":"","sources":["../src/WebXClient.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { WebXWindowProperties } from './WebXWindowProperties';
5
5
  import { WebXSubImage } from './WebXSubImage';
6
6
  import { WebXTextureFactory } from './WebXTextureFactory';
7
7
  import { WebXCursorFactory } from './WebXCursorFactory';
8
+ import { WebXCanvasRenderer } from '../renderer';
9
+ import { Blob } from "buffer";
8
10
  /**
9
11
  * Manages the rendering of the WebX remote desktop using WebGL.
10
12
  *
@@ -33,7 +35,7 @@ export declare class WebXDisplay {
33
35
  *
34
36
  * @returns The WebGLRenderer instance.
35
37
  */
36
- get renderer(): THREE.WebGLRenderer;
38
+ get renderer(): THREE.WebGLRenderer | WebXCanvasRenderer;
37
39
  /**
38
40
  * Gets the width of the screen.
39
41
  *
@@ -114,6 +116,12 @@ export declare class WebXDisplay {
114
116
  * Renders the display by updating the WebGL context.
115
117
  */
116
118
  render(): void;
119
+ /**
120
+ * Creates a screenshot of the current desktop with the specified image type and quality
121
+ * @param type The type of the screenshot (e.g., 'image/png').
122
+ * @param quality The quality of the screenshot (0 to 1).
123
+ */
124
+ createScreenshot(type: string, quality: number): Promise<Blob>;
117
125
  /**
118
126
  * Adds a new window to the display.
119
127
  *
@@ -223,4 +231,8 @@ export declare class WebXDisplay {
223
231
  * Binds event listeners for resizing and other interactions.
224
232
  */
225
233
  private _bindListeners;
234
+ /**
235
+ * Returns details about the availability and type of WebGL2 rendering
236
+ */
237
+ private _detectWebGL2;
226
238
  }
@@ -1,10 +1,20 @@
1
1
  "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.WebXDisplay = void 0;
4
13
  const THREE = require("three");
5
14
  const three_1 = require("three");
6
15
  const WebXWindow_1 = require("./WebXWindow");
7
16
  const WebXCursor_1 = require("./WebXCursor");
17
+ const renderer_1 = require("../renderer");
8
18
  /**
9
19
  * Manages the rendering of the WebX remote desktop using WebGL.
10
20
  *
@@ -106,11 +116,26 @@ class WebXDisplay {
106
116
  this._screen = new THREE.Object3D();
107
117
  // this._scene.add(this._screen);
108
118
  this._screen.add(this._cursor.mesh);
109
- // this._camera = new THREE.OrthographicCamera(0, screenWidth, 0, screenHeight, 0.1, 100);
110
119
  this._camera = new THREE.OrthographicCamera(0, screenWidth, 0, screenHeight, 0.1, 10000);
111
120
  this._camera.position.z = 1000;
112
121
  this._camera.lookAt(new three_1.Vector3(0, 0, 0));
113
- this._renderer = new THREE.WebGLRenderer();
122
+ const webglInfo = this._detectWebGL2();
123
+ const url = new URL(window.location.href);
124
+ const params = url.searchParams;
125
+ const forceCanvas = params.get("webx-canvas") === 'true';
126
+ if (webglInfo.available && !webglInfo.isSoftware && !forceCanvas) {
127
+ this._renderer = new THREE.WebGLRenderer();
128
+ }
129
+ else {
130
+ console.log(`WebGL2 Info: available = ${webglInfo.available}, isSoftware = ${webglInfo.isSoftware}, vendor = ${webglInfo.vendor}, renderer = ${webglInfo.renderer}`);
131
+ if (forceCanvas) {
132
+ console.log(`Canvas Renderer enabled through request param`);
133
+ }
134
+ else {
135
+ console.log(`Falling back to Canvas Renderer`);
136
+ }
137
+ this._renderer = new renderer_1.WebXCanvasRenderer();
138
+ }
114
139
  this._renderer.setSize(screenWidth, screenHeight, false);
115
140
  const backgroundColor = window.getComputedStyle(this._containerElement).backgroundColor;
116
141
  this._renderer.setClearColor(backgroundColor);
@@ -172,6 +197,32 @@ class WebXDisplay {
172
197
  render() {
173
198
  this._renderer.render(this._scene, this._camera);
174
199
  }
200
+ /**
201
+ * Creates a screenshot of the current desktop with the specified image type and quality
202
+ * @param type The type of the screenshot (e.g., 'image/png').
203
+ * @param quality The quality of the screenshot (0 to 1).
204
+ */
205
+ createScreenshot(type, quality) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ if (this._renderer instanceof renderer_1.WebXCanvasRenderer) {
208
+ return this._renderer.createScreenshot(type, quality);
209
+ }
210
+ else {
211
+ const renderer = this._renderer;
212
+ return new Promise((resolve, reject) => {
213
+ try {
214
+ this.render();
215
+ renderer.domElement.toBlob((blob) => {
216
+ resolve(blob);
217
+ }, type, quality);
218
+ }
219
+ catch (error) {
220
+ reject(error);
221
+ }
222
+ });
223
+ }
224
+ });
225
+ }
175
226
  /**
176
227
  * Adds a new window to the display.
177
228
  *
@@ -179,7 +230,6 @@ class WebXDisplay {
179
230
  */
180
231
  addWindow(window) {
181
232
  if (this._windows.find(existingWindow => existingWindow.id === window.id) == null) {
182
- // console.log("Adding window ", window.id)
183
233
  this._windows.push(window);
184
234
  this._screen.add(window.mesh);
185
235
  this._sceneDirty = true;
@@ -192,7 +242,6 @@ class WebXDisplay {
192
242
  */
193
243
  removeWindow(window) {
194
244
  if (this._windows.find(existingWindow => existingWindow.id === window.id) != null) {
195
- // console.log("Removing window ", window.id)
196
245
  this._windows = this._windows.filter(existingWindow => existingWindow.id !== window.id);
197
246
  window.dispose();
198
247
  this._screen.remove(window.mesh);
@@ -289,11 +338,16 @@ class WebXDisplay {
289
338
  const alphaMap = window.alphaMap;
290
339
  for (let i = 0; i < subImages.length; i++) {
291
340
  const subImage = subImages[i];
292
- if (colorMap && subImage.colorMap) {
293
- this._renderer.copyTextureToTexture(subImage.colorMap, colorMap, null, new THREE.Vector2(subImage.x, subImage.y));
341
+ if (this._renderer instanceof renderer_1.WebXCanvasRenderer) {
342
+ this._renderer.updateWindowRegion(window.mesh.id, subImage.colorMap, colorMap, subImage.alphaMap, alphaMap, subImage.width, subImage.height, new THREE.Vector2(subImage.x, subImage.y));
294
343
  }
295
- if (alphaMap && subImage.alphaMap) {
296
- this._renderer.copyTextureToTexture(subImage.alphaMap, alphaMap, null, new THREE.Vector2(subImage.x, subImage.y));
344
+ else {
345
+ if (colorMap && subImage.colorMap) {
346
+ this._renderer.copyTextureToTexture(subImage.colorMap, colorMap, null, new THREE.Vector2(subImage.x, subImage.y));
347
+ }
348
+ if (alphaMap && subImage.alphaMap) {
349
+ this._renderer.copyTextureToTexture(subImage.alphaMap, alphaMap, null, new THREE.Vector2(subImage.x, subImage.y));
350
+ }
297
351
  }
298
352
  }
299
353
  window.updateTexture(window.depth, colorMap, alphaMap, false);
@@ -420,6 +474,28 @@ class WebXDisplay {
420
474
  _bindListeners() {
421
475
  this.resize = this.resize.bind(this);
422
476
  }
477
+ /**
478
+ * Returns details about the availability and type of WebGL2 rendering
479
+ */
480
+ _detectWebGL2() {
481
+ const canvas = document.createElement("canvas");
482
+ const gl = canvas.getContext("webgl2");
483
+ if (!gl) {
484
+ return { available: false };
485
+ }
486
+ const renderer = gl.getParameter(gl.RENDERER);
487
+ const vendor = gl.getParameter(gl.VENDOR);
488
+ let unmaskedRenderer = null;
489
+ let unmaskedVendor = null;
490
+ const ext = gl.getExtension("WEBGL_debug_renderer_info");
491
+ if (ext) {
492
+ unmaskedRenderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);
493
+ unmaskedVendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);
494
+ }
495
+ const rendererStr = (unmaskedRenderer || renderer || "").toLowerCase();
496
+ const isSoftware = /swiftshader|llvmpipe|basic render|software/i.test(rendererStr);
497
+ return { available: true, vendor: unmaskedVendor || vendor, renderer: unmaskedRenderer || renderer, isSoftware };
498
+ }
423
499
  }
424
500
  exports.WebXDisplay = WebXDisplay;
425
501
  //# sourceMappingURL=WebXDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WebXDisplay.js","sourceRoot":"","sources":["../../src/display/WebXDisplay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebXDisplay.js","sourceRoot":"","sources":["../../src/display/WebXDisplay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The `WebXAlphaStencilBlender` class handles blending of alpha and stencil data
3
+ * for rendering purposes. It uses a Web Worker for asynchronous processing.
4
+ */
5
+ export declare class WebXAlphaStencilBlender {
6
+ private readonly _worker;
7
+ private _pending;
8
+ private _nextId;
9
+ /**
10
+ * Initializes the `WebXAlphaStencilBlender` and sets up the Web Worker (if web-workers present on the client).
11
+ * The web worker is initialised from the worker/blending functions above. Each blending request is assigned an id.
12
+ * The data is passed to the web worker along with the Id. The web worker returns the Id with blended data so that the
13
+ * calling promise can be resolved.
14
+ */
15
+ constructor();
16
+ /**
17
+ * Blends alpha and stencil data asynchronously.
18
+ * Main entry point to blend the different buffers. If a web-worker is available on the client then the data is prepared to transfer
19
+ * to the worker. Otherwise the standard blending function is called immediately.
20
+ * @param colorImageData - The color image data.
21
+ * @param alphaImageData - The alpha image data.
22
+ * @param stencilImageData - The stencil image data.
23
+ * @returns A promise that resolves to the blended `ImageData`.
24
+ */
25
+ blendAlphaAndStencil(colorImageData: ImageData, alphaImageData: ImageData, stencilImageData: ImageData): Promise<ImageData>;
26
+ /**
27
+ * Terminates the Web Worker and clears pending tasks.
28
+ */
29
+ terminate(): void;
30
+ }
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.WebXAlphaStencilBlender = void 0;
13
+ /**
14
+ * The Alpha and stencil buffer blending function. The alpha buffer contains alpha data in the
15
+ * green channel. The stencil buffer is a black and white image: only pixels with a stencil value > 127 are to be rendered
16
+ * @param colorData the color data array
17
+ * @param alphaData the alpha data array
18
+ * @param stencilData the stencil data array
19
+ */
20
+ function alphaAndStencilBlend(colorData, alphaData, stencilData) {
21
+ if (alphaData && stencilData) {
22
+ for (let i = 0; i < colorData.length; i += 4) {
23
+ if (stencilData[i] < 128) {
24
+ colorData[i + 3] = 0;
25
+ }
26
+ else {
27
+ colorData[i + 3] = alphaData[i + 1];
28
+ }
29
+ }
30
+ }
31
+ else if (alphaData) {
32
+ for (let i = 0; i < colorData.length; i += 4) {
33
+ colorData[i + 3] = alphaData[i + 1];
34
+ }
35
+ }
36
+ else if (stencilData) {
37
+ for (let i = 0; i < colorData.length; i += 4) {
38
+ colorData[i + 3] = stencilData[i] < 128 ? 0 : 255;
39
+ }
40
+ }
41
+ }
42
+ /**
43
+ * The entry point for the web worker. Receives messages with data for color, alpha and stencil data and calls the blending
44
+ * function.
45
+ */
46
+ function alphaWorkerFunc() {
47
+ self.onmessage = (e) => {
48
+ const { id, colorBuffer, alphaBuffer, stencilBuffer, width, height } = e.data;
49
+ const colorData = new Uint8ClampedArray(colorBuffer);
50
+ const alphaData = alphaBuffer ? new Uint8ClampedArray(alphaBuffer) : null;
51
+ const stencilData = stencilBuffer ? new Uint8ClampedArray(stencilBuffer) : null;
52
+ alphaAndStencilBlend(colorData, alphaData, stencilData);
53
+ // @ts-ignore
54
+ self.postMessage({ id, colorBuffer: colorData.buffer, width, height }, [colorData.buffer]);
55
+ };
56
+ }
57
+ /**
58
+ * The `WebXAlphaStencilBlender` class handles blending of alpha and stencil data
59
+ * for rendering purposes. It uses a Web Worker for asynchronous processing.
60
+ */
61
+ class WebXAlphaStencilBlender {
62
+ /**
63
+ * Initializes the `WebXAlphaStencilBlender` and sets up the Web Worker (if web-workers present on the client).
64
+ * The web worker is initialised from the worker/blending functions above. Each blending request is assigned an id.
65
+ * The data is passed to the web worker along with the Id. The web worker returns the Id with blended data so that the
66
+ * calling promise can be resolved.
67
+ */
68
+ constructor() {
69
+ this._pending = new Map();
70
+ this._nextId = 1;
71
+ if (typeof Worker !== 'undefined') {
72
+ const blob = new Blob([alphaAndStencilBlend.toString(), '(', alphaWorkerFunc.toString(), ')()'], { type: 'application/javascript' });
73
+ const blobUrl = URL.createObjectURL(blob);
74
+ this._worker = new Worker(blobUrl);
75
+ URL.revokeObjectURL(blobUrl);
76
+ this._worker.onmessage = (e) => {
77
+ const { id, colorBuffer, width, height } = e.data;
78
+ const callback = this._pending.get(id);
79
+ if (!callback)
80
+ return;
81
+ this._pending.delete(id);
82
+ // Recreate ImageData from transferred buffer
83
+ const blendedData = new Uint8ClampedArray(colorBuffer);
84
+ const blendedImageData = new ImageData(blendedData, width, height);
85
+ callback(blendedImageData);
86
+ };
87
+ }
88
+ }
89
+ /**
90
+ * Blends alpha and stencil data asynchronously.
91
+ * Main entry point to blend the different buffers. If a web-worker is available on the client then the data is prepared to transfer
92
+ * to the worker. Otherwise the standard blending function is called immediately.
93
+ * @param colorImageData - The color image data.
94
+ * @param alphaImageData - The alpha image data.
95
+ * @param stencilImageData - The stencil image data.
96
+ * @returns A promise that resolves to the blended `ImageData`.
97
+ */
98
+ blendAlphaAndStencil(colorImageData, alphaImageData, stencilImageData) {
99
+ return __awaiter(this, void 0, void 0, function* () {
100
+ return new Promise((resolve) => {
101
+ if (this._worker) {
102
+ const id = this._nextId++;
103
+ this._pending.set(id, resolve);
104
+ const width = colorImageData.width;
105
+ const height = colorImageData.height;
106
+ const colorBuffer = colorImageData.data.buffer;
107
+ let alphaBuffer = null;
108
+ let stencilBuffer = null;
109
+ const transfers = [colorBuffer];
110
+ if (alphaImageData) {
111
+ alphaBuffer = alphaImageData.data.buffer;
112
+ transfers.push(alphaBuffer);
113
+ }
114
+ if (stencilImageData) {
115
+ stencilBuffer = stencilImageData.data.buffer;
116
+ transfers.push(stencilBuffer);
117
+ }
118
+ this._worker.postMessage({ id, colorBuffer, alphaBuffer, stencilBuffer, width, height }, transfers);
119
+ }
120
+ else {
121
+ alphaAndStencilBlend(colorImageData.data, alphaImageData === null || alphaImageData === void 0 ? void 0 : alphaImageData.data, stencilImageData === null || stencilImageData === void 0 ? void 0 : stencilImageData.data);
122
+ resolve(colorImageData);
123
+ }
124
+ });
125
+ });
126
+ }
127
+ /**
128
+ * Terminates the Web Worker and clears pending tasks.
129
+ */
130
+ terminate() {
131
+ this._worker.terminate();
132
+ this._pending.clear();
133
+ }
134
+ }
135
+ exports.WebXAlphaStencilBlender = WebXAlphaStencilBlender;
136
+ //# sourceMappingURL=WebXAlphaStencilBlender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebXAlphaStencilBlender.js","sourceRoot":"","sources":["../../src/renderer/WebXAlphaStencilBlender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ declare function alphaAndStencilBlend(colorData: any, alphaData: any, stencilData: any): void;
@@ -0,0 +1,33 @@
1
+ function alphaAndStencilBlend(colorData, alphaData, stencilData) {
2
+ // Blend alpha (green channel -> alpha)
3
+ if (alphaData && stencilData) {
4
+ for (let i = 0; i < colorData.length; i += 4) {
5
+ if (stencilData[i] < 128) {
6
+ colorData[i + 3] = 0;
7
+ }
8
+ else {
9
+ colorData[i + 3] = alphaData[i + 1];
10
+ }
11
+ }
12
+ }
13
+ else if (alphaData) {
14
+ for (let i = 0; i < colorData.length; i += 4) {
15
+ colorData[i + 3] = alphaData[i + 1];
16
+ }
17
+ }
18
+ else if (stencilData) {
19
+ for (let i = 0; i < colorData.length; i += 4) {
20
+ colorData[i + 3] = stencilData[i] < 128 ? 0 : 255;
21
+ }
22
+ }
23
+ }
24
+ onmessage = (e) => {
25
+ const { id, colorBuffer, alphaBuffer, stencilBuffer, width, height } = e.data;
26
+ const colorData = new Uint8ClampedArray(colorBuffer);
27
+ const alphaData = alphaBuffer ? new Uint8ClampedArray(alphaBuffer) : null;
28
+ const stencilData = stencilBuffer ? new Uint8ClampedArray(stencilBuffer) : null;
29
+ alphaAndStencilBlend(colorData, alphaData, stencilData);
30
+ // @ts-ignore
31
+ self.postMessage({ id, colorBuffer: colorData.buffer, width, height }, [colorData.buffer]);
32
+ };
33
+ //# sourceMappingURL=WebXBlenderWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebXBlenderWorker.js","sourceRoot":"","sources":["../../src/renderer/WebXBlenderWorker.ts"],"names":[],"mappings":"AAAA,SAAS,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW;IAC7D,uCAAuC;IACvC,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;gBACzB,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAEvB,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;IAEH,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;IAE9E,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1E,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhF,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAExD,aAAa;IACb,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7F,CAAC,CAAA"}
@@ -0,0 +1,91 @@
1
+ import { Camera, ColorRepresentation, Object3D, Texture, Vector2 } from 'three';
2
+ import { Blob } from "buffer";
3
+ /**
4
+ * The `WebXCanvasRenderer` class is responsible for rendering a desktop-like environment
5
+ * using HTML elements. It integrates with the Three.js library using 3D objects (meshes, materials, textures)
6
+ * to hold the graphical data used to render the windows.
7
+ */
8
+ export declare class WebXCanvasRenderer {
9
+ private _width;
10
+ private _height;
11
+ private _desktopContainer;
12
+ private _desktop;
13
+ private _clearColor;
14
+ private readonly _alphaStencilBlender;
15
+ private _windowCanvases;
16
+ /**
17
+ * Gets the root DOM element of the renderer.
18
+ * @returns The root DOM element.
19
+ */
20
+ get domElement(): HTMLElement;
21
+ /**
22
+ * Initializes the `WebXCanvasRenderer` by creating the main desktop container
23
+ * and initializing the alpha stencil blender.
24
+ */
25
+ constructor();
26
+ /**
27
+ * Sets the size of the desktop container.
28
+ * @param width - The width of the desktop in pixels.
29
+ * @param height - The height of the desktop in pixels.
30
+ * @param unused - An optional unused parameter.
31
+ */
32
+ setSize(width: number, height: number, unused?: boolean): void;
33
+ /**
34
+ * Sets the background color of the desktop.
35
+ * @param color - The color to set, represented as a `ColorRepresentation`.
36
+ */
37
+ setClearColor(color: ColorRepresentation): void;
38
+ /**
39
+ * Renders the scene: updates the window element positions, sizes and z-orders and updates
40
+ * the graphical content of the windows. Any windows that are no longer in the scene have their
41
+ * graphical elements removed from the dom.
42
+ * @param scene - The root `Object3D` containing the scene to render.
43
+ * @param camera - The `Camera` used for rendering (currently unused).
44
+ */
45
+ render(scene: Object3D, camera: Camera): void;
46
+ /**
47
+ * Generates a screenshot of the current windows. Each window canvas is rendered onto a global
48
+ * desktop canvas. The main canvas is then converted into a blob with the specified image type and quality
49
+ * @param type The type of the screenshot (e.g., 'image/png').
50
+ * @param quality The quality of the screenshot (0 to 1).
51
+ */
52
+ createScreenshot(type: string, quality: number): Promise<Blob>;
53
+ /**
54
+ * Disposes of the renderer by removing all window canvases and terminating
55
+ * the alpha stencil blender (and its web worker if present).
56
+ */
57
+ dispose(): void;
58
+ /**
59
+ * Updates a specific region of a window canvas from the color and alpha data sent from the server. The updates are stored in the window
60
+ * and handled at the next render request.
61
+ * @param meshId - The ID of the mesh associated with the window canvas.
62
+ * @param srcColorMap - The source color texture.
63
+ * @param dstColorMap - The destination color texture.
64
+ * @param srcAlphaMap - The source alpha texture.
65
+ * @param dstAlphaMap - The destination alpha texture.
66
+ * @param width - The width of the region to update.
67
+ * @param height - The height of the region to update.
68
+ * @param dstPosition - The destination position of the region.
69
+ */
70
+ updateWindowRegion(meshId: number, srcColorMap: Texture, dstColorMap: Texture, srcAlphaMap: Texture, dstAlphaMap: Texture, width: number, height: number, dstPosition: Vector2): void;
71
+ /**
72
+ * Creates the main desktop container element and initializes its styles.
73
+ */
74
+ private createMainElement;
75
+ /**
76
+ * Creates a new window canvas for the given mesh and adds it to the desktop.
77
+ * @param mesh - The `Mesh` object representing the window.
78
+ */
79
+ private createWindowCanvas;
80
+ /**
81
+ * Removes a window canvas from the desktop and cleans up its resources.
82
+ * @param windowCanvas - The `WebXWindowCanvas` to remove.
83
+ */
84
+ private removeWindowCanvas;
85
+ /**
86
+ * Creates an HTML element with the specified namespace.
87
+ * @param name - The name of the element to create.
88
+ * @returns The created `HTMLElement`.
89
+ */
90
+ private createElementNS;
91
+ }