@lightningjs/renderer 0.6.0 → 0.7.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 +1 -1
- package/dist/src/common/CommonTypes.d.ts +8 -0
- package/dist/src/core/CoreNode.d.ts +63 -15
- package/dist/src/core/CoreNode.js +266 -117
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +11 -0
- package/dist/src/core/CoreTextNode.js +58 -0
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +3 -1
- package/dist/src/core/CoreTextureManager.js +4 -1
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +12 -2
- package/dist/src/core/Stage.js +36 -24
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +11 -2
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/ContextSpy.d.ts +12 -0
- package/dist/src/core/lib/ContextSpy.js +38 -0
- package/dist/src/core/lib/ContextSpy.js.map +1 -0
- package/dist/src/core/lib/ImageWorker.d.ts +16 -0
- package/dist/src/core/lib/ImageWorker.js +111 -0
- package/dist/src/core/lib/ImageWorker.js.map +1 -0
- package/dist/src/core/lib/WebGlContext.d.ts +414 -0
- package/dist/src/core/lib/WebGlContext.js +640 -0
- package/dist/src/core/lib/WebGlContext.js.map +1 -0
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +500 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +784 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
- package/dist/src/core/platform.js +4 -0
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +23 -21
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +3 -2
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +9 -13
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +4 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +33 -31
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +24 -24
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +8 -5
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js +11 -13
- package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -2
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +15 -15
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +32 -12
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +14 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +15 -5
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +7 -8
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -1
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +4 -2
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +40 -13
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +6 -6
- package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +82 -50
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +4 -3
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +15 -11
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +3 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +30 -26
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +50 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +19 -0
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.js +14 -9
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -6
- package/dist/src/core/utils.js +3 -2
- package/dist/src/core/utils.js.map +1 -1
- package/dist/src/main-api/ICoreDriver.d.ts +2 -1
- package/dist/src/main-api/RendererMain.d.ts +25 -0
- package/dist/src/main-api/RendererMain.js +14 -5
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js +6 -4
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +10 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js +45 -0
- package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +10 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js +45 -0
- package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +8 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +5 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +5 -0
- package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +4 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +5 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +10 -0
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +5 -3
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
- package/dist/src/utils.d.ts +2 -1
- package/dist/src/utils.js +22 -3
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/common/CommonTypes.ts +9 -0
- package/src/core/CoreNode.ts +325 -148
- package/src/core/CoreTextNode.ts +72 -0
- package/src/core/CoreTextureManager.ts +4 -2
- package/src/core/Stage.ts +60 -34
- package/src/core/animations/CoreAnimation.ts +11 -2
- package/src/core/lib/ContextSpy.ts +41 -0
- package/src/core/lib/ImageWorker.ts +124 -0
- package/src/core/lib/WebGlContextWrapper.ts +965 -0
- package/src/core/platform.ts +5 -0
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +3 -2
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +29 -28
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +10 -14
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +34 -63
- package/src/core/renderers/webgl/WebGlCoreShader.ts +34 -25
- package/src/core/renderers/webgl/internal/RendererUtils.ts +13 -16
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +16 -15
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -7
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +3 -3
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +42 -14
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +3 -3
- package/src/core/renderers/webgl/shaders/SdfShader.ts +3 -3
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +35 -5
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +7 -8
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +9 -3
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +4 -2
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +44 -15
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +7 -7
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +115 -63
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +26 -18
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +40 -28
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +6 -1
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/{makeRenderWindow.ts → setRenderWindow.ts} +50 -21
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
- package/src/core/text-rendering/renderers/TextRenderer.ts +73 -0
- package/src/core/textures/ImageTexture.ts +17 -9
- package/src/core/utils.ts +87 -85
- package/src/env.d.ts +7 -0
- package/src/main-api/ICoreDriver.ts +2 -1
- package/src/main-api/RendererMain.ts +43 -5
- package/src/render-drivers/main/MainCoreDriver.ts +8 -5
- package/src/render-drivers/main/MainOnlyTextNode.ts +55 -1
- package/src/render-drivers/threadx/TextNodeStruct.ts +45 -0
- package/src/render-drivers/threadx/ThreadXCoreDriver.ts +10 -2
- package/src/render-drivers/threadx/ThreadXMainTextNode.ts +10 -0
- package/src/render-drivers/threadx/ThreadXRendererMessage.ts +5 -1
- package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +15 -0
- package/src/render-drivers/threadx/worker/renderer.ts +6 -4
- package/src/utils.ts +25 -4
- package/src/core/scene/Scene.ts +0 -120
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.test.ts +0 -136
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Class that keeps track of the invocations of Context methods when
|
|
21
|
+
* the `enableContextSpy` renderer option is enabled.
|
|
22
|
+
*/
|
|
23
|
+
export class ContextSpy {
|
|
24
|
+
data = {};
|
|
25
|
+
reset() {
|
|
26
|
+
this.data = {};
|
|
27
|
+
}
|
|
28
|
+
increment(name) {
|
|
29
|
+
if (!this.data[name]) {
|
|
30
|
+
this.data[name] = 0;
|
|
31
|
+
}
|
|
32
|
+
this.data[name]++;
|
|
33
|
+
}
|
|
34
|
+
getData() {
|
|
35
|
+
return { ...this.data };
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ContextSpy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextSpy.js","sourceRoot":"","sources":["../../../../src/core/lib/ContextSpy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;GAGG;AACH,MAAM,OAAO,UAAU;IACb,IAAI,GAA2B,EAAE,CAAC;IAE1C,KAAK;QACH,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACrB;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type TextureData } from '../textures/Texture.js';
|
|
2
|
+
type MessageCallback = [(value: any) => void, (reason: any) => void];
|
|
3
|
+
export declare class ImageWorkerManager {
|
|
4
|
+
isWorkerSupported: boolean;
|
|
5
|
+
imageWorkersEnabled: boolean;
|
|
6
|
+
messageManager: Record<string, MessageCallback>;
|
|
7
|
+
workers: Worker[];
|
|
8
|
+
workerIndex: number;
|
|
9
|
+
constructor(numImageWorkers: number);
|
|
10
|
+
private handleMessage;
|
|
11
|
+
private createWorkers;
|
|
12
|
+
private getNextWorker;
|
|
13
|
+
private convertUrlToAbsolute;
|
|
14
|
+
getImage(src: string, premultiplyAlpha: boolean): Promise<TextureData>;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
+
* following copyright and licenses apply:
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
import {} from '../textures/Texture.js';
|
|
20
|
+
export class ImageWorkerManager {
|
|
21
|
+
isWorkerSupported = !!self.Worker;
|
|
22
|
+
imageWorkersEnabled = true;
|
|
23
|
+
messageManager = {};
|
|
24
|
+
workers = [];
|
|
25
|
+
workerIndex = 0;
|
|
26
|
+
constructor(numImageWorkers) {
|
|
27
|
+
if (this.isWorkerSupported && numImageWorkers > 0) {
|
|
28
|
+
this.workers = this.createWorkers(numImageWorkers);
|
|
29
|
+
this.workers.forEach((worker) => {
|
|
30
|
+
worker.onmessage = this.handleMessage.bind(this);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
this.imageWorkersEnabled = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
handleMessage(event) {
|
|
38
|
+
const { src, data, error } = event.data;
|
|
39
|
+
const msg = this.messageManager[src];
|
|
40
|
+
if (msg) {
|
|
41
|
+
const [resolve, reject] = msg;
|
|
42
|
+
delete this.messageManager[src];
|
|
43
|
+
if (error) {
|
|
44
|
+
reject(new Error(error));
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
resolve({ data: data });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
createWorkers(numWorkers = 1) {
|
|
52
|
+
const workerCode = `
|
|
53
|
+
async function getImage(src, premultiplyAlpha) {
|
|
54
|
+
const response = await fetch(src);
|
|
55
|
+
const blob = await response.blob();
|
|
56
|
+
return await createImageBitmap(blob, {
|
|
57
|
+
premultiplyAlpha: premultiplyAlpha ? 'premultiply' : 'none',
|
|
58
|
+
colorSpaceConversion: 'none',
|
|
59
|
+
imageOrientation: 'none',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
self.onmessage = async (event) => {
|
|
64
|
+
const { src, premultiplyAlpha } = event.data;
|
|
65
|
+
|
|
66
|
+
try {
|
|
67
|
+
const data = await getImage(src, premultiplyAlpha);
|
|
68
|
+
self.postMessage({ src, data }, [data]);
|
|
69
|
+
} catch (error) {
|
|
70
|
+
self.postMessage({ src, error: error.message });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
`;
|
|
74
|
+
const blob = new Blob([workerCode.replace('"use strict";', '')], {
|
|
75
|
+
type: 'application/javascript',
|
|
76
|
+
});
|
|
77
|
+
const blobURL = (window.URL ? URL : webkitURL).createObjectURL(blob);
|
|
78
|
+
const workers = [];
|
|
79
|
+
for (let i = 0; i < numWorkers; i++) {
|
|
80
|
+
workers.push(new Worker(blobURL));
|
|
81
|
+
}
|
|
82
|
+
return workers;
|
|
83
|
+
}
|
|
84
|
+
getNextWorker() {
|
|
85
|
+
const worker = this.workers[this.workerIndex];
|
|
86
|
+
this.workerIndex = (this.workerIndex + 1) % this.workers.length;
|
|
87
|
+
return worker;
|
|
88
|
+
}
|
|
89
|
+
convertUrlToAbsolute(url) {
|
|
90
|
+
const absoluteUrl = new URL(url, self.location.href);
|
|
91
|
+
return absoluteUrl.href;
|
|
92
|
+
}
|
|
93
|
+
getImage(src, premultiplyAlpha) {
|
|
94
|
+
return new Promise((resolve, reject) => {
|
|
95
|
+
try {
|
|
96
|
+
if (this.workers) {
|
|
97
|
+
const absoluteSrcUrl = this.convertUrlToAbsolute(src);
|
|
98
|
+
this.messageManager[absoluteSrcUrl] = [resolve, reject];
|
|
99
|
+
this.getNextWorker().postMessage({
|
|
100
|
+
src: absoluteSrcUrl,
|
|
101
|
+
premultiplyAlpha,
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
reject(error);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=ImageWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
export declare class WebGlContext {
|
|
2
|
+
private gl;
|
|
3
|
+
private activeTextureUnit;
|
|
4
|
+
private texture2dUnits;
|
|
5
|
+
private texture2dParams;
|
|
6
|
+
private scissorEnabled;
|
|
7
|
+
private scissorX;
|
|
8
|
+
private scissorY;
|
|
9
|
+
private scissorWidth;
|
|
10
|
+
private scissorHeight;
|
|
11
|
+
private blendEnabled;
|
|
12
|
+
private blendSrcRgb;
|
|
13
|
+
private blendDstRgb;
|
|
14
|
+
private blendSrcAlpha;
|
|
15
|
+
private blendDstAlpha;
|
|
16
|
+
private boundArrayBuffer;
|
|
17
|
+
private boundElementArrayBuffer;
|
|
18
|
+
private curProgram;
|
|
19
|
+
private programUniforms;
|
|
20
|
+
constructor(gl: WebGLRenderingContext | WebGL2RenderingContext);
|
|
21
|
+
/**
|
|
22
|
+
* ```
|
|
23
|
+
* gl.activeTexture(textureUnit + gl.TEXTURE0);
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @remarks
|
|
27
|
+
* **WebGL Difference**: `textureUnit` is based from 0, not `gl.TEXTURE0`.
|
|
28
|
+
*
|
|
29
|
+
* @param textureUnit
|
|
30
|
+
*/
|
|
31
|
+
activeTexture(textureUnit: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* ```
|
|
34
|
+
* gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
35
|
+
* ```
|
|
36
|
+
* @remarks
|
|
37
|
+
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
38
|
+
*
|
|
39
|
+
* @param texture
|
|
40
|
+
*/
|
|
41
|
+
bindTexture(texture: WebGLTexture | null): void;
|
|
42
|
+
private _getActiveTexture;
|
|
43
|
+
/**
|
|
44
|
+
* ```
|
|
45
|
+
* gl.texParameteri(gl.TEXTURE_2D, pname, param)
|
|
46
|
+
* ```
|
|
47
|
+
* @remarks
|
|
48
|
+
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
49
|
+
*
|
|
50
|
+
* @param pname
|
|
51
|
+
* @param param
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
texParameteri(pname: number, param: number): void;
|
|
55
|
+
/**
|
|
56
|
+
* ```
|
|
57
|
+
* gl.texImage2D(
|
|
58
|
+
* gl.TEXTURE_2D,
|
|
59
|
+
* level,
|
|
60
|
+
* internalFormat,
|
|
61
|
+
* width,
|
|
62
|
+
* height,
|
|
63
|
+
* border,
|
|
64
|
+
* format,
|
|
65
|
+
* type,
|
|
66
|
+
* pixels,
|
|
67
|
+
* );
|
|
68
|
+
* ```
|
|
69
|
+
* @remarks
|
|
70
|
+
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
71
|
+
*
|
|
72
|
+
* @param level
|
|
73
|
+
* @param internalFormat
|
|
74
|
+
* @param width
|
|
75
|
+
* @param height
|
|
76
|
+
* @param border
|
|
77
|
+
* @param format
|
|
78
|
+
* @param type
|
|
79
|
+
* @param pixels
|
|
80
|
+
*/
|
|
81
|
+
texImage2D(level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void;
|
|
82
|
+
texImage2D(level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource): void;
|
|
83
|
+
/**
|
|
84
|
+
* ```
|
|
85
|
+
* gl.pixelStorei(pname, param);
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* @param pname
|
|
89
|
+
* @param param
|
|
90
|
+
*/
|
|
91
|
+
pixelStorei(pname: GLenum, param: GLint | GLboolean): void;
|
|
92
|
+
/**
|
|
93
|
+
* ```
|
|
94
|
+
* gl.generateMipmap(gl.TEXTURE_2D);
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* @remarks
|
|
98
|
+
* **WebGL Difference**: Bind target is always `gl.TEXTURE_2D`
|
|
99
|
+
*/
|
|
100
|
+
generateMipmap(): void;
|
|
101
|
+
/**
|
|
102
|
+
* ```
|
|
103
|
+
* gl.createTexture();
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @returns
|
|
107
|
+
*/
|
|
108
|
+
createTexture(): WebGLTexture | null;
|
|
109
|
+
/**
|
|
110
|
+
* ```
|
|
111
|
+
* gl.deleteTexture(texture);
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* @param texture
|
|
115
|
+
*/
|
|
116
|
+
deleteTexture(texture: WebGLTexture | null): void;
|
|
117
|
+
/**
|
|
118
|
+
* ```
|
|
119
|
+
* gl.viewport(x, y, width, height);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
|
|
123
|
+
/**
|
|
124
|
+
* ```
|
|
125
|
+
* gl.clearColor(red, green, blue, alpha);
|
|
126
|
+
* ```
|
|
127
|
+
*
|
|
128
|
+
* @param red
|
|
129
|
+
* @param green
|
|
130
|
+
* @param blue
|
|
131
|
+
* @param alpha
|
|
132
|
+
*/
|
|
133
|
+
clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf): void;
|
|
134
|
+
/**
|
|
135
|
+
* ```
|
|
136
|
+
* gl["enable"|"disable"](gl.SCISSOR_TEST);
|
|
137
|
+
* ```
|
|
138
|
+
* @param enable
|
|
139
|
+
*/
|
|
140
|
+
scissorTest(enable: boolean): void;
|
|
141
|
+
/**
|
|
142
|
+
* ```
|
|
143
|
+
* gl.scissor(x, y, width, height);
|
|
144
|
+
* ```
|
|
145
|
+
*
|
|
146
|
+
* @param x
|
|
147
|
+
* @param y
|
|
148
|
+
* @param width
|
|
149
|
+
* @param height
|
|
150
|
+
*/
|
|
151
|
+
scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei): void;
|
|
152
|
+
/**
|
|
153
|
+
* ```
|
|
154
|
+
* gl["enable"|"disable"](gl.BLEND);
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @param blend
|
|
158
|
+
* @returns
|
|
159
|
+
*/
|
|
160
|
+
setBlend(blend: boolean): void;
|
|
161
|
+
/**
|
|
162
|
+
* ```
|
|
163
|
+
* gl.blendFunc(src, dst);
|
|
164
|
+
* ```
|
|
165
|
+
*
|
|
166
|
+
* @param src
|
|
167
|
+
* @param dst
|
|
168
|
+
*/
|
|
169
|
+
blendFunc(src: GLenum, dst: GLenum): void;
|
|
170
|
+
/**
|
|
171
|
+
* ```
|
|
172
|
+
* createBuffer();
|
|
173
|
+
* ```
|
|
174
|
+
*
|
|
175
|
+
* @returns
|
|
176
|
+
*/
|
|
177
|
+
createBuffer(): WebGLBuffer | null;
|
|
178
|
+
/**
|
|
179
|
+
* ```
|
|
180
|
+
* gl.clear(gl.COLOR_BUFFER_BIT);
|
|
181
|
+
* ```
|
|
182
|
+
*
|
|
183
|
+
* @remarks
|
|
184
|
+
* **WebGL Difference**: Clear mask is always `gl.COLOR_BUFFER_BIT`
|
|
185
|
+
*/
|
|
186
|
+
clear(): void;
|
|
187
|
+
/**
|
|
188
|
+
* ```
|
|
189
|
+
* gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
190
|
+
* gl.bufferData(gl.ARRAY_BUFFER, data, usage);
|
|
191
|
+
* ```
|
|
192
|
+
*
|
|
193
|
+
* @remarks
|
|
194
|
+
* **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
|
|
195
|
+
*
|
|
196
|
+
* @param buffer
|
|
197
|
+
* @param data
|
|
198
|
+
* @param usage
|
|
199
|
+
*/
|
|
200
|
+
arrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
|
|
201
|
+
/**
|
|
202
|
+
* ```
|
|
203
|
+
* gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer);
|
|
204
|
+
* gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, data, usage);
|
|
205
|
+
* ```
|
|
206
|
+
* @remarks
|
|
207
|
+
* **WebGL Combo**: `gl.bindBuffer` and `gl.bufferData` are combined into one function.
|
|
208
|
+
*
|
|
209
|
+
* @param buffer
|
|
210
|
+
* @param data
|
|
211
|
+
* @param usage
|
|
212
|
+
*/
|
|
213
|
+
elementArrayBufferData(buffer: WebGLBuffer | null, data: ArrayBufferView, usage: GLenum): void;
|
|
214
|
+
/**
|
|
215
|
+
* ```
|
|
216
|
+
* gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
|
|
217
|
+
* gl.vertexAttribPointer(index, size, type, normalized, stride, offset);
|
|
218
|
+
* ```
|
|
219
|
+
*
|
|
220
|
+
* @remarks
|
|
221
|
+
* **WebGL Combo**: `gl.bindBuffer` and `gl.vertexAttribPointer` are combined into one function.
|
|
222
|
+
*
|
|
223
|
+
* @param buffer
|
|
224
|
+
* @param index
|
|
225
|
+
* @param size
|
|
226
|
+
* @param type
|
|
227
|
+
* @param normalized
|
|
228
|
+
* @param stride
|
|
229
|
+
* @param offset
|
|
230
|
+
*/
|
|
231
|
+
vertexAttribPointer(buffer: WebGLBuffer, index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr): void;
|
|
232
|
+
/**
|
|
233
|
+
* ```
|
|
234
|
+
* gl.useProgram(program);
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* @param program
|
|
238
|
+
* @returns
|
|
239
|
+
*/
|
|
240
|
+
useProgram(program: WebGLProgram | null): void;
|
|
241
|
+
setUniform<T extends keyof UniformMethodMap>(type: T, location: WebGLUniformLocation, ...args: UniformMethodMap[T]): void;
|
|
242
|
+
/**
|
|
243
|
+
* ```
|
|
244
|
+
* gl.getParameter(pname);
|
|
245
|
+
* ```
|
|
246
|
+
*
|
|
247
|
+
* @param pname
|
|
248
|
+
* @returns
|
|
249
|
+
*/
|
|
250
|
+
getParameter(pname: GLenum): any;
|
|
251
|
+
/**
|
|
252
|
+
* ```
|
|
253
|
+
* gl.drawElements(mode, count, type, offset);
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* @param mode
|
|
257
|
+
* @param count
|
|
258
|
+
* @param type
|
|
259
|
+
* @param offset
|
|
260
|
+
*/
|
|
261
|
+
drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr): void;
|
|
262
|
+
/**
|
|
263
|
+
* ```
|
|
264
|
+
* gl.drawArrays(mode, first, count);
|
|
265
|
+
* ```
|
|
266
|
+
*
|
|
267
|
+
* @param name
|
|
268
|
+
* @returns
|
|
269
|
+
*/
|
|
270
|
+
getExtension(name: string): any;
|
|
271
|
+
/**
|
|
272
|
+
* ```
|
|
273
|
+
* gl.createVertexArray();
|
|
274
|
+
* ```
|
|
275
|
+
*
|
|
276
|
+
* @returns
|
|
277
|
+
*/
|
|
278
|
+
createVertexArray(): WebGLVertexArrayObject | null;
|
|
279
|
+
/**
|
|
280
|
+
* ```
|
|
281
|
+
* gl.bindVertexArray(vertexArray);
|
|
282
|
+
* ```
|
|
283
|
+
*
|
|
284
|
+
* @param vertexArray
|
|
285
|
+
*/
|
|
286
|
+
bindVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
|
|
287
|
+
/**
|
|
288
|
+
* ```
|
|
289
|
+
* gl.getAttribLocation(program, name);
|
|
290
|
+
* ```
|
|
291
|
+
*
|
|
292
|
+
* @param program
|
|
293
|
+
* @param name
|
|
294
|
+
* @returns
|
|
295
|
+
*/
|
|
296
|
+
getAttribLocation(program: WebGLProgram, name: string): number;
|
|
297
|
+
/**
|
|
298
|
+
* ```
|
|
299
|
+
* gl.getUniformLocation(program, name);
|
|
300
|
+
* ```
|
|
301
|
+
*
|
|
302
|
+
* @param program
|
|
303
|
+
* @param name
|
|
304
|
+
* @returns
|
|
305
|
+
*/
|
|
306
|
+
getUniformLocation(program: WebGLProgram, name: string): WebGLUniformLocation | null;
|
|
307
|
+
/**
|
|
308
|
+
* ```
|
|
309
|
+
* gl.enableVertexAttribArray(index);
|
|
310
|
+
* ```
|
|
311
|
+
*
|
|
312
|
+
* @param index
|
|
313
|
+
*/
|
|
314
|
+
enableVertexAttribArray(index: number): void;
|
|
315
|
+
/**
|
|
316
|
+
* ```
|
|
317
|
+
* gl.disableVertexAttribArray(index);
|
|
318
|
+
* ```
|
|
319
|
+
*
|
|
320
|
+
* @param index
|
|
321
|
+
*/
|
|
322
|
+
disableVertexAttribArray(index: number): void;
|
|
323
|
+
/**
|
|
324
|
+
* ```
|
|
325
|
+
* gl.createShader(type);
|
|
326
|
+
* ```
|
|
327
|
+
*
|
|
328
|
+
* @param type
|
|
329
|
+
* @returns
|
|
330
|
+
*/
|
|
331
|
+
createShader(type: number): WebGLShader | null;
|
|
332
|
+
/**
|
|
333
|
+
* ```
|
|
334
|
+
* gl.compileShader(shader);
|
|
335
|
+
* ```
|
|
336
|
+
*
|
|
337
|
+
* @param shader
|
|
338
|
+
* @returns
|
|
339
|
+
*/
|
|
340
|
+
compileShader(shader: WebGLShader): void;
|
|
341
|
+
/**
|
|
342
|
+
* ```
|
|
343
|
+
* gl.attachShader(program, shader);
|
|
344
|
+
* ```
|
|
345
|
+
*
|
|
346
|
+
* @param program
|
|
347
|
+
* @param shader
|
|
348
|
+
*/
|
|
349
|
+
attachShader(program: WebGLProgram, shader: WebGLShader): void;
|
|
350
|
+
/**
|
|
351
|
+
* ```
|
|
352
|
+
* gl.linkProgram(program);
|
|
353
|
+
* ```
|
|
354
|
+
*
|
|
355
|
+
* @param program
|
|
356
|
+
*/
|
|
357
|
+
linkProgram(program: WebGLProgram): void;
|
|
358
|
+
/**
|
|
359
|
+
* ```
|
|
360
|
+
* gl.deleteProgram(shader);
|
|
361
|
+
* ```
|
|
362
|
+
*
|
|
363
|
+
* @param shader
|
|
364
|
+
*/
|
|
365
|
+
deleteProgram(shader: WebGLProgram): void;
|
|
366
|
+
/**
|
|
367
|
+
* ```
|
|
368
|
+
* gl.getShaderParameter(shader, pname);
|
|
369
|
+
* ```
|
|
370
|
+
*
|
|
371
|
+
* @param shader
|
|
372
|
+
* @param pname
|
|
373
|
+
*/
|
|
374
|
+
getShaderParameter(shader: WebGLShader, pname: GLenum): any;
|
|
375
|
+
/**
|
|
376
|
+
* ```
|
|
377
|
+
* gl.getShaderInfoLog(shader);
|
|
378
|
+
* ```
|
|
379
|
+
*
|
|
380
|
+
* @param shader
|
|
381
|
+
*/
|
|
382
|
+
getShaderInfoLog(shader: WebGLShader): string | null;
|
|
383
|
+
/**
|
|
384
|
+
* ```
|
|
385
|
+
* gl.createProgram();
|
|
386
|
+
* ```
|
|
387
|
+
*
|
|
388
|
+
* @returns
|
|
389
|
+
*/
|
|
390
|
+
createProgram(): WebGLProgram | null;
|
|
391
|
+
/**
|
|
392
|
+
* ```
|
|
393
|
+
* gl.getProgramParameter(program, pname);
|
|
394
|
+
* ```
|
|
395
|
+
*
|
|
396
|
+
* @param program
|
|
397
|
+
* @param pname
|
|
398
|
+
* @returns
|
|
399
|
+
*/
|
|
400
|
+
getProgramParameter(program: WebGLProgram, pname: GLenum): any;
|
|
401
|
+
}
|
|
402
|
+
type IsUniformMethod<MethodName, MethodType> = MethodName extends `uniform${string}` ? MethodType extends (location: WebGLUniformLocation | null, ...args: any[]) => void ? true : false : false;
|
|
403
|
+
export type UniformMethodMap = {
|
|
404
|
+
[Key in keyof WebGLRenderingContext as IsUniformMethod<Key, WebGLRenderingContext[Key]> extends true ? Key : never]: WebGLRenderingContext[Key] extends (location: WebGLUniformLocation | null, ...args: infer T) => void ? T : never;
|
|
405
|
+
};
|
|
406
|
+
/**
|
|
407
|
+
*
|
|
408
|
+
*
|
|
409
|
+
* @param a
|
|
410
|
+
* @param b
|
|
411
|
+
* @returns
|
|
412
|
+
*/
|
|
413
|
+
export declare function compareArrays<T>(a: T[], b: T[]): boolean;
|
|
414
|
+
export {};
|