@lightningjs/renderer 2.20.1 → 2.20.2

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.
Files changed (43) hide show
  1. package/dist/src/core/AutosizeManager.d.ts +29 -28
  2. package/dist/src/core/AutosizeManager.js +124 -136
  3. package/dist/src/core/AutosizeManager.js.map +1 -1
  4. package/dist/src/core/Autosizer.d.ts +29 -0
  5. package/dist/src/core/Autosizer.js +177 -0
  6. package/dist/src/core/Autosizer.js.map +1 -0
  7. package/dist/src/core/platforms/web/WebPlatform.js +2 -2
  8. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  9. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +1 -0
  10. package/dist/src/core/renderers/canvas/CanvasTexture.js +4 -1
  11. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  12. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +4 -0
  13. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  14. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
  15. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +6 -0
  16. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +11 -0
  18. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +51 -14
  19. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  20. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +1 -1
  21. package/dist/src/core/renderers/webgl/WebGlRenderer.js +57 -61
  22. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  23. package/dist/src/core/shaders/canvas/RadialGradient.js +1 -1
  24. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  25. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +6 -4
  26. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  27. package/dist/src/core/shaders/webgl/RadialGradient.js +1 -1
  28. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  29. package/dist/src/core/shaders/webgl/Rounded.js +3 -1
  30. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  31. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +3 -2
  32. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  33. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +3 -2
  34. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  35. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +2 -1
  36. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  37. package/dist/src/core/text-rendering/CanvasTextRenderer.js +1 -1
  38. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  39. package/dist/src/core/text-rendering/SdfFontHandler.js +1 -1
  40. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  41. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  42. package/package.json +1 -1
  43. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +6 -0
