@lightningjs/renderer 3.0.0-beta7 → 3.0.0-beta9
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/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -1
- package/dist/exports/utils.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +24 -49
- package/dist/src/core/CoreNode.js +257 -255
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +1 -1
- package/dist/src/core/CoreTextNode.js +14 -15
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +4 -9
- package/dist/src/core/CoreTextureManager.js +41 -78
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +12 -27
- package/dist/src/core/Stage.js +50 -37
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.d.ts +10 -1
- package/dist/src/core/TextureMemoryManager.js +103 -50
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +5 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimationController.js +11 -4
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +19 -2
- package/dist/src/core/lib/WebGlContextWrapper.js +56 -25
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +1 -0
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +1 -0
- package/dist/src/core/renderers/CoreShaderNode.js +9 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +3 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +1 -4
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -3
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +56 -54
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +4 -2
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +31 -13
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +7 -5
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
- package/dist/src/core/shaders/{templates/shaderUtils.js → utils.js} +2 -2
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +4 -3
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
- package/dist/src/core/shaders/webgl/LinearGradient.js +5 -4
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RadialGradient.js +6 -5
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +18 -7
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +30 -17
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -50
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +1 -1
- package/dist/src/core/textures/ImageTexture.js +1 -1
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +12 -0
- package/dist/src/core/textures/Texture.js +19 -0
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/core/utils.d.ts +1 -1
- package/dist/src/main-api/Inspector.d.ts +6 -1
- package/dist/src/main-api/Inspector.js +42 -4
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +62 -43
- package/dist/src/main-api/Renderer.js +119 -31
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/utils.ts +7 -1
- package/package.json +1 -1
- package/src/core/CoreNode.ts +307 -313
- package/src/core/CoreTextNode.ts +23 -20
- package/src/core/CoreTextureManager.ts +40 -99
- package/src/core/Stage.ts +68 -65
- package/src/core/TextureMemoryManager.ts +135 -67
- package/src/core/animations/CoreAnimation.ts +7 -0
- package/src/core/animations/CoreAnimationController.ts +13 -4
- package/src/core/lib/WebGlContextWrapper.ts +69 -75
- package/src/core/renderers/CoreRenderer.ts +1 -0
- package/src/core/renderers/CoreShaderNode.ts +10 -0
- package/src/core/renderers/canvas/CanvasRenderer.ts +4 -0
- package/src/core/renderers/canvas/CanvasShaderNode.ts +1 -4
- package/src/core/renderers/webgl/WebGlCtxTexture.ts +0 -3
- package/src/core/renderers/webgl/WebGlRenderer.ts +64 -65
- package/src/core/renderers/webgl/WebGlShaderNode.ts +2 -4
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +37 -14
- package/src/core/shaders/canvas/LinearGradient.ts +8 -6
- package/src/core/shaders/canvas/RadialGradient.ts +22 -36
- package/src/core/shaders/canvas/RoundedWithBorder.ts +10 -8
- package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +14 -12
- package/src/core/shaders/canvas/RoundedWithShadow.ts +8 -7
- package/src/core/shaders/templates/BorderTemplate.ts +1 -1
- package/src/core/shaders/templates/HolePunchTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +1 -1
- package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -1
- package/src/core/shaders/templates/ShadowTemplate.ts +1 -1
- package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +2 -3
- package/src/core/shaders/webgl/HolePunch.ts +4 -7
- package/src/core/shaders/webgl/LinearGradient.ts +5 -4
- package/src/core/shaders/webgl/RadialGradient.ts +7 -6
- package/src/core/shaders/webgl/RoundedWithBorder.ts +18 -7
- package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +30 -21
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +2 -58
- package/src/core/textures/ImageTexture.ts +17 -16
- package/src/core/textures/Texture.ts +23 -0
- package/src/main-api/Inspector.ts +52 -5
- package/src/main-api/Renderer.ts +222 -77
- package/dist/src/core/platform.d.ts +0 -10
- package/dist/src/core/platform.js +0 -56
- package/dist/src/core/platform.js.map +0 -1
- package/dist/src/core/renderers/CoreShader.d.ts +0 -9
- package/dist/src/core/renderers/CoreShader.js +0 -28
- package/dist/src/core/renderers/CoreShader.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -123
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
- package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -55
- package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -57
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -227
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -613
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -231
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
- package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
- package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
- package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
- package/dist/src/core/temp.d.ts +0 -1
- package/dist/src/core/temp.js +0 -77
- package/dist/src/core/temp.js.map +0 -1
- package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
- package/dist/src/main-api/DynamicShaderController.js +0 -58
- package/dist/src/main-api/DynamicShaderController.js.map +0 -1
- package/dist/src/main-api/ShaderController.d.ts +0 -31
- package/dist/src/main-api/ShaderController.js +0 -37
- package/dist/src/main-api/ShaderController.js.map +0 -1
package/src/core/CoreTextNode.ts
CHANGED
|
@@ -25,7 +25,12 @@ import type {
|
|
|
25
25
|
TrFailedEventHandler,
|
|
26
26
|
TrLoadedEventHandler,
|
|
27
27
|
} from './text-rendering/renderers/TextRenderer.js';
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
CoreNode,
|
|
30
|
+
CoreNodeRenderState,
|
|
31
|
+
UpdateType,
|
|
32
|
+
type CoreNodeProps,
|
|
33
|
+
} from './CoreNode.js';
|
|
29
34
|
import type { Stage } from './Stage.js';
|
|
30
35
|
import type { CoreRenderer } from './renderers/CoreRenderer.js';
|
|
31
36
|
import type {
|
|
@@ -33,7 +38,6 @@ import type {
|
|
|
33
38
|
NodeTextLoadedPayload,
|
|
34
39
|
} from '../common/CommonTypes.js';
|
|
35
40
|
import type { RectWithValid } from './lib/utils.js';
|
|
36
|
-
import { assertTruthy } from '../utils.js';
|
|
37
41
|
|
|
38
42
|
export interface CoreTextNodeProps extends CoreNodeProps, TrProps {
|
|
39
43
|
/**
|
|
@@ -130,7 +134,7 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
130
134
|
this.props.width = calcWidth;
|
|
131
135
|
this.props.height = calcHeight;
|
|
132
136
|
}
|
|
133
|
-
this.
|
|
137
|
+
this.setUpdateType(UpdateType.Local);
|
|
134
138
|
|
|
135
139
|
// Incase the RAF loop has been stopped already before text was loaded,
|
|
136
140
|
// we request a render so it can be drawn.
|
|
@@ -211,7 +215,7 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
211
215
|
this._textRendererOverride,
|
|
212
216
|
);
|
|
213
217
|
|
|
214
|
-
if (
|
|
218
|
+
if (textRenderer === null) {
|
|
215
219
|
console.warn(
|
|
216
220
|
'Text Renderer not found for font',
|
|
217
221
|
this.trState.props.fontFamily,
|
|
@@ -370,23 +374,24 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
370
374
|
override update(delta: number, parentClippingRect: RectWithValid) {
|
|
371
375
|
super.update(delta, parentClippingRect);
|
|
372
376
|
|
|
373
|
-
assertTruthy(this.globalTransform);
|
|
374
|
-
|
|
375
377
|
// globalTransform is updated in super.update(delta)
|
|
376
|
-
this.textRenderer.set.x(this.trState, this.globalTransform
|
|
377
|
-
this.textRenderer.set.y(this.trState, this.globalTransform
|
|
378
|
+
this.textRenderer.set.x(this.trState, this.globalTransform!.tx);
|
|
379
|
+
this.textRenderer.set.y(this.trState, this.globalTransform!.ty);
|
|
378
380
|
}
|
|
379
381
|
|
|
380
|
-
override
|
|
381
|
-
|
|
382
|
-
|
|
382
|
+
override updateIsRenderable() {
|
|
383
|
+
// If the node is out of bounds or has an alpha of 0, it is not renderable
|
|
384
|
+
if (
|
|
385
|
+
this.worldAlpha === 0 ||
|
|
386
|
+
this.renderState <= CoreNodeRenderState.OutOfBounds
|
|
387
|
+
) {
|
|
388
|
+
this.setRenderable(false);
|
|
389
|
+
return;
|
|
383
390
|
}
|
|
384
391
|
|
|
385
|
-
if (this.trState && this.trState.props.text !== '') {
|
|
386
|
-
|
|
392
|
+
if (this.trState !== undefined && this.trState.props.text !== '') {
|
|
393
|
+
this.setRenderable(true);
|
|
387
394
|
}
|
|
388
|
-
|
|
389
|
-
return false;
|
|
390
395
|
}
|
|
391
396
|
|
|
392
397
|
override setRenderable(isRenderable: boolean) {
|
|
@@ -395,11 +400,9 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
395
400
|
}
|
|
396
401
|
|
|
397
402
|
override renderQuads(renderer: CoreRenderer) {
|
|
398
|
-
assertTruthy(this.globalTransform);
|
|
399
|
-
|
|
400
403
|
// If the text renderer does not support rendering quads, fallback to the
|
|
401
404
|
// default renderQuads method
|
|
402
|
-
if (
|
|
405
|
+
if (this.textRenderer.renderQuads === undefined) {
|
|
403
406
|
super.renderQuads(renderer);
|
|
404
407
|
return;
|
|
405
408
|
}
|
|
@@ -408,8 +411,8 @@ export class CoreTextNode extends CoreNode implements CoreTextNodeProps {
|
|
|
408
411
|
|
|
409
412
|
// Prevent quad rendering if parent has a render texture
|
|
410
413
|
// and this node is not the render texture
|
|
411
|
-
if (this.parentHasRenderTexture) {
|
|
412
|
-
if (
|
|
414
|
+
if (this.parentHasRenderTexture === true) {
|
|
415
|
+
if (renderer.renderToTextureActive === false) {
|
|
413
416
|
return;
|
|
414
417
|
}
|
|
415
418
|
// Prevent quad rendering if parent render texture is not the active render texture
|
|
@@ -24,7 +24,7 @@ import { ImageTexture } from './textures/ImageTexture.js';
|
|
|
24
24
|
import { NoiseTexture } from './textures/NoiseTexture.js';
|
|
25
25
|
import { SubTexture } from './textures/SubTexture.js';
|
|
26
26
|
import { RenderTexture } from './textures/RenderTexture.js';
|
|
27
|
-
import {
|
|
27
|
+
import { Texture, TextureType } from './textures/Texture.js';
|
|
28
28
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
29
29
|
import type { Stage } from './Stage.js';
|
|
30
30
|
import {
|
|
@@ -178,7 +178,6 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
178
178
|
*/
|
|
179
179
|
txConstructors: Partial<TextureMap> = {};
|
|
180
180
|
|
|
181
|
-
private downloadTextureSourceQueue: Array<Texture> = [];
|
|
182
181
|
private priorityQueue: Array<Texture> = [];
|
|
183
182
|
private uploadTextureQueue: Array<Texture> = [];
|
|
184
183
|
private initialized = false;
|
|
@@ -229,7 +228,7 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
229
228
|
.then((result) => {
|
|
230
229
|
this.initialize(result);
|
|
231
230
|
})
|
|
232
|
-
.catch((
|
|
231
|
+
.catch(() => {
|
|
233
232
|
console.warn(
|
|
234
233
|
'[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.',
|
|
235
234
|
);
|
|
@@ -290,15 +289,6 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
290
289
|
this.emit('initialized');
|
|
291
290
|
}
|
|
292
291
|
|
|
293
|
-
/**
|
|
294
|
-
* Enqueue a texture for downloading its source image.
|
|
295
|
-
*/
|
|
296
|
-
enqueueDownloadTextureSource(texture: Texture): void {
|
|
297
|
-
if (!this.downloadTextureSourceQueue.includes(texture)) {
|
|
298
|
-
this.downloadTextureSourceQueue.push(texture);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
|
|
302
292
|
/**
|
|
303
293
|
* Enqueue a texture for uploading to the GPU.
|
|
304
294
|
*
|
|
@@ -368,39 +358,15 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
368
358
|
return;
|
|
369
359
|
}
|
|
370
360
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
texture.ctxTexture !== undefined &&
|
|
374
|
-
texture.ctxTexture.state === 'loaded'
|
|
375
|
-
) {
|
|
376
|
-
texture.setState('loaded');
|
|
361
|
+
if (texture.state === 'loaded') {
|
|
362
|
+
// if the texture is already loaded, just return
|
|
377
363
|
return;
|
|
378
364
|
}
|
|
379
365
|
|
|
380
|
-
|
|
381
|
-
if (
|
|
382
|
-
this.downloadTextureSourceQueue.includes(texture) === true ||
|
|
383
|
-
this.uploadTextureQueue.includes(texture) === true
|
|
384
|
-
) {
|
|
366
|
+
if (Texture.TRANSITIONAL_TEXTURE_STATES.includes(texture.state)) {
|
|
385
367
|
return;
|
|
386
368
|
}
|
|
387
369
|
|
|
388
|
-
// if the texture is already loading, free it, this can happen if the texture is
|
|
389
|
-
// orphaned and then reloaded
|
|
390
|
-
if (
|
|
391
|
-
texture.ctxTexture !== undefined &&
|
|
392
|
-
texture.ctxTexture.state === 'loading'
|
|
393
|
-
) {
|
|
394
|
-
// if the texture has texture data, queue it for upload
|
|
395
|
-
if (texture.textureData !== null) {
|
|
396
|
-
this.enqueueUploadTexture(texture);
|
|
397
|
-
return;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
// else we will have to re-download the texture
|
|
401
|
-
texture.free();
|
|
402
|
-
}
|
|
403
|
-
|
|
404
370
|
// if we're not initialized, just queue the texture into the priority queue
|
|
405
371
|
if (this.initialized === false) {
|
|
406
372
|
this.priorityQueue.push(texture);
|
|
@@ -413,35 +379,34 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
413
379
|
texture.freeTextureData();
|
|
414
380
|
}
|
|
415
381
|
|
|
416
|
-
// these types of textures don't need to be downloaded
|
|
417
|
-
// Technically the noise texture shouldn't either, but it's a special case
|
|
418
|
-
// and not really used in production so who cares ¯\_(ツ)_/¯
|
|
419
|
-
if (
|
|
420
|
-
(texture.type === TextureType.color ||
|
|
421
|
-
texture.type === TextureType.renderToTexture) &&
|
|
422
|
-
texture.state !== 'initial'
|
|
423
|
-
) {
|
|
424
|
-
texture.setState('fetched');
|
|
425
|
-
this.enqueueUploadTexture(texture);
|
|
426
|
-
return;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
382
|
texture.setState('loading');
|
|
430
383
|
|
|
431
|
-
//
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
.
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
console.error(err);
|
|
440
|
-
});
|
|
441
|
-
}
|
|
384
|
+
// Get the texture data
|
|
385
|
+
texture
|
|
386
|
+
.getTextureData()
|
|
387
|
+
.then(() => {
|
|
388
|
+
if (texture.state !== 'fetched') {
|
|
389
|
+
texture.setState('failed');
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
442
392
|
|
|
443
|
-
|
|
444
|
-
|
|
393
|
+
// For non-image textures, upload immediately
|
|
394
|
+
if (texture.type !== TextureType.image) {
|
|
395
|
+
this.uploadTexture(texture);
|
|
396
|
+
} else {
|
|
397
|
+
// For image textures, queue for throttled upload
|
|
398
|
+
// If it's a priority texture, upload it immediately
|
|
399
|
+
if (priority === true) {
|
|
400
|
+
this.uploadTexture(texture);
|
|
401
|
+
} else {
|
|
402
|
+
this.enqueueUploadTexture(texture);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
})
|
|
406
|
+
.catch((err) => {
|
|
407
|
+
console.error(err);
|
|
408
|
+
texture.setState('failed');
|
|
409
|
+
});
|
|
445
410
|
}
|
|
446
411
|
|
|
447
412
|
/**
|
|
@@ -472,28 +437,26 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
472
437
|
* Check if a texture is being processed
|
|
473
438
|
*/
|
|
474
439
|
isProcessingTexture(texture: Texture): boolean {
|
|
475
|
-
return (
|
|
476
|
-
this.downloadTextureSourceQueue.includes(texture) === true ||
|
|
477
|
-
this.uploadTextureQueue.includes(texture) === true
|
|
478
|
-
);
|
|
440
|
+
return this.uploadTextureQueue.includes(texture) === true;
|
|
479
441
|
}
|
|
480
442
|
|
|
481
443
|
/**
|
|
482
|
-
* Process a limited number of
|
|
444
|
+
* Process a limited number of uploads.
|
|
483
445
|
*
|
|
484
|
-
* @param
|
|
446
|
+
* @param maxProcessingTime - The maximum processing time in milliseconds
|
|
485
447
|
*/
|
|
486
448
|
processSome(maxProcessingTime: number): void {
|
|
487
449
|
if (this.initialized === false) {
|
|
488
450
|
return;
|
|
489
451
|
}
|
|
490
452
|
|
|
491
|
-
const
|
|
453
|
+
const platform = this.platform;
|
|
454
|
+
const startTime = platform.getTimeStamp();
|
|
492
455
|
|
|
493
456
|
// Process priority queue
|
|
494
457
|
while (
|
|
495
458
|
this.priorityQueue.length > 0 &&
|
|
496
|
-
|
|
459
|
+
platform.getTimeStamp() - startTime < maxProcessingTime
|
|
497
460
|
) {
|
|
498
461
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
499
462
|
const texture = this.priorityQueue.pop()!;
|
|
@@ -505,32 +468,15 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
505
468
|
// Process uploads
|
|
506
469
|
while (
|
|
507
470
|
this.uploadTextureQueue.length > 0 &&
|
|
508
|
-
|
|
471
|
+
platform.getTimeStamp() - startTime < maxProcessingTime
|
|
509
472
|
) {
|
|
510
473
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
511
|
-
this.uploadTexture(this.uploadTextureQueue.
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
// Process downloads
|
|
515
|
-
while (
|
|
516
|
-
this.downloadTextureSourceQueue.length > 0 &&
|
|
517
|
-
this.platform.getTimeStamp() - startTime < maxProcessingTime
|
|
518
|
-
) {
|
|
519
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
520
|
-
const texture = this.downloadTextureSourceQueue.shift()!;
|
|
521
|
-
texture.getTextureData().then(() => {
|
|
522
|
-
if (texture.state === 'fetched') {
|
|
523
|
-
this.enqueueUploadTexture(texture);
|
|
524
|
-
}
|
|
525
|
-
});
|
|
474
|
+
this.uploadTexture(this.uploadTextureQueue.shift()!);
|
|
526
475
|
}
|
|
527
476
|
}
|
|
528
477
|
|
|
529
478
|
public hasUpdates(): boolean {
|
|
530
|
-
return
|
|
531
|
-
this.downloadTextureSourceQueue.length > 0 ||
|
|
532
|
-
this.uploadTextureQueue.length > 0
|
|
533
|
-
);
|
|
479
|
+
return this.uploadTextureQueue.length > 0;
|
|
534
480
|
}
|
|
535
481
|
|
|
536
482
|
/**
|
|
@@ -571,16 +517,11 @@ export class CoreTextureManager extends EventEmitter {
|
|
|
571
517
|
}
|
|
572
518
|
|
|
573
519
|
/**
|
|
574
|
-
* Remove texture from the queue
|
|
520
|
+
* Remove texture from the upload queue
|
|
575
521
|
*
|
|
576
522
|
* @param texture - The texture to remove
|
|
577
523
|
*/
|
|
578
524
|
removeTextureFromQueue(texture: Texture): void {
|
|
579
|
-
const downloadIndex = this.downloadTextureSourceQueue.indexOf(texture);
|
|
580
|
-
if (downloadIndex !== -1) {
|
|
581
|
-
this.downloadTextureSourceQueue.splice(downloadIndex, 1);
|
|
582
|
-
}
|
|
583
|
-
|
|
584
525
|
const uploadIndex = this.uploadTextureQueue.indexOf(texture);
|
|
585
526
|
if (uploadIndex !== -1) {
|
|
586
527
|
this.uploadTextureQueue.splice(uploadIndex, 1);
|
package/src/core/Stage.ts
CHANGED
|
@@ -46,8 +46,6 @@ import {
|
|
|
46
46
|
type TextureMemoryManagerSettings,
|
|
47
47
|
} from './TextureMemoryManager.js';
|
|
48
48
|
import { CoreRenderer } from './renderers/CoreRenderer.js';
|
|
49
|
-
import type { WebGlRenderer } from './renderers/webgl/WebGlRenderer.js';
|
|
50
|
-
import type { CanvasRenderer } from './renderers/canvas/CanvasRenderer.js';
|
|
51
49
|
import { CoreTextNode, type CoreTextNodeProps } from './CoreTextNode.js';
|
|
52
50
|
import { santizeCustomDataMap } from '../main-api/utils.js';
|
|
53
51
|
import type { SdfTextRenderer } from './text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
|
|
@@ -59,30 +57,19 @@ import type { Texture } from './textures/Texture.js';
|
|
|
59
57
|
import { ColorTexture } from './textures/ColorTexture.js';
|
|
60
58
|
import type { Platform } from './platforms/Platform.js';
|
|
61
59
|
import type { WebPlatform } from './platforms/web/WebPlatform.js';
|
|
60
|
+
import type { RendererMainSettings } from '../main-api/Renderer.js';
|
|
62
61
|
|
|
63
|
-
export
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
export type StageOptions = Omit<
|
|
63
|
+
RendererMainSettings,
|
|
64
|
+
'inspector' | 'platform'
|
|
65
|
+
> & {
|
|
66
66
|
textureMemory: TextureMemoryManagerSettings;
|
|
67
|
-
boundsMargin: number | [number, number, number, number];
|
|
68
|
-
deviceLogicalPixelRatio: number;
|
|
69
|
-
devicePhysicalPixelRatio: number;
|
|
70
67
|
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
71
|
-
clearColor: number;
|
|
72
68
|
fpsUpdateInterval: number;
|
|
73
|
-
enableContextSpy: boolean;
|
|
74
|
-
forceWebGL2: boolean;
|
|
75
|
-
numImageWorkers: number;
|
|
76
|
-
renderEngine: typeof WebGlRenderer | typeof CanvasRenderer;
|
|
77
69
|
eventBus: EventEmitter;
|
|
78
|
-
quadBufferSize: number;
|
|
79
|
-
fontEngines: (typeof CanvasTextRenderer | typeof SdfTextRenderer)[];
|
|
80
|
-
inspector: boolean;
|
|
81
|
-
strictBounds: boolean;
|
|
82
|
-
textureProcessingTimeLimit: number;
|
|
83
|
-
createImageBitmapSupport: 'auto' | 'basic' | 'options' | 'full';
|
|
84
70
|
platform: Platform | WebPlatform;
|
|
85
|
-
|
|
71
|
+
inspector: boolean;
|
|
72
|
+
};
|
|
86
73
|
|
|
87
74
|
export type StageFpsUpdateHandler = (
|
|
88
75
|
stage: Stage,
|
|
@@ -114,11 +101,11 @@ export class Stage {
|
|
|
114
101
|
public readonly interactiveNodes: Set<CoreNode> = new Set();
|
|
115
102
|
public boundsMargin: [number, number, number, number];
|
|
116
103
|
public readonly defShaderNode: CoreShaderNode | null = null;
|
|
117
|
-
public
|
|
118
|
-
public
|
|
104
|
+
public strictBound: Bound;
|
|
105
|
+
public preloadBound: Bound;
|
|
119
106
|
public readonly strictBounds: boolean;
|
|
120
107
|
public readonly defaultTexture: Texture | null = null;
|
|
121
|
-
public
|
|
108
|
+
public pixelRatio: number;
|
|
122
109
|
public readonly bufferMemory: number = 2e6;
|
|
123
110
|
public readonly platform: Platform | WebPlatform;
|
|
124
111
|
public readonly calculateTextureCoord: boolean;
|
|
@@ -152,7 +139,7 @@ export class Stage {
|
|
|
152
139
|
/**
|
|
153
140
|
* Stage constructor
|
|
154
141
|
*/
|
|
155
|
-
constructor(
|
|
142
|
+
constructor(public options: StageOptions) {
|
|
156
143
|
const {
|
|
157
144
|
canvas,
|
|
158
145
|
clearColor,
|
|
@@ -385,12 +372,12 @@ export class Stage {
|
|
|
385
372
|
* Start a new frame draw
|
|
386
373
|
*/
|
|
387
374
|
drawFrame() {
|
|
388
|
-
const { renderer, renderRequested } = this;
|
|
389
|
-
|
|
375
|
+
const { renderer, renderRequested, root } = this;
|
|
376
|
+
const txMemManager = this.txMemManager;
|
|
390
377
|
|
|
391
378
|
// Update tree if needed
|
|
392
|
-
if (
|
|
393
|
-
|
|
379
|
+
if (root.updateType !== 0) {
|
|
380
|
+
root.update(this.deltaTime, root.clippingRect);
|
|
394
381
|
}
|
|
395
382
|
|
|
396
383
|
// Process some textures
|
|
@@ -400,12 +387,12 @@ export class Stage {
|
|
|
400
387
|
renderer.reset();
|
|
401
388
|
|
|
402
389
|
// Check if we need to cleanup textures
|
|
403
|
-
if (
|
|
404
|
-
|
|
390
|
+
if (txMemManager.criticalCleanupRequested === true) {
|
|
391
|
+
txMemManager.cleanup(false);
|
|
405
392
|
|
|
406
|
-
if (
|
|
393
|
+
if (txMemManager.criticalCleanupRequested === true) {
|
|
407
394
|
// If we still need to cleanup, request another but aggressive cleanup
|
|
408
|
-
|
|
395
|
+
txMemManager.cleanup(true);
|
|
409
396
|
}
|
|
410
397
|
}
|
|
411
398
|
|
|
@@ -419,13 +406,13 @@ export class Stage {
|
|
|
419
406
|
this.addQuads(this.root);
|
|
420
407
|
|
|
421
408
|
// Perform render pass
|
|
422
|
-
renderer
|
|
409
|
+
renderer.render();
|
|
423
410
|
|
|
424
411
|
this.calculateFps();
|
|
425
412
|
this.calculateQuads();
|
|
426
413
|
|
|
427
414
|
// Reset renderRequested flag if it was set
|
|
428
|
-
if (renderRequested) {
|
|
415
|
+
if (renderRequested === true) {
|
|
429
416
|
this.renderRequested = false;
|
|
430
417
|
}
|
|
431
418
|
}
|
|
@@ -663,7 +650,20 @@ export class Stage {
|
|
|
663
650
|
}
|
|
664
651
|
|
|
665
652
|
/**
|
|
666
|
-
*
|
|
653
|
+
* Update the viewport bounds
|
|
654
|
+
*/
|
|
655
|
+
updateViewportBounds() {
|
|
656
|
+
const { appWidth, appHeight } = this.options;
|
|
657
|
+
this.strictBound = createBound(0, 0, appWidth, appHeight);
|
|
658
|
+
this.preloadBound = createPreloadBounds(
|
|
659
|
+
this.strictBound,
|
|
660
|
+
this.boundsMargin,
|
|
661
|
+
);
|
|
662
|
+
this.root.setUpdateType(UpdateType.RenderBounds | UpdateType.Children);
|
|
663
|
+
this.root.childUpdateType |= UpdateType.RenderBounds;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
/** Find all nodes at a given point
|
|
667
667
|
* @param data
|
|
668
668
|
*/
|
|
669
669
|
findNodesAtPoint(data: Point): CoreNode[] {
|
|
@@ -713,18 +713,23 @@ export class Stage {
|
|
|
713
713
|
*/
|
|
714
714
|
protected resolveNodeDefaults(props: Partial<CoreNodeProps>): CoreNodeProps {
|
|
715
715
|
const color = props.color ?? 0xffffffff;
|
|
716
|
-
const
|
|
717
|
-
const
|
|
718
|
-
|
|
719
|
-
const
|
|
720
|
-
|
|
721
|
-
const
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
716
|
+
const colorTop = props.colorTop ?? color;
|
|
717
|
+
const colorBottom = props.colorBottom ?? color;
|
|
718
|
+
const colorLeft = props.colorLeft ?? color;
|
|
719
|
+
const colorRight = props.colorRight ?? color;
|
|
720
|
+
|
|
721
|
+
const colorTl = props.colorTl ?? colorTop ?? colorLeft ?? color;
|
|
722
|
+
const colorTr = props.colorTr ?? colorTop ?? colorRight ?? color;
|
|
723
|
+
const colorBl = props.colorBl ?? colorBottom ?? colorLeft ?? color;
|
|
724
|
+
const colorBr = props.colorBr ?? colorBottom ?? colorRight ?? color;
|
|
725
|
+
|
|
726
|
+
const scale = props.scale ?? null;
|
|
727
|
+
const mount = props.mount ?? 0;
|
|
728
|
+
const pivot = props.pivot ?? 0.5;
|
|
729
|
+
|
|
730
|
+
const data = this.options.inspector
|
|
731
|
+
? santizeCustomDataMap(props.data ?? {})
|
|
732
|
+
: {};
|
|
728
733
|
|
|
729
734
|
return {
|
|
730
735
|
x: props.x ?? 0,
|
|
@@ -736,39 +741,37 @@ export class Stage {
|
|
|
736
741
|
boundsMargin: props.boundsMargin ?? null,
|
|
737
742
|
clipping: props.clipping ?? false,
|
|
738
743
|
color,
|
|
739
|
-
colorTop
|
|
740
|
-
colorBottom
|
|
741
|
-
colorLeft
|
|
742
|
-
colorRight
|
|
743
|
-
colorBl,
|
|
744
|
-
colorBr,
|
|
744
|
+
colorTop,
|
|
745
|
+
colorBottom,
|
|
746
|
+
colorLeft,
|
|
747
|
+
colorRight,
|
|
745
748
|
colorTl,
|
|
746
749
|
colorTr,
|
|
750
|
+
colorBl,
|
|
751
|
+
colorBr,
|
|
747
752
|
zIndex: props.zIndex ?? 0,
|
|
748
753
|
zIndexLocked: props.zIndexLocked ?? 0,
|
|
749
754
|
parent: props.parent ?? null,
|
|
750
755
|
texture: props.texture ?? null,
|
|
751
756
|
textureOptions: props.textureOptions ?? {},
|
|
752
757
|
shader: props.shader ?? this.defShaderNode,
|
|
753
|
-
// Since setting the `src` will trigger a texture load, we need to set it after
|
|
754
|
-
// we set the texture. Otherwise, problems happen.
|
|
755
758
|
src: props.src ?? null,
|
|
756
759
|
srcHeight: props.srcHeight,
|
|
757
760
|
srcWidth: props.srcWidth,
|
|
758
761
|
srcX: props.srcX,
|
|
759
762
|
srcY: props.srcY,
|
|
760
|
-
scale
|
|
761
|
-
scaleX: props.scaleX ??
|
|
762
|
-
scaleY: props.scaleY ??
|
|
763
|
-
mount
|
|
764
|
-
mountX: props.mountX ??
|
|
765
|
-
mountY: props.mountY ??
|
|
766
|
-
pivot
|
|
767
|
-
pivotX: props.pivotX ??
|
|
768
|
-
pivotY: props.pivotY ??
|
|
763
|
+
scale,
|
|
764
|
+
scaleX: props.scaleX ?? scale ?? 1,
|
|
765
|
+
scaleY: props.scaleY ?? scale ?? 1,
|
|
766
|
+
mount,
|
|
767
|
+
mountX: props.mountX ?? mount,
|
|
768
|
+
mountY: props.mountY ?? mount,
|
|
769
|
+
pivot,
|
|
770
|
+
pivotX: props.pivotX ?? pivot,
|
|
771
|
+
pivotY: props.pivotY ?? pivot,
|
|
769
772
|
rotation: props.rotation ?? 0,
|
|
770
773
|
rtt: props.rtt ?? false,
|
|
771
|
-
data
|
|
774
|
+
data,
|
|
772
775
|
imageType: props.imageType,
|
|
773
776
|
interactive: props.interactive ?? false,
|
|
774
777
|
strictBounds: props.strictBounds ?? this.strictBounds,
|