@lightningjs/renderer 0.3.2 → 0.3.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/src/core/CoreTextureManager.d.ts +4 -3
- package/dist/src/core/CoreTextureManager.js +7 -4
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +36 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +4 -4
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +4 -3
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -2
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +6 -1
- 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.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +2 -2
- package/dist/src/main-api/INode.d.ts +5 -5
- package/dist/src/main-api/RendererMain.d.ts +88 -8
- package/dist/src/main-api/RendererMain.js +22 -6
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/MainOnlyNode.d.ts +7 -7
- package/dist/src/render-drivers/main/MainOnlyNode.js +8 -1
- package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +8 -7
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js +11 -1
- package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -1
- package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/core-api.ts +101 -0
- package/exports/main-api.ts +50 -0
- package/exports/utils.ts +41 -0
- package/package.json +3 -2
- package/src/core/CoreTextureManager.ts +7 -6
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +46 -6
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +4 -3
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +1 -1
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +9 -3
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +6 -4
- package/src/core/textures/SubTexture.ts +2 -2
- package/src/main-api/INode.ts +5 -5
- package/src/main-api/RendererMain.ts +125 -23
- package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -0
- package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -0
- package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -0
- package/src/render-drivers/main/MainOnlyNode.ts +16 -9
- package/src/render-drivers/threadx/ThreadXMainNode.ts +20 -9
- package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +5 -9
|
@@ -2,24 +2,67 @@ import type { ShaderMap } from '../core/CoreShaderManager.js';
|
|
|
2
2
|
import type { ExtractProps, TextureMap, TextureOptions } from '../core/CoreTextureManager.js';
|
|
3
3
|
import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from './INode.js';
|
|
4
4
|
import type { IRenderDriver } from './IRenderDriver.js';
|
|
5
|
+
import { type ManualCountTextureUsageTrackerOptions } from './texture-usage-trackers/ManualCountTextureUsageTracker.js';
|
|
6
|
+
import type { TextureUsageTracker } from './texture-usage-trackers/TextureUsageTracker.js';
|
|
5
7
|
/**
|
|
6
|
-
*
|
|
8
|
+
* An immutable reference to a specific Texture type
|
|
7
9
|
*
|
|
8
10
|
* @remarks
|
|
9
|
-
*
|
|
10
|
-
* method. The structure is immutable and should not be modified once created.
|
|
11
|
+
* See {@link TextureRef} for more details.
|
|
11
12
|
*/
|
|
12
|
-
export interface
|
|
13
|
+
export interface SpecificTextureRef<TxType extends keyof TextureMap> {
|
|
13
14
|
readonly descType: 'texture';
|
|
14
15
|
readonly txType: TxType;
|
|
15
16
|
readonly props: ExtractProps<TextureMap[TxType]>;
|
|
16
17
|
readonly options?: Readonly<TextureOptions>;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
type MapTextureRefs<TxType extends keyof TextureMap> = TxType extends keyof TextureMap ? SpecificTextureRef<TxType> : never;
|
|
20
|
+
/**
|
|
21
|
+
* An immutable reference to a Texture
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* This structure should only be created by the RendererMain's `createTexture`
|
|
25
|
+
* method. The structure is immutable and should not be modified once created.
|
|
26
|
+
*
|
|
27
|
+
* A `TextureRef` exists in the Main API Space and is used to point to an actual
|
|
28
|
+
* `Texture` instance in the Core API Space. The `TextureRef` is used to
|
|
29
|
+
* communicate with the Core API Space to create, load, and destroy the
|
|
30
|
+
* `Texture` instance.
|
|
31
|
+
*
|
|
32
|
+
* This type is technically a discriminated union of all possible texture types.
|
|
33
|
+
* If you'd like to represent a specific texture type, you can use the
|
|
34
|
+
* `SpecificTextureRef` generic type.
|
|
35
|
+
*/
|
|
36
|
+
export type TextureRef = MapTextureRefs<keyof TextureMap>;
|
|
37
|
+
/**
|
|
38
|
+
* An immutable reference to a specific Shader type
|
|
39
|
+
*
|
|
40
|
+
* @remarks
|
|
41
|
+
* See {@link ShaderRef} for more details.
|
|
42
|
+
*/
|
|
43
|
+
export interface SpecificShaderRef<ShType extends keyof ShaderMap> {
|
|
19
44
|
readonly descType: 'shader';
|
|
20
45
|
readonly shType: ShType;
|
|
21
46
|
readonly props: ExtractProps<ShaderMap[ShType]>;
|
|
22
47
|
}
|
|
48
|
+
type MapShaderRefs<ShType extends keyof ShaderMap> = ShType extends keyof ShaderMap ? SpecificShaderRef<ShType> : never;
|
|
49
|
+
/**
|
|
50
|
+
* An immutable reference to a Shader
|
|
51
|
+
*
|
|
52
|
+
* @remarks
|
|
53
|
+
* This structure should only be created by the RendererMain's `createShader`
|
|
54
|
+
* method. The structure is immutable and should not be modified once created.
|
|
55
|
+
*
|
|
56
|
+
* A `ShaderRef` exists in the Main API Space and is used to point to an actual
|
|
57
|
+
* `Shader` instance in the Core API Space. The `ShaderRef` is used to
|
|
58
|
+
* communicate with the Core API Space to create, load, and destroy the
|
|
59
|
+
* `Shader` instance.
|
|
60
|
+
*
|
|
61
|
+
* This type is technically a discriminated union of all possible shader types.
|
|
62
|
+
* If you'd like to represent a specific shader type, you can use the
|
|
63
|
+
* `SpecificShaderRef` generic type.
|
|
64
|
+
*/
|
|
65
|
+
export type ShaderRef = MapShaderRefs<keyof ShaderMap>;
|
|
23
66
|
/**
|
|
24
67
|
* Configuration settings for {@link RendererMain}
|
|
25
68
|
*/
|
|
@@ -76,8 +119,38 @@ export interface RendererMainSettings {
|
|
|
76
119
|
clearColor?: number;
|
|
77
120
|
/**
|
|
78
121
|
* Path to a custom core module to use
|
|
122
|
+
*
|
|
123
|
+
* @defaultValue `null`
|
|
79
124
|
*/
|
|
80
125
|
coreExtensionModule?: string | null;
|
|
126
|
+
/**
|
|
127
|
+
* Enable experimental FinalizationRegistry-based texture usage tracking
|
|
128
|
+
* for texture garbage collection
|
|
129
|
+
*
|
|
130
|
+
* @remarks
|
|
131
|
+
* By default, the Renderer uses a manual reference counting system to track
|
|
132
|
+
* texture usage. Textures are eventually released from the Core Texture
|
|
133
|
+
* Manager's Usage Cache when they are no longer referenced by any Nodes (or
|
|
134
|
+
* SubTextures that are referenced by nodes). This works well enough, but has
|
|
135
|
+
* the consequence of textures being removed from Usage Cache even if their
|
|
136
|
+
* references are still alive in memory. This can require a texture to be
|
|
137
|
+
* reloaded from the source when it is used again after being removed from
|
|
138
|
+
* cache.
|
|
139
|
+
*
|
|
140
|
+
* This is an experimental feature that uses a FinalizationRegistry to track
|
|
141
|
+
* texture usage. This causes textures to be removed from the Usage Cache only
|
|
142
|
+
* when their references are no longer alive in memory. Meaning a loaded texture
|
|
143
|
+
* will remain in the Usage Cache until it's reference is garbage collected.
|
|
144
|
+
*
|
|
145
|
+
* This feature is not enabled by default because browser support for the
|
|
146
|
+
* FinalizationRegistry is limited. It should NOT be enabled in production apps
|
|
147
|
+
* as this behavior is not guaranteed to be supported in the future. Developer
|
|
148
|
+
* feedback on this feature, however, is welcome.
|
|
149
|
+
*
|
|
150
|
+
* @defaultValue `false`
|
|
151
|
+
*/
|
|
152
|
+
experimental_FinalizationRegistryTextureUsageTracker?: boolean;
|
|
153
|
+
textureCleanupOptions?: ManualCountTextureUsageTrackerOptions;
|
|
81
154
|
}
|
|
82
155
|
/**
|
|
83
156
|
* The Renderer Main API
|
|
@@ -110,7 +183,13 @@ export declare class RendererMain {
|
|
|
110
183
|
readonly settings: Readonly<Required<RendererMainSettings>>;
|
|
111
184
|
private nodes;
|
|
112
185
|
private nextTextureId;
|
|
113
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Texture Usage Tracker for Usage Based Texture Garbage Collection
|
|
188
|
+
*
|
|
189
|
+
* @remarks
|
|
190
|
+
* For internal use only. DO NOT ACCESS.
|
|
191
|
+
*/
|
|
192
|
+
textureTracker: TextureUsageTracker;
|
|
114
193
|
/**
|
|
115
194
|
* Constructs a new Renderer instance
|
|
116
195
|
*
|
|
@@ -195,7 +274,7 @@ export declare class RendererMain {
|
|
|
195
274
|
* @param options
|
|
196
275
|
* @returns
|
|
197
276
|
*/
|
|
198
|
-
|
|
277
|
+
createTexture<TxType extends keyof TextureMap>(textureType: TxType, props: SpecificTextureRef<TxType>['props'], options?: TextureOptions): SpecificTextureRef<TxType>;
|
|
199
278
|
/**
|
|
200
279
|
* Create a new shader reference
|
|
201
280
|
*
|
|
@@ -209,7 +288,7 @@ export declare class RendererMain {
|
|
|
209
288
|
* @param props
|
|
210
289
|
* @returns
|
|
211
290
|
*/
|
|
212
|
-
|
|
291
|
+
createShader<ShType extends keyof ShaderMap>(shaderType: ShType, props?: SpecificShaderRef<ShType>['props']): SpecificShaderRef<ShType>;
|
|
213
292
|
/**
|
|
214
293
|
* Get a Node by its ID
|
|
215
294
|
*
|
|
@@ -230,3 +309,4 @@ export declare class RendererMain {
|
|
|
230
309
|
*/
|
|
231
310
|
rerender(): void;
|
|
232
311
|
}
|
|
312
|
+
export {};
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
* See the License for the specific language governing permissions and
|
|
17
17
|
* limitations under the License.
|
|
18
18
|
*/
|
|
19
|
+
import { ManualCountTextureUsageTracker, } from './texture-usage-trackers/ManualCountTextureUsageTracker.js';
|
|
20
|
+
import { FinalizationRegistryTextureUsageTracker } from './texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js';
|
|
19
21
|
/**
|
|
20
22
|
* The Renderer Main API
|
|
21
23
|
*
|
|
@@ -47,9 +49,13 @@ export class RendererMain {
|
|
|
47
49
|
settings;
|
|
48
50
|
nodes = new Map();
|
|
49
51
|
nextTextureId = 1;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Texture Usage Tracker for Usage Based Texture Garbage Collection
|
|
54
|
+
*
|
|
55
|
+
* @remarks
|
|
56
|
+
* For internal use only. DO NOT ACCESS.
|
|
57
|
+
*/
|
|
58
|
+
textureTracker;
|
|
53
59
|
/**
|
|
54
60
|
* Constructs a new Renderer instance
|
|
55
61
|
*
|
|
@@ -65,9 +71,19 @@ export class RendererMain {
|
|
|
65
71
|
devicePhysicalPixelRatio: settings.devicePhysicalPixelRatio || window.devicePixelRatio,
|
|
66
72
|
clearColor: settings.clearColor ?? 0x00000000,
|
|
67
73
|
coreExtensionModule: settings.coreExtensionModule || null,
|
|
74
|
+
experimental_FinalizationRegistryTextureUsageTracker: settings.experimental_FinalizationRegistryTextureUsageTracker ?? false,
|
|
75
|
+
textureCleanupOptions: settings.textureCleanupOptions || {},
|
|
68
76
|
};
|
|
69
77
|
this.settings = resolvedSettings;
|
|
70
78
|
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, } = resolvedSettings;
|
|
79
|
+
const releaseCallback = (textureId) => {
|
|
80
|
+
this.driver.releaseTexture(textureId);
|
|
81
|
+
};
|
|
82
|
+
const useFinalizationRegistryTracker = resolvedSettings.experimental_FinalizationRegistryTextureUsageTracker &&
|
|
83
|
+
typeof FinalizationRegistry === 'function';
|
|
84
|
+
this.textureTracker = useFinalizationRegistryTracker
|
|
85
|
+
? new FinalizationRegistryTextureUsageTracker(releaseCallback)
|
|
86
|
+
: new ManualCountTextureUsageTracker(releaseCallback, this.settings.textureCleanupOptions);
|
|
71
87
|
const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
|
|
72
88
|
const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
|
|
73
89
|
this.driver = driver;
|
|
@@ -237,7 +253,7 @@ export class RendererMain {
|
|
|
237
253
|
* @param options
|
|
238
254
|
* @returns
|
|
239
255
|
*/
|
|
240
|
-
|
|
256
|
+
createTexture(textureType, props, options) {
|
|
241
257
|
const id = this.nextTextureId++;
|
|
242
258
|
const desc = {
|
|
243
259
|
descType: 'texture',
|
|
@@ -250,7 +266,7 @@ export class RendererMain {
|
|
|
250
266
|
id,
|
|
251
267
|
},
|
|
252
268
|
};
|
|
253
|
-
this.
|
|
269
|
+
this.textureTracker.registerTexture(desc);
|
|
254
270
|
return desc;
|
|
255
271
|
}
|
|
256
272
|
/**
|
|
@@ -266,7 +282,7 @@ export class RendererMain {
|
|
|
266
282
|
* @param props
|
|
267
283
|
* @returns
|
|
268
284
|
*/
|
|
269
|
-
|
|
285
|
+
createShader(shaderType, props) {
|
|
270
286
|
return {
|
|
271
287
|
descType: 'shader',
|
|
272
288
|
shType: shaderType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { INode, INodeAnimatableProps, INodeWritableProps } from '../../main
|
|
|
2
2
|
import type { Stage } from '../../core/Stage.js';
|
|
3
3
|
import type { IAnimationController } from '../../common/IAnimationController.js';
|
|
4
4
|
import { CoreNode } from '../../core/CoreNode.js';
|
|
5
|
-
import type { RendererMain,
|
|
5
|
+
import type { RendererMain, ShaderRef, TextureRef } from '../../main-api/RendererMain.js';
|
|
6
6
|
import type { IAnimationSettings } from '../../core/animations/CoreAnimation.js';
|
|
7
7
|
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
8
8
|
export declare function getNewId(): number;
|
|
@@ -14,8 +14,8 @@ export declare class MainOnlyNode extends EventEmitter implements INode {
|
|
|
14
14
|
protected _children: MainOnlyNode[];
|
|
15
15
|
protected _src: string;
|
|
16
16
|
protected _parent: MainOnlyNode | null;
|
|
17
|
-
protected _texture:
|
|
18
|
-
protected _shader:
|
|
17
|
+
protected _texture: TextureRef | null;
|
|
18
|
+
protected _shader: ShaderRef | null;
|
|
19
19
|
constructor(props: INodeWritableProps, rendererMain: RendererMain, stage: Stage, coreNode?: CoreNode);
|
|
20
20
|
get x(): number;
|
|
21
21
|
set x(value: number);
|
|
@@ -74,12 +74,12 @@ export declare class MainOnlyNode extends EventEmitter implements INode {
|
|
|
74
74
|
set zIndexLocked(value: number);
|
|
75
75
|
get src(): string;
|
|
76
76
|
set src(imageUrl: string);
|
|
77
|
-
get texture():
|
|
78
|
-
set texture(texture:
|
|
77
|
+
get texture(): TextureRef | null;
|
|
78
|
+
set texture(texture: TextureRef | null);
|
|
79
79
|
private onTextureLoaded;
|
|
80
80
|
private onTextureFailed;
|
|
81
|
-
get shader():
|
|
82
|
-
set shader(shader:
|
|
81
|
+
get shader(): ShaderRef | null;
|
|
82
|
+
set shader(shader: ShaderRef | null);
|
|
83
83
|
destroy(): void;
|
|
84
84
|
flush(): void;
|
|
85
85
|
animate(props: Partial<INodeAnimatableProps>, settings: Partial<IAnimationSettings>): IAnimationController;
|
|
@@ -272,7 +272,7 @@ export class MainOnlyNode extends EventEmitter {
|
|
|
272
272
|
this.texture = null;
|
|
273
273
|
return;
|
|
274
274
|
}
|
|
275
|
-
this.texture = this.rendererMain.
|
|
275
|
+
this.texture = this.rendererMain.createTexture('ImageTexture', {
|
|
276
276
|
src: imageUrl,
|
|
277
277
|
});
|
|
278
278
|
}
|
|
@@ -284,6 +284,12 @@ export class MainOnlyNode extends EventEmitter {
|
|
|
284
284
|
if (this._texture === texture) {
|
|
285
285
|
return;
|
|
286
286
|
}
|
|
287
|
+
if (this._texture) {
|
|
288
|
+
this.rendererMain.textureTracker.decrementTextureRefCount(this._texture);
|
|
289
|
+
}
|
|
290
|
+
if (texture) {
|
|
291
|
+
this.rendererMain.textureTracker.incrementTextureRefCount(texture);
|
|
292
|
+
}
|
|
287
293
|
this._texture = texture;
|
|
288
294
|
if (texture) {
|
|
289
295
|
this.coreNode.loadTexture(texture.txType, texture.props, texture.options);
|
|
@@ -314,6 +320,7 @@ export class MainOnlyNode extends EventEmitter {
|
|
|
314
320
|
destroy() {
|
|
315
321
|
this.emit('beforeDestroy', {});
|
|
316
322
|
this.parent = null;
|
|
323
|
+
this.texture = null;
|
|
317
324
|
this.emit('afterDestroy', {});
|
|
318
325
|
this.removeAllListeners();
|
|
319
326
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainOnlyNode.js","sourceRoot":"","sources":["../../../../src/render-drivers/main/MainOnlyNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOlD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAM5D,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,MAAM,UAAU,QAAQ;IACtB,OAAO,MAAM,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,YAAY;IAalC;IACA;IAbD,EAAE,CAAC;IACF,QAAQ,CAAW;IAE7B,cAAc;IACJ,SAAS,GAAmB,EAAE,CAAC;IAC/B,IAAI,GAAG,EAAE,CAAC;IACV,OAAO,GAAwB,IAAI,CAAC;IACpC,QAAQ,
|
|
1
|
+
{"version":3,"file":"MainOnlyNode.js","sourceRoot":"","sources":["../../../../src/render-drivers/main/MainOnlyNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IAnimationController } from '../../common/IAnimationController.js';
|
|
2
2
|
import type { INode, INodeAnimatableProps } from '../../main-api/INode.js';
|
|
3
|
-
import type { RendererMain,
|
|
3
|
+
import type { RendererMain, ShaderRef, TextureRef } from '../../main-api/RendererMain.js';
|
|
4
4
|
import type { NodeStruct } from './NodeStruct.js';
|
|
5
5
|
import { SharedNode } from './SharedNode.js';
|
|
6
6
|
import type { IAnimationSettings } from '../../core/animations/CoreAnimation.js';
|
|
@@ -9,8 +9,8 @@ export declare class ThreadXMainNode extends SharedNode implements INode {
|
|
|
9
9
|
private nextAnimationId;
|
|
10
10
|
protected _parent: ThreadXMainNode | null;
|
|
11
11
|
protected _children: ThreadXMainNode[];
|
|
12
|
-
protected _texture:
|
|
13
|
-
protected _shader:
|
|
12
|
+
protected _texture: TextureRef | null;
|
|
13
|
+
protected _shader: ShaderRef | null;
|
|
14
14
|
private _src;
|
|
15
15
|
/**
|
|
16
16
|
* FinalizationRegistry for animation controllers. When an animation
|
|
@@ -23,10 +23,10 @@ export declare class ThreadXMainNode extends SharedNode implements INode {
|
|
|
23
23
|
*/
|
|
24
24
|
private animationRegistry;
|
|
25
25
|
constructor(rendererMain: RendererMain, sharedNodeStruct: NodeStruct, extendedCurProps?: Record<string, unknown>);
|
|
26
|
-
get texture():
|
|
27
|
-
set texture(texture:
|
|
28
|
-
get shader():
|
|
29
|
-
set shader(shader:
|
|
26
|
+
get texture(): TextureRef | null;
|
|
27
|
+
set texture(texture: TextureRef | null);
|
|
28
|
+
get shader(): ShaderRef | null;
|
|
29
|
+
set shader(shader: ShaderRef | null);
|
|
30
30
|
animate(props: Partial<INodeAnimatableProps>, settings: Partial<IAnimationSettings>): IAnimationController;
|
|
31
31
|
get src(): string;
|
|
32
32
|
set src(imageUrl: string);
|
|
@@ -34,4 +34,5 @@ export declare class ThreadXMainNode extends SharedNode implements INode {
|
|
|
34
34
|
set parent(newParent: ThreadXMainNode | null);
|
|
35
35
|
get children(): ThreadXMainNode[];
|
|
36
36
|
get props(): this["z$__type__Props"];
|
|
37
|
+
destroy(): void;
|
|
37
38
|
}
|
|
@@ -50,6 +50,12 @@ export class ThreadXMainNode extends SharedNode {
|
|
|
50
50
|
if (this._texture === texture) {
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
|
+
if (this._texture) {
|
|
54
|
+
this.rendererMain.textureTracker.decrementTextureRefCount(this._texture);
|
|
55
|
+
}
|
|
56
|
+
if (texture) {
|
|
57
|
+
this.rendererMain.textureTracker.incrementTextureRefCount(texture);
|
|
58
|
+
}
|
|
53
59
|
this._texture = texture;
|
|
54
60
|
if (texture) {
|
|
55
61
|
this.emit('loadTexture', texture);
|
|
@@ -89,7 +95,7 @@ export class ThreadXMainNode extends SharedNode {
|
|
|
89
95
|
this.texture = null;
|
|
90
96
|
return;
|
|
91
97
|
}
|
|
92
|
-
this.texture = this.rendererMain.
|
|
98
|
+
this.texture = this.rendererMain.createTexture('ImageTexture', {
|
|
93
99
|
src: imageUrl,
|
|
94
100
|
});
|
|
95
101
|
}
|
|
@@ -117,5 +123,9 @@ export class ThreadXMainNode extends SharedNode {
|
|
|
117
123
|
get props() {
|
|
118
124
|
return this.curProps;
|
|
119
125
|
}
|
|
126
|
+
destroy() {
|
|
127
|
+
super.destroy();
|
|
128
|
+
this.texture = null;
|
|
129
|
+
}
|
|
120
130
|
}
|
|
121
131
|
//# sourceMappingURL=ThreadXMainNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadXMainNode.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAGrF,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAsBnC;IArBF,eAAe,GAAG,CAAC,CAAC;IAClB,OAAO,GAA2B,IAAI,CAAC;IACvC,SAAS,GAAsB,EAAE,CAAC;IAClC,QAAQ,
|
|
1
|
+
{"version":3,"file":"ThreadXMainNode.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,6 @@ export class ThreadXRendererNode extends SharedNode {
|
|
|
76
76
|
this.animationControllers.get(id)?.pause();
|
|
77
77
|
});
|
|
78
78
|
this.on('loadTexture', (target, textureDesc) => {
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument, @typescript-eslint/no-explicit-any
|
|
80
79
|
this.coreNode.loadTexture(textureDesc.txType, textureDesc.props, textureDesc.options);
|
|
81
80
|
});
|
|
82
81
|
this.on('loadShader', (target, shaderDesc) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThreadXRendererNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererNode.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ThreadXRendererNode.js","sourceRoot":"","sources":["../../../../../src/render-drivers/threadx/worker/ThreadXRendererNode.ts"],"names":[],"mappings":"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"}
|