@@ -1,29 +1,30 @@
1
- import type { CoreNode } from './CoreNode.js';
2
- /**
3
- * Result of autosize calculation containing the new dimensions
4
- */
5
- interface AutosizeResult {
6
- width: number;
7
- height: number;
8
- hasChanged: boolean;
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeUpdateType {
4
+ None = 0,
5
+ Filtered = 1,
6
+ All = 2
7
+ }
8
+ export declare class Autosizer {
9
+ node: CoreNode;
10
+ updateType: AutosizeUpdateType;
11
+ isEnabled: boolean;
12
+ lastWidth: number;
13
+ lastHeight: number;
14
+ lastHasChanged: boolean;
15
+ flaggedChildren: CoreNode[];
16
+ childMap: Map<number, CoreNode>;
17
+ minX: number;
18
+ minY: number;
19
+ maxX: number;
20
+ maxY: number;
21
+ corners: [Coord, Coord, Coord, Coord];
22
+ constructor(node: CoreNode);
23
+ enable(): void;
24
+ disable(): void;
25
+ attach(node: CoreNode): void;
26
+ detach(node: CoreNode): void;
27
+ patch(node: CoreNode): void;
28
+ setUpdateType(updateType: AutosizeUpdateType): void;
29
+ update(): void;
9
30
  }
10
- /**
11
- * Creates an autosize manager for efficient child bounds calculation
12
- *
13
- * @remarks
14
- * This function creates a closure-based manager that tracks child transform
15
- * changes and calculates parent dimensions based on children's bounding boxes.
16
- * It's optimized for performance with minimal allocations and fast lookups.
17
- *
18
- * @param parentNode - The autosize parent node
19
- * @returns Object with autosize management methods
20
- */
21
- export declare function createAutosizeManager(parentNode: CoreNode): {
22
- addOrUpdateChild: (child: CoreNode) => void;
23
- removeChild: (child: CoreNode) => void;
24
- calculateAutosize: () => AutosizeResult;
25
- deactivate: () => void;
26
- readonly active: boolean;
27
- readonly childCount: number;
28
- };
29
- export {};
@@ -16,156 +16,144 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { Matrix3d } from './lib/Matrix3d.js';
20
- /**
21
- * Creates an autosize manager for efficient child bounds calculation
22
- *
23
- * @remarks
24
- * This function creates a closure-based manager that tracks child transform
25
- * changes and calculates parent dimensions based on children's bounding boxes.
26
- * It's optimized for performance with minimal allocations and fast lookups.
27
- *
28
- * @param parentNode - The autosize parent node
29
- * @returns Object with autosize management methods
30
- */
31
- export function createAutosizeManager(parentNode) {
32
- const childDataMap = new Map();
33
- let isActive = true;
34
- let lastWidth = 0;
35
- let lastHeight = 0;
36
- let lastHasChanged = false;
37
- const corners = [
19
+ import { UpdateType } from './CoreNode.js';
20
+ export var AutosizeUpdateType;
21
+ (function (AutosizeUpdateType) {
22
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
23
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
24
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
25
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
26
+ export class Autosizer {
27
+ node;
28
+ updateType = AutosizeUpdateType.All;
29
+ isEnabled = true;
30
+ lastWidth = 0;
31
+ lastHeight = 0;
32
+ lastHasChanged = false;
33
+ flaggedChildren = [];
34
+ childMap = new Map();
35
+ minX = Infinity;
36
+ minY = Infinity;
37
+ maxX = -Infinity;
38
+ maxY = -Infinity;
39
+ corners = [
38
40
  { x: 0, y: 0 },
39
41
  { x: 0, y: 0 },
40
42
  { x: 0, y: 0 },
41
43
  { x: 0, y: 0 },
42
44
  ];
43
- /**
44
- * Add or update a child node in the autosize calculation chain
45
- * @param child - Child node to add or update
46
- */
47
- const addOrUpdateChild = (child) => {
48
- if (isActive === false)
49
- return;
50
- if (child === parentNode)
51
- return; // Avoid circular references
52
- const currentTransform = child.localTransform || Matrix3d.identity();
53
- const existingData = childDataMap.get(child);
54
- if (existingData !== undefined) {
55
- // Update existing child
56
- Matrix3d.copy(currentTransform, existingData.localTransform);
57
- existingData.width = child.w;
58
- existingData.height = child.h;
59
- existingData.hasChanged = true;
60
- }
61
- else {
62
- // Add new child
63
- childDataMap.set(child, {
64
- localTransform: Matrix3d.copy(currentTransform),
65
- hasChanged: true,
66
- width: child.w,
67
- height: child.h,
68
- });
45
+ constructor(node) {
46
+ this.node = node;
47
+ }
48
+ enable() {
49
+ this.isEnabled = true;
50
+ }
51
+ disable() {
52
+ this.isEnabled = false;
53
+ }
54
+ attach(node) {
55
+ this.childMap.set(node.id, node);
56
+ node.parentAutosizer = this;
57
+ //bubble down to attach to grandchildren
58
+ if (node.children.length > 0 && node.autosizer === null) {
59
+ const children = node.children;
60
+ for (let i = 0; i < children.length; i++) {
61
+ this.attach(children[i]);
62
+ }
69
63
  }
70
- // Mark parent for recalculation
71
- parentNode.autosizeNeedsUpdate = true;
72
- };
73
- /**
74
- * Remove a child node from the autosize calculation chain
75
- * @param child - Child node to remove
76
- */
77
- const removeChild = (child) => {
78
- if (childDataMap.delete(child) === true) {
79
- parentNode.autosizeNeedsUpdate = true;
64
+ }
65
+ detach(node) {
66
+ if (this.childMap.delete(node.id) === true) {
67
+ node.parentAutosizer = null;
68
+ if (node.children.length > 0 && node.autosizer === null) {
69
+ const children = node.children;
70
+ for (let i = 0; i < children.length; i++) {
71
+ this.detach(children[i]);
72
+ }
73
+ }
74
+ else {
75
+ this.setUpdateType(AutosizeUpdateType.All);
76
+ }
80
77
  }
81
- };
82
- /**
83
- * Calculate the autosize dimensions based on all child bounds
84
- * @returns Autosize calculation result
85
- */
86
- const calculateAutosize = () => {
87
- if (isActive === false || childDataMap.size === 0) {
88
- return { width: 0, height: 0, hasChanged: false };
78
+ }
79
+ patch(node) {
80
+ this.flaggedChildren.push(node);
81
+ const entry = this.childMap.get(node.id);
82
+ this.setUpdateType(AutosizeUpdateType.Filtered);
83
+ if (entry === undefined) {
84
+ this.attach(node);
89
85
  }
90
- let hasAnyChildChanged = false;
91
- for (const childData of childDataMap.values()) {
92
- if (childData.hasChanged) {
93
- hasAnyChildChanged = true;
94
- break;
95
- }
86
+ }
87
+ setUpdateType(updateType) {
88
+ this.updateType = updateType;
89
+ this.node.setUpdateType(UpdateType.Autosize);
90
+ }
91
+ update() {
92
+ const node = this.node;
93
+ if (node.texture !== null && node.texture.dimensions !== null) {
94
+ node.w = node.texture.dimensions.w;
95
+ node.h = node.texture.dimensions.h;
96
+ return;
96
97
  }
97
- if (hasAnyChildChanged === false) {
98
- return {
99
- width: lastWidth,
100
- height: lastHeight,
101
- hasChanged: lastHasChanged,
102
- };
98
+ let filtered = this.updateType === AutosizeUpdateType.Filtered ? this.flaggedChildren : Array.from(this.childMap.values());
99
+ if (filtered.length === 0) {
100
+ return;
103
101
  }
104
- let minX = Infinity;
105
- let minY = Infinity;
106
- let maxX = -Infinity;
107
- let maxY = -Infinity;
108
- for (const [child, childData] of childDataMap) {
109
- if (!child.isRenderable)
102
+ const corners = this.corners;
103
+ let minX = this.minX;
104
+ let minY = this.minY;
105
+ let maxX = this.maxX;
106
+ let maxY = this.maxY;
107
+ for (let i = 0; i < filtered.length; i++) {
108
+ const child = filtered[i];
109
+ if (child.isRenderable === false || child.localTransform === undefined) {
110
110
  continue;
111
- const transform = child.localTransform || Matrix3d.identity();
112
- const width = childData.width;
113
- const height = childData.height;
114
- corners[0].x = 0;
115
- corners[0].y = 0;
116
- corners[1].x = width;
117
- corners[1].y = 0;
118
- corners[2].x = width;
119
- corners[2].y = height;
120
- corners[3].x = 0;
121
- corners[3].y = height;
122
- for (let i = 0; i < 4; i++) {
123
- const corner = corners[i];
124
- const localX = transform.ta * corner.x + transform.tb * corner.y + transform.tx;
125
- const localY = transform.tc * corner.x + transform.td * corner.y + transform.ty;
126
- if (localX < minX)
127
- minX = localX;
128
- if (localY < minY)
129
- minY = localY;
130
- if (localX > maxX)
131
- maxX = localX;
132
- if (localY > maxY)
133
- maxY = localY;
134
111
  }
135
- childData.hasChanged = false;
112
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
113
+ const w = child.props.w;
114
+ const h = child.props.h;
115
+ const childMinX = tx;
116
+ const childMaxX = tx + w * ta;
117
+ const childMinY = ty;
118
+ const childMaxY = ty + h * td;
119
+ corners[0].x = childMinX;
120
+ corners[0].y = childMinY;
121
+ corners[1].x = childMaxX;
122
+ //no rotation/scale
123
+ if (tb === 0 && tc === 0) {
124
+ corners[1].y = childMinY;
125
+ corners[2].x = childMaxX;
126
+ corners[2].y = childMaxY;
127
+ corners[3].x = childMinX;
128
+ corners[3].y = childMaxY;
129
+ }
130
+ else {
131
+ corners[1].y = tx + w * tc;
132
+ corners[2].x = tx + w * ta + h * tb;
133
+ corners[2].y = ty + w * tc + h * td;
134
+ corners[3].x = tx + h * tb;
135
+ corners[3].y = ty + h * td;
136
+ }
137
+ for (let j = 0; j < 4; j++) {
138
+ const corner = corners[j];
139
+ if (corner.x < minX)
140
+ minX = corner.x;
141
+ if (corner.y < minY)
142
+ minY = corner.y;
143
+ if (corner.x > maxX)
144
+ maxX = corner.x;
145
+ if (corner.y > maxY)
146
+ maxY = corner.y;
147
+ }
136
148
  }
137
- // Calculate container size based on maximum extent from container origin (0,0)
138
- // This ensures the container position remains fixed and only size adjusts
149
+ this.flaggedChildren.length = 0;
150
+ this.updateType = AutosizeUpdateType.None;
139
151
  const newWidth = maxX > 0 ? maxX : 0;
140
152
  const newHeight = maxY > 0 ? maxY : 0;
141
- const dimensionsChanged = lastWidth !== newWidth || lastHeight !== newHeight;
142
- lastWidth = newWidth;
143
- lastHeight = newHeight;
144
- lastHasChanged = dimensionsChanged;
145
- return {
146
- width: newWidth,
147
- height: newHeight,
148
- hasChanged: dimensionsChanged,
149
- };
150
- };
151
- /**
152
- * Deactivate this autosize manager and clean up resources
153
- */
154
- const deactivate = () => {
155
- isActive = false;
156
- childDataMap.clear();
157
- };
158
- return {
159
- addOrUpdateChild,
160
- removeChild,
161
- calculateAutosize,
162
- deactivate,
163
- get active() {
164
- return isActive;
165
- },
166
- get childCount() {
167
- return childDataMap.size;
168
- },
169
- };
153
+ this.lastWidth = newWidth;
154
+ this.lastHeight = newHeight;
155
+ this.node.w = newWidth;
156
+ this.node.h = newHeight;
157
+ }
170
158
  }
171
159
  //# sourceMappingURL=AutosizeManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutosizeManager.js","sourceRoot":"","sources":["../../../src/core/AutosizeManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeUpdateType {
4
+ None = 0,
5
+ Filtered = 1,
6
+ All = 2
7
+ }
8
+ export declare class Autosizer {
9
+ node: CoreNode;
10
+ id: number;
11
+ updateType: AutosizeUpdateType;
12
+ lastWidth: number;
13
+ lastHeight: number;
14
+ lastHasChanged: boolean;
15
+ flaggedChildren: CoreNode[];
16
+ childMap: Map<number, CoreNode>;
17
+ minX: number;
18
+ minY: number;
19
+ maxX: number;
20
+ maxY: number;
21
+ corners: [Coord, Coord, Coord, Coord];
22
+ constructor(node: CoreNode);
23
+ attach(node: CoreNode): void;
24
+ detach(node: CoreNode): void;
25
+ patch(node: CoreNode): void;
26
+ setUpdateType(updateType: AutosizeUpdateType): void;
27
+ update(carryOver?: boolean): void;
28
+ destroy(): void;
29
+ }
@@ -0,0 +1,177 @@
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 AutosizeUpdateType;
21
+ (function (AutosizeUpdateType) {
22
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
23
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
24
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
25
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
26
+ const applyDimensions = (node, carryOver, w, h) => {
27
+ if (carryOver === true) {
28
+ node.w = w;
29
+ node.h = h;
30
+ return;
31
+ }
32
+ node.props.w = w;
33
+ node.props.h = h;
34
+ };
35
+ let autosizerId = 0;
36
+ export class Autosizer {
37
+ node;
38
+ id = autosizerId++;
39
+ updateType = AutosizeUpdateType.All;
40
+ lastWidth = 0;
41
+ lastHeight = 0;
42
+ lastHasChanged = false;
43
+ flaggedChildren = [];
44
+ childMap = new Map();
45
+ minX = Infinity;
46
+ minY = Infinity;
47
+ maxX = -Infinity;
48
+ maxY = -Infinity;
49
+ corners = [
50
+ { x: 0, y: 0 },
51
+ { x: 0, y: 0 },
52
+ { x: 0, y: 0 },
53
+ { x: 0, y: 0 },
54
+ ];
55
+ constructor(node) {
56
+ this.node = node;
57
+ }
58
+ attach(node) {
59
+ this.childMap.set(node.id, node);
60
+ node.parentAutosizer = this;
61
+ //bubble down to attach to grandchildren
62
+ if (node.children.length > 0 && node.autosizer === null) {
63
+ const children = node.children;
64
+ for (let i = 0; i < children.length; i++) {
65
+ this.attach(children[i]);
66
+ }
67
+ }
68
+ }
69
+ detach(node) {
70
+ if (this.childMap.delete(node.id) === true) {
71
+ node.parentAutosizer = null;
72
+ if (node.children.length > 0 && node.autosizer === null) {
73
+ const children = node.children;
74
+ for (let i = 0; i < children.length; i++) {
75
+ this.detach(children[i]);
76
+ }
77
+ }
78
+ //detached a child, need full update
79
+ this.setUpdateType(AutosizeUpdateType.All);
80
+ }
81
+ }
82
+ patch(node) {
83
+ const entry = this.childMap.get(node.id);
84
+ if (entry === undefined) {
85
+ return;
86
+ }
87
+ this.flaggedChildren.push(node);
88
+ this.setUpdateType(AutosizeUpdateType.Filtered);
89
+ }
90
+ setUpdateType(updateType) {
91
+ this.updateType |= updateType;
92
+ queueMicrotask(() => {
93
+ this.node.setUpdateType(UpdateType.Autosize);
94
+ });
95
+ }
96
+ update(carryOver = false) {
97
+ const node = this.node;
98
+ if (node.texture !== null && node.texture.dimensions !== null) {
99
+ const { w, h } = node.texture.dimensions;
100
+ applyDimensions(node, carryOver, w, h);
101
+ this.lastWidth = w;
102
+ this.lastHeight = h;
103
+ this.updateType = AutosizeUpdateType.None;
104
+ return;
105
+ }
106
+ let filtered = this.updateType === AutosizeUpdateType.Filtered
107
+ ? this.flaggedChildren
108
+ : Array.from(this.childMap.values());
109
+ if (filtered.length === 0) {
110
+ return;
111
+ }
112
+ const corners = this.corners;
113
+ let minX = this.minX;
114
+ let minY = this.minY;
115
+ let maxX = this.maxX;
116
+ let maxY = this.maxY;
117
+ for (let i = 0; i < filtered.length; i++) {
118
+ const child = filtered[i];
119
+ if (child.isRenderable === false || child.localTransform === undefined) {
120
+ continue;
121
+ }
122
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
123
+ const w = child.props.w;
124
+ const h = child.props.h;
125
+ const childMinX = tx;
126
+ const childMaxX = tx + w * ta;
127
+ const childMinY = ty;
128
+ const childMaxY = ty + h * td;
129
+ corners[0].x = childMinX;
130
+ corners[0].y = childMinY;
131
+ corners[1].x = childMaxX;
132
+ //no rotation/scale
133
+ if (tb === 0 && tc === 0) {
134
+ corners[1].y = childMinY;
135
+ corners[2].x = childMaxX;
136
+ corners[2].y = childMaxY;
137
+ corners[3].x = childMinX;
138
+ corners[3].y = childMaxY;
139
+ }
140
+ else {
141
+ corners[1].y = tx + w * tc;
142
+ corners[2].x = tx + w * ta + h * tb;
143
+ corners[2].y = ty + w * tc + h * td;
144
+ corners[3].x = tx + h * tb;
145
+ corners[3].y = ty + h * td;
146
+ }
147
+ for (let j = 0; j < 4; j++) {
148
+ const corner = corners[j];
149
+ if (corner.x < minX)
150
+ minX = corner.x;
151
+ if (corner.y < minY)
152
+ minY = corner.y;
153
+ if (corner.x > maxX)
154
+ maxX = corner.x;
155
+ if (corner.y > maxY)
156
+ maxY = corner.y;
157
+ }
158
+ }
159
+ this.flaggedChildren.length = 0;
160
+ this.updateType = AutosizeUpdateType.None;
161
+ const newWidth = maxX > 0 ? maxX : 0;
162
+ const newHeight = maxY > 0 ? maxY : 0;
163
+ applyDimensions(node, carryOver, newWidth, newHeight);
164
+ this.lastWidth = newWidth;
165
+ this.lastHeight = newHeight;
166
+ }
167
+ destroy() {
168
+ if (this.childMap.size > 0) {
169
+ for (const child of this.childMap.values()) {
170
+ child.parentAutosizer = null;
171
+ }
172
+ }
173
+ this.childMap.clear();
174
+ this.flaggedChildren.length = 0;
175
+ }
176
+ }
177
+ //# 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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"}
@@ -39,13 +39,13 @@ export class WebPlatform extends Platform {
39
39
  // Use standard idle timeout when not throttling
40
40
  setTimeout(() => requestAnimationFrame(runLoop), 16.666666666666668);
41
41
  }
42
- if (!isIdle) {
42
+ if (isIdle === false) {
43
43
  stage.shManager.cleanup();
44
44
  stage.eventBus.emit('idle');
45
45
  isIdle = true;
46
46
  }
47
47
  if (stage.txMemManager.checkCleanup() === true) {
48
- stage.txMemManager.cleanup(false);
48
+ stage.txMemManager.cleanup();
49
49
  }
50
50
  stage.flushFrameEvents();
51
51
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"WebPlatform.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebPlatform.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatform.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class CanvasTexture extends CoreContextTexture {
7
7
  image: HTMLCanvasElement;
8
8
  } | undefined;
9
9
  load(): Promise<void>;
10
+ release(): void;
10
11
  free(): void;
11
12
  updateMemSize(): void;
12
13
  hasImage(): boolean;
@@ -36,9 +36,12 @@ export class CanvasTexture extends CoreContextTexture {
36
36
  throw err;
37
37
  }
38
38
  }
39
- free() {
39
+ release() {
40
40
  this.image = undefined;
41
41
  this.tintCache = undefined;
42
+ }
43
+ free() {
44
+ this.release();
42
45
  this.textureSource.setState('freed');
43
46
  this.setTextureMemUse(0);
44
47
  this.textureSource.freeTextureData();