@lightningjs/renderer 2.20.3 → 2.20.4
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/dist/exports/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/src/core/Autosizer.d.ts +35 -0
- package/dist/src/core/Autosizer.js +198 -0
- package/dist/src/core/Autosizer.js.map +1 -0
- package/dist/src/core/lib/collectionUtils.d.ts +5 -0
- package/dist/src/core/lib/collectionUtils.js +100 -0
- package/dist/src/core/lib/collectionUtils.js.map +1 -0
- package/dist/src/core/lib/colorCache.d.ts +1 -0
- package/dist/src/core/lib/colorCache.js +19 -0
- package/dist/src/core/lib/colorCache.js.map +1 -0
- package/dist/src/core/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/platforms/Platform.d.ts +42 -0
- package/dist/src/core/platforms/Platform.js +22 -0
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
- package/dist/src/core/platforms/web/WebPlatform.js +87 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +65 -0
- package/dist/src/core/renderers/CoreShaderNode.js +115 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +35 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +185 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +58 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +17 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +128 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +14 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +63 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +22 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +67 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +67 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +273 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +45 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +127 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +576 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +38 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +230 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
- package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +33 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/utils.d.ts +5 -0
- package/dist/src/core/shaders/utils.js +41 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +110 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +85 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +100 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +97 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +88 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +141 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +163 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +85 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +30 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +106 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +391 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +311 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
- package/dist/src/core/text-rendering/TextRenderer.js +20 -0
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +84 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +1 -2
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
|
2
|
+
export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
|
|
3
|
+
export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
|
|
4
|
+
export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
|
|
5
|
+
export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
|
|
6
|
+
export { Border } from '../src/core/shaders/canvas/Border.js';
|
|
7
|
+
export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
|
|
8
|
+
export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
|
|
9
|
+
export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
|
|
10
|
+
export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
|
18
|
+
export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
|
|
19
|
+
export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
|
|
20
|
+
export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
|
|
21
|
+
export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
|
|
22
|
+
export { Border } from '../src/core/shaders/canvas/Border.js';
|
|
23
|
+
export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
|
|
24
|
+
export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
|
|
25
|
+
export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
|
|
26
|
+
export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
|
|
27
|
+
//# sourceMappingURL=canvas-shaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas-shaders.js","sourceRoot":"","sources":["../../exports/canvas-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,kDAAkD,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
2
|
+
export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
|
|
3
|
+
export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
|
|
4
|
+
export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
|
|
5
|
+
export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
|
|
6
|
+
export { Border } from '../src/core/shaders/webgl/Border.js';
|
|
7
|
+
export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
|
|
8
|
+
export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
|
|
9
|
+
export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
|
|
10
|
+
export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
|
|
11
|
+
export { Default } from '../src/core/shaders/webgl/Default.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
+
*/
|
|
17
|
+
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
18
|
+
export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
|
|
19
|
+
export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
|
|
20
|
+
export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
|
|
21
|
+
export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
|
|
22
|
+
export { Border } from '../src/core/shaders/webgl/Border.js';
|
|
23
|
+
export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
|
|
24
|
+
export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
|
|
25
|
+
export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
|
|
26
|
+
export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
|
|
27
|
+
export { Default } from '../src/core/shaders/webgl/Default.js';
|
|
28
|
+
//# sourceMappingURL=webgl-shaders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-shaders.js","sourceRoot":"","sources":["../../exports/webgl-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,cAAc,gDAAgD,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type CoreNode } from './CoreNode.js';
|
|
2
|
+
import type { Coord } from './lib/utils.js';
|
|
3
|
+
export declare enum AutosizeMode {
|
|
4
|
+
Children = 0,
|
|
5
|
+
Texture = 1
|
|
6
|
+
}
|
|
7
|
+
export declare enum AutosizeUpdateType {
|
|
8
|
+
None = 0,
|
|
9
|
+
Filtered = 1,
|
|
10
|
+
All = 2
|
|
11
|
+
}
|
|
12
|
+
export declare class Autosizer {
|
|
13
|
+
node: CoreNode;
|
|
14
|
+
id: number;
|
|
15
|
+
mode: AutosizeMode;
|
|
16
|
+
updateType: AutosizeUpdateType;
|
|
17
|
+
lastWidth: number;
|
|
18
|
+
lastHeight: number;
|
|
19
|
+
lastHasChanged: boolean;
|
|
20
|
+
flaggedChildren: number[];
|
|
21
|
+
childMap: Map<number, CoreNode>;
|
|
22
|
+
minX: number;
|
|
23
|
+
minY: number;
|
|
24
|
+
maxX: number;
|
|
25
|
+
maxY: number;
|
|
26
|
+
corners: [Coord, Coord, Coord, Coord];
|
|
27
|
+
constructor(node: CoreNode);
|
|
28
|
+
attach(node: CoreNode): void;
|
|
29
|
+
detach(node: CoreNode): void;
|
|
30
|
+
patch(id: number): void;
|
|
31
|
+
setUpdateType(updateType: AutosizeUpdateType): void;
|
|
32
|
+
setMode(mode: AutosizeMode): void;
|
|
33
|
+
update(): void;
|
|
34
|
+
destroy(): void;
|
|
35
|
+
}
|
|
@@ -0,0 +1,198 @@
|
|
|
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 { UpdateType } from './CoreNode.js';
|
|
20
|
+
export var AutosizeMode;
|
|
21
|
+
(function (AutosizeMode) {
|
|
22
|
+
AutosizeMode[AutosizeMode["Children"] = 0] = "Children";
|
|
23
|
+
AutosizeMode[AutosizeMode["Texture"] = 1] = "Texture";
|
|
24
|
+
})(AutosizeMode || (AutosizeMode = {}));
|
|
25
|
+
export var AutosizeUpdateType;
|
|
26
|
+
(function (AutosizeUpdateType) {
|
|
27
|
+
AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
|
|
28
|
+
AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
|
|
29
|
+
AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
|
|
30
|
+
})(AutosizeUpdateType || (AutosizeUpdateType = {}));
|
|
31
|
+
const applyDimensions = (node, w, h) => {
|
|
32
|
+
node.props.w = w;
|
|
33
|
+
node.props.h = h;
|
|
34
|
+
node.setUpdateType(UpdateType.Local);
|
|
35
|
+
};
|
|
36
|
+
const getFilteredChildren = (children, childMap) => {
|
|
37
|
+
const filtered = [];
|
|
38
|
+
while (children.length > 0) {
|
|
39
|
+
const id = children.pop();
|
|
40
|
+
const child = childMap.get(id);
|
|
41
|
+
filtered.push(child);
|
|
42
|
+
}
|
|
43
|
+
return filtered;
|
|
44
|
+
};
|
|
45
|
+
let autosizerId = 0;
|
|
46
|
+
export class Autosizer {
|
|
47
|
+
node;
|
|
48
|
+
id = autosizerId++;
|
|
49
|
+
mode = AutosizeMode.Children;
|
|
50
|
+
updateType = AutosizeUpdateType.All;
|
|
51
|
+
lastWidth = 0;
|
|
52
|
+
lastHeight = 0;
|
|
53
|
+
lastHasChanged = false;
|
|
54
|
+
flaggedChildren = [];
|
|
55
|
+
childMap = new Map();
|
|
56
|
+
minX = Infinity;
|
|
57
|
+
minY = Infinity;
|
|
58
|
+
maxX = -Infinity;
|
|
59
|
+
maxY = -Infinity;
|
|
60
|
+
corners = [
|
|
61
|
+
{ x: 0, y: 0 },
|
|
62
|
+
{ x: 0, y: 0 },
|
|
63
|
+
{ x: 0, y: 0 },
|
|
64
|
+
{ x: 0, y: 0 },
|
|
65
|
+
];
|
|
66
|
+
constructor(node) {
|
|
67
|
+
this.node = node;
|
|
68
|
+
if (node.texture !== null) {
|
|
69
|
+
this.mode = AutosizeMode.Texture;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
attach(node) {
|
|
73
|
+
this.childMap.set(node.id, node);
|
|
74
|
+
node.parentAutosizer = this;
|
|
75
|
+
//bubble down to attach to grandchildren
|
|
76
|
+
if (node.children.length > 0 && node.autosizer === null) {
|
|
77
|
+
const children = node.children;
|
|
78
|
+
for (let i = 0; i < children.length; i++) {
|
|
79
|
+
this.attach(children[i]);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
detach(node) {
|
|
84
|
+
if (this.childMap.delete(node.id) === true) {
|
|
85
|
+
node.parentAutosizer = null;
|
|
86
|
+
if (node.children.length > 0 && node.autosizer === null) {
|
|
87
|
+
const children = node.children;
|
|
88
|
+
for (let i = 0; i < children.length; i++) {
|
|
89
|
+
this.detach(children[i]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//detached a child, need full update
|
|
93
|
+
this.setUpdateType(AutosizeUpdateType.All);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
patch(id) {
|
|
97
|
+
const entry = this.childMap.get(id);
|
|
98
|
+
if (entry === undefined) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this.flaggedChildren.push(id);
|
|
102
|
+
this.setUpdateType(AutosizeUpdateType.Filtered);
|
|
103
|
+
}
|
|
104
|
+
setUpdateType(updateType) {
|
|
105
|
+
this.updateType |= updateType;
|
|
106
|
+
if (this.node.destroyed === false) {
|
|
107
|
+
this.node.setUpdateType(UpdateType.Autosize);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
setMode(mode) {
|
|
111
|
+
this.mode = mode;
|
|
112
|
+
this.setUpdateType(AutosizeUpdateType.All);
|
|
113
|
+
}
|
|
114
|
+
update() {
|
|
115
|
+
const node = this.node;
|
|
116
|
+
if (this.mode === AutosizeMode.Texture &&
|
|
117
|
+
node.texture !== null &&
|
|
118
|
+
node.texture.dimensions !== null) {
|
|
119
|
+
const { w, h } = node.texture.dimensions;
|
|
120
|
+
if (w !== node.w || h !== node.h) {
|
|
121
|
+
applyDimensions(node, w, h);
|
|
122
|
+
}
|
|
123
|
+
this.lastWidth = w;
|
|
124
|
+
this.lastHeight = h;
|
|
125
|
+
this.updateType = AutosizeUpdateType.None;
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
let filtered = this.updateType === AutosizeUpdateType.Filtered
|
|
129
|
+
? getFilteredChildren(this.flaggedChildren, this.childMap)
|
|
130
|
+
: Array.from(this.childMap.values());
|
|
131
|
+
if (filtered.length === 0) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const corners = this.corners;
|
|
135
|
+
let minX = this.minX;
|
|
136
|
+
let minY = this.minY;
|
|
137
|
+
let maxX = this.maxX;
|
|
138
|
+
let maxY = this.maxY;
|
|
139
|
+
for (let i = 0; i < filtered.length; i++) {
|
|
140
|
+
const child = filtered[i];
|
|
141
|
+
if (child.isRenderable === false || child.localTransform === undefined) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const { tx, ty, ta, tb, tc, td } = child.localTransform;
|
|
145
|
+
const w = child.props.w;
|
|
146
|
+
const h = child.props.h;
|
|
147
|
+
const childMinX = tx;
|
|
148
|
+
const childMaxX = tx + w * ta;
|
|
149
|
+
const childMinY = ty;
|
|
150
|
+
const childMaxY = ty + h * td;
|
|
151
|
+
corners[0].x = childMinX;
|
|
152
|
+
corners[0].y = childMinY;
|
|
153
|
+
corners[1].x = childMaxX;
|
|
154
|
+
//no rotation/scale
|
|
155
|
+
if (tb === 0 && tc === 0) {
|
|
156
|
+
corners[1].y = childMinY;
|
|
157
|
+
corners[2].x = childMaxX;
|
|
158
|
+
corners[2].y = childMaxY;
|
|
159
|
+
corners[3].x = childMinX;
|
|
160
|
+
corners[3].y = childMaxY;
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
corners[1].y = tx + w * tc;
|
|
164
|
+
corners[2].x = tx + w * ta + h * tb;
|
|
165
|
+
corners[2].y = ty + w * tc + h * td;
|
|
166
|
+
corners[3].x = tx + h * tb;
|
|
167
|
+
corners[3].y = ty + h * td;
|
|
168
|
+
}
|
|
169
|
+
for (let j = 0; j < 4; j++) {
|
|
170
|
+
const corner = corners[j];
|
|
171
|
+
if (corner.x < minX)
|
|
172
|
+
minX = corner.x;
|
|
173
|
+
if (corner.y < minY)
|
|
174
|
+
minY = corner.y;
|
|
175
|
+
if (corner.x > maxX)
|
|
176
|
+
maxX = corner.x;
|
|
177
|
+
if (corner.y > maxY)
|
|
178
|
+
maxY = corner.y;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
this.updateType = AutosizeUpdateType.None;
|
|
182
|
+
const newWidth = maxX > 0 ? maxX : 0;
|
|
183
|
+
const newHeight = maxY > 0 ? maxY : 0;
|
|
184
|
+
applyDimensions(node, newWidth, newHeight);
|
|
185
|
+
this.lastWidth = newWidth;
|
|
186
|
+
this.lastHeight = newHeight;
|
|
187
|
+
}
|
|
188
|
+
destroy() {
|
|
189
|
+
if (this.childMap.size > 0) {
|
|
190
|
+
for (const child of this.childMap.values()) {
|
|
191
|
+
child.parentAutosizer = null;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
this.childMap.clear();
|
|
195
|
+
this.flaggedChildren.length = 0;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=Autosizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Autosizer.js","sourceRoot":"","sources":["../../../src/core/Autosizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CoreNode } from '../CoreNode.js';
|
|
2
|
+
export declare const bucketSortByZIndex: (nodes: CoreNode[], min: number) => void;
|
|
3
|
+
export declare const incrementalRepositionByZIndex: (changedNodes: CoreNode[], nodes: CoreNode[]) => void;
|
|
4
|
+
export declare const findChildIndexById: (node: CoreNode, children: CoreNode[]) => number;
|
|
5
|
+
export declare const removeChild: (node: CoreNode, children: CoreNode[]) => void;
|
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
//Bucket sort implementation for sorting CoreNode arrays by zIndex
|
|
20
|
+
export const bucketSortByZIndex = (nodes, min) => {
|
|
21
|
+
const buckets = [];
|
|
22
|
+
const bucketIndices = [];
|
|
23
|
+
//distribute nodes into buckets
|
|
24
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
25
|
+
const node = nodes[i];
|
|
26
|
+
const index = node.props.zIndex - min;
|
|
27
|
+
//create bucket if it doesn't exist
|
|
28
|
+
if (buckets[index] === undefined) {
|
|
29
|
+
buckets[index] = [];
|
|
30
|
+
bucketIndices.push(index);
|
|
31
|
+
}
|
|
32
|
+
buckets[index].push(node);
|
|
33
|
+
}
|
|
34
|
+
//sort each bucket using insertion sort
|
|
35
|
+
for (let i = 1; i < bucketIndices.length; i++) {
|
|
36
|
+
const key = bucketIndices[i];
|
|
37
|
+
let j = i - 1;
|
|
38
|
+
while (j >= 0 && bucketIndices[j] > key) {
|
|
39
|
+
bucketIndices[j + 1] = bucketIndices[j];
|
|
40
|
+
j--;
|
|
41
|
+
}
|
|
42
|
+
bucketIndices[j + 1] = key;
|
|
43
|
+
}
|
|
44
|
+
//flatten buckets
|
|
45
|
+
let idx = 0;
|
|
46
|
+
for (let i = 0; i < bucketIndices.length; i++) {
|
|
47
|
+
const bucket = buckets[bucketIndices[i]];
|
|
48
|
+
for (let j = 0; j < bucket.length; j++) {
|
|
49
|
+
nodes[idx++] = bucket[j];
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//clean up
|
|
53
|
+
buckets.length = 0;
|
|
54
|
+
bucketIndices.length = 0;
|
|
55
|
+
};
|
|
56
|
+
export const incrementalRepositionByZIndex = (changedNodes, nodes) => {
|
|
57
|
+
for (let i = 0; i < changedNodes.length; i++) {
|
|
58
|
+
const node = changedNodes[i];
|
|
59
|
+
const currentIndex = findChildIndexById(node, nodes);
|
|
60
|
+
if (currentIndex === -1)
|
|
61
|
+
continue;
|
|
62
|
+
const targetZIndex = node.props.zIndex;
|
|
63
|
+
//binary search for correct insertion position
|
|
64
|
+
let left = 0;
|
|
65
|
+
let right = nodes.length;
|
|
66
|
+
while (left < right) {
|
|
67
|
+
const mid = (left + right) >>> 1;
|
|
68
|
+
if (nodes[mid].props.zIndex <= targetZIndex) {
|
|
69
|
+
left = mid + 1;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
right = mid;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//adjust target position if it's after the current position
|
|
76
|
+
const targetIndex = left > currentIndex ? left - 1 : left;
|
|
77
|
+
//only reposition if target is different from current
|
|
78
|
+
if (targetIndex !== currentIndex) {
|
|
79
|
+
nodes.splice(currentIndex, 1);
|
|
80
|
+
nodes.splice(targetIndex, 0, node);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
export const findChildIndexById = (node, children) => {
|
|
85
|
+
for (let i = 0; i < children.length; i++) {
|
|
86
|
+
const child = children[i];
|
|
87
|
+
// @ts-ignore - accessing protected property
|
|
88
|
+
if (child._id === node._id) {
|
|
89
|
+
return i;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return -1;
|
|
93
|
+
};
|
|
94
|
+
export const removeChild = (node, children) => {
|
|
95
|
+
const index = findChildIndexById(node, children);
|
|
96
|
+
if (index !== -1) {
|
|
97
|
+
children.splice(index, 1);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=collectionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectionUtils.js","sourceRoot":"","sources":["../../../../src/core/lib/collectionUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function normalizeCanvasColor(color: number, isRGBA?: boolean): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { parseToAbgrString, parseToRgbaString } from './colorParser.js';
|
|
2
|
+
const parsedArgbColors = new Map();
|
|
3
|
+
const parsedRgbaColors = new Map();
|
|
4
|
+
export function normalizeCanvasColor(color, isRGBA = false) {
|
|
5
|
+
let targetCache = isRGBA === true ? parsedRgbaColors : parsedArgbColors;
|
|
6
|
+
let out = targetCache.get(color);
|
|
7
|
+
if (out !== undefined) {
|
|
8
|
+
return out;
|
|
9
|
+
}
|
|
10
|
+
if (isRGBA === true) {
|
|
11
|
+
out = parseToRgbaString(color);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
out = parseToAbgrString(color);
|
|
15
|
+
}
|
|
16
|
+
targetCache.set(color, out);
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=colorCache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorCache.js","sourceRoot":"","sources":["../../../../src/core/lib/colorCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AACxD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,SAAkB,KAAK;IACzE,IAAI,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACxE,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface IParsedColor {
|
|
2
|
+
isWhite: boolean;
|
|
3
|
+
a: number;
|
|
4
|
+
r: number;
|
|
5
|
+
g: number;
|
|
6
|
+
b: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Extract color components
|
|
10
|
+
*/
|
|
11
|
+
export declare function parseColor(abgr: number): IParsedColor;
|
|
12
|
+
export declare function parseToAbgrString(abgr: number): string;
|
|
13
|
+
export declare function parseToRgbaString(rgba: number): string;
|
|
14
|
+
/**
|
|
15
|
+
* Extract color components
|
|
16
|
+
*/
|
|
17
|
+
export declare function parseColorRgba(rgba: number): IParsedColor;
|
|
18
|
+
/**
|
|
19
|
+
* Format a parsed color into a rgba CSS color
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatRgba({ a, r, g, b }: IParsedColor): string;
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
+
const WHITE = {
|
|
20
|
+
isWhite: true,
|
|
21
|
+
a: 1,
|
|
22
|
+
r: 0xff,
|
|
23
|
+
g: 0xff,
|
|
24
|
+
b: 0xff,
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Extract color components
|
|
28
|
+
*/
|
|
29
|
+
export function parseColor(abgr) {
|
|
30
|
+
if (abgr === 0xffffffff) {
|
|
31
|
+
return WHITE;
|
|
32
|
+
}
|
|
33
|
+
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
34
|
+
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
35
|
+
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
36
|
+
const r = abgr & 0xff & 0xff;
|
|
37
|
+
return { isWhite: false, a, r, g, b };
|
|
38
|
+
}
|
|
39
|
+
export function parseToAbgrString(abgr) {
|
|
40
|
+
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
41
|
+
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
42
|
+
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
43
|
+
const r = abgr & 0xff & 0xff;
|
|
44
|
+
return `rgba(${r},${g},${b},${a})`;
|
|
45
|
+
}
|
|
46
|
+
export function parseToRgbaString(rgba) {
|
|
47
|
+
const r = (rgba >>> 24) & 0xff;
|
|
48
|
+
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
49
|
+
const b = (rgba >>> 8) & 0xff & 0xff;
|
|
50
|
+
const a = (rgba & 0xff & 0xff) / 255;
|
|
51
|
+
return `rgba(${r},${g},${b},${a})`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Extract color components
|
|
55
|
+
*/
|
|
56
|
+
export function parseColorRgba(rgba) {
|
|
57
|
+
if (rgba === 0xffffffff) {
|
|
58
|
+
return WHITE;
|
|
59
|
+
}
|
|
60
|
+
const r = (rgba >>> 24) & 0xff;
|
|
61
|
+
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
62
|
+
const b = (rgba >>> 8) & 0xff & 0xff;
|
|
63
|
+
const a = (rgba & 0xff & 0xff) / 255;
|
|
64
|
+
return { isWhite: false, r, g, b, a };
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Format a parsed color into a rgba CSS color
|
|
68
|
+
*/
|
|
69
|
+
export function formatRgba({ a, r, g, b }) {
|
|
70
|
+
return `rgba(${r},${g},${b},${a})`;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=colorParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colorParser.js","sourceRoot":"","sources":["../../../../src/core/lib/colorParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Stage } from '../Stage.js';
|
|
2
|
+
export declare abstract class Platform {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a new canvas element.
|
|
5
|
+
* @returns The created HTMLCanvasElement.
|
|
6
|
+
*/
|
|
7
|
+
abstract createCanvas(): HTMLCanvasElement;
|
|
8
|
+
/**
|
|
9
|
+
* Get a DOM element by ID
|
|
10
|
+
* @returns The DOM element (or null)
|
|
11
|
+
*/
|
|
12
|
+
abstract getElementById(id: string): HTMLElement | null;
|
|
13
|
+
/**
|
|
14
|
+
* Starts the main rendering loop, calling the provided update function every frame.
|
|
15
|
+
* @param Stage - The stage for rendering
|
|
16
|
+
*/
|
|
17
|
+
abstract startLoop(stage: Stage): void;
|
|
18
|
+
/**
|
|
19
|
+
* Abstracted createImageBitmap method.
|
|
20
|
+
* @param blob - The image source to create the ImageBitmap from.
|
|
21
|
+
* @param sxOrOptions - The source rectangle x coordinate or ImageBitmapOptions.
|
|
22
|
+
* @param sy - The source rectangle y coordinate.
|
|
23
|
+
* @param sw - The source rectangle width.
|
|
24
|
+
* @param sh - The source rectangle height.
|
|
25
|
+
* @param options - The ImageBitmapOptions.
|
|
26
|
+
* @returns A promise that resolves with the created ImageBitmap.
|
|
27
|
+
*/
|
|
28
|
+
abstract createImageBitmap(blob: ImageBitmapSource): Promise<ImageBitmap>;
|
|
29
|
+
abstract createImageBitmap(blob: ImageBitmapSource, options: ImageBitmapOptions): Promise<ImageBitmap>;
|
|
30
|
+
abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;
|
|
31
|
+
abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options: ImageBitmapOptions): Promise<ImageBitmap>;
|
|
32
|
+
/**
|
|
33
|
+
* Retrieves the current timestamp.
|
|
34
|
+
* @returns The current timestamp.
|
|
35
|
+
*/
|
|
36
|
+
abstract getTimeStamp(): number;
|
|
37
|
+
/**
|
|
38
|
+
* Adds a FontFace to the platforms FontFaceSet
|
|
39
|
+
* @param font - The FontFace to add
|
|
40
|
+
*/
|
|
41
|
+
abstract addFont(font: FontFace): void;
|
|
42
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
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 '../Stage.js';
|
|
20
|
+
export class Platform {
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../../src/core/platforms/Platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAc,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAgB,QAAQ;CA6D7B"}
|