@lightningjs/renderer 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -8
- package/dist/exports/main-api.d.ts +3 -3
- package/dist/exports/main-api.js +3 -3
- package/dist/exports/main-api.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +24 -10
- package/dist/src/core/CoreNode.js +92 -20
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +4 -0
- package/dist/src/core/CoreShaderManager.js +8 -0
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.d.ts +2 -4
- package/dist/src/core/CoreTextNode.js +5 -53
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/Stage.d.ts +14 -3
- package/dist/src/core/Stage.js +52 -32
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.d.ts +1 -0
- package/dist/src/core/animations/CoreAnimation.js +25 -15
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +5 -1
- package/dist/src/core/lib/utils.js +17 -12
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/platform.js +4 -4
- package/dist/src/core/platform.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +1 -3
- package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +11 -17
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +13 -30
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -0
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -28
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +126 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +20 -2
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +98 -45
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +16 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +80 -42
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +16 -8
- package/dist/src/core/text-rendering/renderers/TextRenderer.js +34 -8
- package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
- package/dist/src/main-api/{IRenderDriver.d.ts → ICoreDriver.d.ts} +3 -2
- package/dist/src/main-api/{IRenderDriver.js → ICoreDriver.js} +1 -1
- package/dist/src/main-api/ICoreDriver.js.map +1 -0
- package/dist/src/main-api/INode.d.ts +2 -2
- package/dist/src/main-api/RendererMain.d.ts +16 -6
- package/dist/src/main-api/RendererMain.js +9 -3
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/{MainRenderDriver.d.ts → MainCoreDriver.d.ts} +3 -2
- package/dist/src/render-drivers/main/{MainRenderDriver.js → MainCoreDriver.js} +14 -4
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/{ThreadXRenderDriver.d.ts → ThreadXCoreDriver.d.ts} +4 -2
- package/dist/src/render-drivers/threadx/{ThreadXRenderDriver.js → ThreadXCoreDriver.js} +18 -4
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +9 -0
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
- package/dist/src/render-drivers/threadx/worker/renderer.js +8 -0
- package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
- package/dist/src/utils.js +2 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/main-api.ts +3 -3
- package/package.json +8 -3
- package/src/core/CoreNode.ts +107 -21
- package/src/core/CoreShaderManager.ts +11 -0
- package/src/core/CoreTextNode.ts +5 -58
- package/src/core/Stage.ts +65 -34
- package/src/core/animations/CoreAnimation.ts +47 -27
- package/src/core/lib/utils.ts +39 -13
- package/src/core/platform.ts +5 -4
- package/src/core/renderers/CoreRenderer.ts +1 -2
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +14 -35
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +4 -0
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +5 -29
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -0
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +107 -50
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +95 -44
- package/src/core/text-rendering/renderers/TextRenderer.ts +44 -16
- package/src/main-api/{IRenderDriver.ts → ICoreDriver.ts} +4 -2
- package/src/main-api/INode.ts +2 -2
- package/src/main-api/RendererMain.ts +23 -6
- package/src/render-drivers/main/{MainRenderDriver.ts → MainCoreDriver.ts} +17 -4
- package/src/render-drivers/threadx/{ThreadXRenderDriver.ts → ThreadXCoreDriver.ts} +23 -7
- package/src/render-drivers/threadx/ThreadXRendererMessage.ts +11 -0
- package/src/render-drivers/threadx/worker/renderer.ts +10 -0
- package/src/utils.ts +2 -1
- package/dist/src/main-api/IRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
- package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
package/README.md
CHANGED
|
@@ -25,21 +25,53 @@ pnpm watch
|
|
|
25
25
|
# Run unit tests
|
|
26
26
|
pnpm test
|
|
27
27
|
|
|
28
|
+
# Run Visual Regression Tests
|
|
29
|
+
pnpm test:visual
|
|
30
|
+
|
|
28
31
|
# Build API Documentation (builds into ./docs folder)
|
|
29
32
|
pnpm typedoc
|
|
30
33
|
|
|
31
|
-
# Launch
|
|
34
|
+
# Launch Example Tests in dev mode (includes Build Renderer (watch mode))
|
|
32
35
|
pnpm start
|
|
33
36
|
|
|
34
|
-
# Launch
|
|
37
|
+
# Launch Example Tests in production mode
|
|
35
38
|
# IMPORTANT: To run test examples on embedded devices that use older browser versions
|
|
36
39
|
# you MUST run the examples in this mode.
|
|
37
40
|
pnpm start:prod
|
|
38
41
|
```
|
|
39
42
|
|
|
40
|
-
##
|
|
43
|
+
## Example Tests
|
|
44
|
+
|
|
45
|
+
The Example Tests sub-project define a set of tests for various Renderer
|
|
46
|
+
features. This is NOT an automated test. The command below will launch a
|
|
47
|
+
web server which can be accessed by a web browser for manual testing. However,
|
|
48
|
+
many of the Example Tests define Snapshots for the Visual Regression Test Runner
|
|
49
|
+
(see below).
|
|
50
|
+
|
|
51
|
+
The Example Tests can be launched with:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
pnpm start
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
See [examples/README.md](./examples/README.md) for more info.
|
|
58
|
+
|
|
59
|
+
## Visual Regression Tests
|
|
60
|
+
|
|
61
|
+
In order to prevent bugs on existing Renderer features when new features or bug
|
|
62
|
+
fixes are added, the Renderer includes a Visual Regression Test Runner along
|
|
63
|
+
with a set of certified snapshot files that are checked into the repository.
|
|
64
|
+
|
|
65
|
+
These tests can be launched with:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
pnpm test:visual
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
The captured Snapshots of these tests are optionally defined in the individual
|
|
72
|
+
Example Tests.
|
|
41
73
|
|
|
42
|
-
See [
|
|
74
|
+
See [visual-regression/README.md](./visual-regression/README.md) for more info.
|
|
43
75
|
|
|
44
76
|
## Release Procedure
|
|
45
77
|
|
|
@@ -87,14 +119,14 @@ The Main Core Driver renders your application on the web page's main thread.
|
|
|
87
119
|
It can be configured into the Renderer like so:
|
|
88
120
|
|
|
89
121
|
```ts
|
|
90
|
-
import {
|
|
122
|
+
import { MainCoreDriver, RendererMain } from '@lightningjs/renderer';
|
|
91
123
|
|
|
92
124
|
const renderer = new RendererMain(
|
|
93
125
|
{
|
|
94
126
|
// App Config
|
|
95
127
|
},
|
|
96
128
|
'app', // App div ID
|
|
97
|
-
new
|
|
129
|
+
new MainCoreDriver(), // Main Render driver
|
|
98
130
|
);
|
|
99
131
|
|
|
100
132
|
// ...
|
|
@@ -109,7 +141,7 @@ It can be configured into the Renderer like so:
|
|
|
109
141
|
|
|
110
142
|
```ts
|
|
111
143
|
import {
|
|
112
|
-
|
|
144
|
+
ThreadXCoreDriver,
|
|
113
145
|
RendererMain,
|
|
114
146
|
} from '@lightningjs/renderer';
|
|
115
147
|
|
|
@@ -121,7 +153,7 @@ const renderer = new RendererMain(
|
|
|
121
153
|
// App Config
|
|
122
154
|
},
|
|
123
155
|
'app', // App div ID
|
|
124
|
-
new
|
|
156
|
+
new ThreadXCoreDriver({
|
|
125
157
|
coreWorkerUrl,
|
|
126
158
|
});
|
|
127
159
|
);
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
* @module
|
|
19
19
|
*/
|
|
20
20
|
export * from '../src/main-api/INode.js';
|
|
21
|
-
export * from '../src/main-api/
|
|
21
|
+
export * from '../src/main-api/ICoreDriver.js';
|
|
22
22
|
export * from '../src/main-api/RendererMain.js';
|
|
23
|
-
export * from '../src/render-drivers/main/
|
|
24
|
-
export * from '../src/render-drivers/threadx/
|
|
23
|
+
export * from '../src/render-drivers/main/MainCoreDriver.js';
|
|
24
|
+
export * from '../src/render-drivers/threadx/ThreadXCoreDriver.js';
|
|
25
25
|
export * from '../src/common/IAnimationController.js';
|
|
26
26
|
export * from '../src/common/CommonTypes.js';
|
|
27
27
|
export type { TextRendererMap } from '../src/core/text-rendering/renderers/TextRenderer.js';
|
package/dist/exports/main-api.js
CHANGED
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
* @module
|
|
37
37
|
*/
|
|
38
38
|
export * from '../src/main-api/INode.js';
|
|
39
|
-
export * from '../src/main-api/
|
|
39
|
+
export * from '../src/main-api/ICoreDriver.js';
|
|
40
40
|
export * from '../src/main-api/RendererMain.js';
|
|
41
|
-
export * from '../src/render-drivers/main/
|
|
42
|
-
export * from '../src/render-drivers/threadx/
|
|
41
|
+
export * from '../src/render-drivers/main/MainCoreDriver.js';
|
|
42
|
+
export * from '../src/render-drivers/threadx/ThreadXCoreDriver.js';
|
|
43
43
|
export * from '../src/common/IAnimationController.js';
|
|
44
44
|
export * from '../src/common/CommonTypes.js';
|
|
45
45
|
//# sourceMappingURL=main-api.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-api.js","sourceRoot":"","sources":["../../exports/main-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,
|
|
1
|
+
{"version":3,"file":"main-api.js","sourceRoot":"","sources":["../../exports/main-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,oDAAoD,CAAC;AACnE,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC"}
|
|
@@ -5,7 +5,7 @@ import type { CoreShader } from './renderers/CoreShader.js';
|
|
|
5
5
|
import type { Stage } from './Stage.js';
|
|
6
6
|
import type { Texture } from './textures/Texture.js';
|
|
7
7
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
8
|
-
import type
|
|
8
|
+
import { type Rect } from './lib/utils.js';
|
|
9
9
|
import { Matrix3d } from './lib/Matrix3d.js';
|
|
10
10
|
export interface CoreNodeProps {
|
|
11
11
|
id: number;
|
|
@@ -46,18 +46,13 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
|
|
|
46
46
|
protected stage: Stage;
|
|
47
47
|
readonly children: CoreNode[];
|
|
48
48
|
protected props: Required<CoreNodeProps>;
|
|
49
|
-
/**
|
|
50
|
-
* Recalculation type
|
|
51
|
-
* 0 - no recalculation
|
|
52
|
-
* 1 - alpha recalculation
|
|
53
|
-
* 2 - translate recalculation
|
|
54
|
-
* 4 - transform recalculation
|
|
55
|
-
*/
|
|
56
49
|
recalculationType: number;
|
|
57
50
|
hasUpdates: boolean;
|
|
58
51
|
globalTransform?: Matrix3d;
|
|
59
52
|
scaleRotateTransform?: Matrix3d;
|
|
60
53
|
localTransform?: Matrix3d;
|
|
54
|
+
clippingRect: Rect | null;
|
|
55
|
+
private parentClippingRect;
|
|
61
56
|
private isComplex;
|
|
62
57
|
constructor(stage: Stage, props: CoreNodeProps);
|
|
63
58
|
loadTexture<Type extends keyof TextureMap>(textureType: Type, props: ExtractProps<TextureMap[Type]>, options?: TextureOptions | null): void;
|
|
@@ -66,21 +61,40 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
|
|
|
66
61
|
private onTextureFailed;
|
|
67
62
|
loadShader<Type extends keyof ShaderMap>(shaderType: Type, props: ExtractProps<ShaderMap[Type]>): void;
|
|
68
63
|
setHasUpdates(): void;
|
|
64
|
+
setChildrenHasUpdates(): void;
|
|
65
|
+
setParentHasUpdates(): void;
|
|
69
66
|
/**
|
|
67
|
+
* Change types types is used to determine the scope of the changes being applied
|
|
70
68
|
* 1 - alpha recalculation
|
|
71
69
|
* 2 - translate recalculation
|
|
72
70
|
* 4 - transform recalculation
|
|
71
|
+
* 8 - z-index recalculation
|
|
72
|
+
*
|
|
73
73
|
* @param type
|
|
74
74
|
*/
|
|
75
75
|
setRecalculationType(type: number): void;
|
|
76
|
+
sortChildren(): void;
|
|
76
77
|
updateScaleRotateTransform(): void;
|
|
77
78
|
updateLocalTransform(): void;
|
|
78
79
|
/**
|
|
79
80
|
* @todo: test for correct calculation flag
|
|
80
81
|
* @param delta
|
|
81
82
|
*/
|
|
82
|
-
update(delta: number): void;
|
|
83
|
-
|
|
83
|
+
update(delta: number, parentClippingRect?: Rect | null): void;
|
|
84
|
+
/**
|
|
85
|
+
* This function calculates the clipping rectangle for a node.
|
|
86
|
+
*
|
|
87
|
+
* If the node's globalTransform is not set, the function returns immediately.
|
|
88
|
+
* If the node's props do not require clipping and there is no parent clipping rectangle, the node's clipping rectangle is set to null.
|
|
89
|
+
* If the parent clipping rectangle has not changed and the node's clipping rectangle is already set, the function returns immediately.
|
|
90
|
+
*
|
|
91
|
+
* The function then checks if the node is rotated. If the node requires clipping and is not rotated, a new clipping rectangle is created based on the node's global transform and dimensions.
|
|
92
|
+
* If a parent clipping rectangle exists, it is intersected with the node's clipping rectangle (if it exists), or replaces the node's clipping rectangle.
|
|
93
|
+
*
|
|
94
|
+
* Finally, the node's parentClippingRect and clippingRect properties are updated.
|
|
95
|
+
*/
|
|
96
|
+
calculateClippingRect(parentClippingRect?: Rect | null): void;
|
|
97
|
+
renderQuads(renderer: CoreRenderer): void;
|
|
84
98
|
get id(): number;
|
|
85
99
|
get x(): number;
|
|
86
100
|
set x(value: number);
|
|
@@ -18,23 +18,19 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { assertTruthy } from '../utils.js';
|
|
20
20
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
21
|
+
import { intersectRect } from './lib/utils.js';
|
|
21
22
|
import { Matrix3d } from './lib/Matrix3d.js';
|
|
22
23
|
export class CoreNode extends EventEmitter {
|
|
23
24
|
stage;
|
|
24
25
|
children = [];
|
|
25
26
|
props;
|
|
26
|
-
|
|
27
|
-
* Recalculation type
|
|
28
|
-
* 0 - no recalculation
|
|
29
|
-
* 1 - alpha recalculation
|
|
30
|
-
* 2 - translate recalculation
|
|
31
|
-
* 4 - transform recalculation
|
|
32
|
-
*/
|
|
33
|
-
recalculationType = 6;
|
|
27
|
+
recalculationType = 0;
|
|
34
28
|
hasUpdates = true;
|
|
35
29
|
globalTransform;
|
|
36
30
|
scaleRotateTransform;
|
|
37
31
|
localTransform;
|
|
32
|
+
clippingRect = null;
|
|
33
|
+
parentClippingRect = null;
|
|
38
34
|
isComplex = false;
|
|
39
35
|
constructor(stage, props) {
|
|
40
36
|
super();
|
|
@@ -101,25 +97,39 @@ export class CoreNode extends EventEmitter {
|
|
|
101
97
|
this.props.shaderProps = p;
|
|
102
98
|
}
|
|
103
99
|
setHasUpdates() {
|
|
104
|
-
if (!this.props.alpha) {
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
107
100
|
this.hasUpdates = true;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
}
|
|
102
|
+
setChildrenHasUpdates() {
|
|
103
|
+
this.children.forEach((child) => {
|
|
104
|
+
child.setRecalculationType(2);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
setParentHasUpdates() {
|
|
108
|
+
if (!this.props.parent) {
|
|
109
|
+
return;
|
|
112
110
|
}
|
|
111
|
+
this.props.parent.setRecalculationType(1);
|
|
113
112
|
}
|
|
114
113
|
/**
|
|
114
|
+
* Change types types is used to determine the scope of the changes being applied
|
|
115
115
|
* 1 - alpha recalculation
|
|
116
116
|
* 2 - translate recalculation
|
|
117
117
|
* 4 - transform recalculation
|
|
118
|
+
* 8 - z-index recalculation
|
|
119
|
+
*
|
|
118
120
|
* @param type
|
|
119
121
|
*/
|
|
120
122
|
setRecalculationType(type) {
|
|
121
123
|
this.recalculationType |= type;
|
|
122
124
|
this.setHasUpdates();
|
|
125
|
+
// always forcing parent updates so the root will have an hasUpdates flag
|
|
126
|
+
this.setParentHasUpdates();
|
|
127
|
+
if (type & 4) {
|
|
128
|
+
this.setChildrenHasUpdates();
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
sortChildren() {
|
|
132
|
+
this.children.sort((a, b) => a.zIndex - b.zIndex);
|
|
123
133
|
}
|
|
124
134
|
updateScaleRotateTransform() {
|
|
125
135
|
this.setRecalculationType(4);
|
|
@@ -142,7 +152,7 @@ export class CoreNode extends EventEmitter {
|
|
|
142
152
|
* @todo: test for correct calculation flag
|
|
143
153
|
* @param delta
|
|
144
154
|
*/
|
|
145
|
-
update(delta) {
|
|
155
|
+
update(delta, parentClippingRect = null) {
|
|
146
156
|
assertTruthy(this.localTransform);
|
|
147
157
|
const parentGlobalTransform = this.parent?.globalTransform;
|
|
148
158
|
if (parentGlobalTransform) {
|
|
@@ -151,22 +161,69 @@ export class CoreNode extends EventEmitter {
|
|
|
151
161
|
else {
|
|
152
162
|
this.globalTransform = Matrix3d.copy(this.localTransform, this.globalTransform);
|
|
153
163
|
}
|
|
164
|
+
this.calculateClippingRect(parentClippingRect);
|
|
154
165
|
if (this.children.length) {
|
|
155
166
|
this.children.forEach((child) => {
|
|
156
|
-
child.update(delta);
|
|
167
|
+
child.update(delta, this.clippingRect);
|
|
157
168
|
});
|
|
158
169
|
}
|
|
170
|
+
if (this.recalculationType & 8) {
|
|
171
|
+
// reorder z-index
|
|
172
|
+
this.sortChildren();
|
|
173
|
+
}
|
|
159
174
|
// reset update flag
|
|
160
175
|
this.hasUpdates = false;
|
|
161
176
|
// reset recalculation type
|
|
162
177
|
this.recalculationType = 0;
|
|
163
178
|
}
|
|
164
|
-
|
|
179
|
+
/**
|
|
180
|
+
* This function calculates the clipping rectangle for a node.
|
|
181
|
+
*
|
|
182
|
+
* If the node's globalTransform is not set, the function returns immediately.
|
|
183
|
+
* If the node's props do not require clipping and there is no parent clipping rectangle, the node's clipping rectangle is set to null.
|
|
184
|
+
* If the parent clipping rectangle has not changed and the node's clipping rectangle is already set, the function returns immediately.
|
|
185
|
+
*
|
|
186
|
+
* The function then checks if the node is rotated. If the node requires clipping and is not rotated, a new clipping rectangle is created based on the node's global transform and dimensions.
|
|
187
|
+
* If a parent clipping rectangle exists, it is intersected with the node's clipping rectangle (if it exists), or replaces the node's clipping rectangle.
|
|
188
|
+
*
|
|
189
|
+
* Finally, the node's parentClippingRect and clippingRect properties are updated.
|
|
190
|
+
*/
|
|
191
|
+
calculateClippingRect(parentClippingRect = null) {
|
|
192
|
+
if (!this.globalTransform) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
if (!this.props.clipping && !parentClippingRect) {
|
|
196
|
+
this.clippingRect = null;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (this.parentClippingRect === parentClippingRect && this.clippingRect) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const gt = this.globalTransform;
|
|
203
|
+
const isRotated = gt.tb !== 0 || gt.tc !== 0;
|
|
204
|
+
let clippingRect = this.props.clipping && !isRotated
|
|
205
|
+
? {
|
|
206
|
+
x: gt.tx,
|
|
207
|
+
y: gt.ty,
|
|
208
|
+
width: this.width * gt.ta,
|
|
209
|
+
height: this.height * gt.td,
|
|
210
|
+
}
|
|
211
|
+
: null;
|
|
212
|
+
if (parentClippingRect && clippingRect) {
|
|
213
|
+
clippingRect = intersectRect(parentClippingRect, clippingRect);
|
|
214
|
+
}
|
|
215
|
+
else if (parentClippingRect) {
|
|
216
|
+
clippingRect = parentClippingRect;
|
|
217
|
+
}
|
|
218
|
+
this.parentClippingRect = parentClippingRect;
|
|
219
|
+
this.clippingRect = clippingRect;
|
|
220
|
+
}
|
|
221
|
+
renderQuads(renderer) {
|
|
165
222
|
const { width, height, colorTl, colorTr, colorBl, colorBr, texture, textureOptions, shader, shaderProps, } = this.props;
|
|
166
|
-
const { zIndex, worldAlpha, globalTransform: gt } = this;
|
|
223
|
+
const { zIndex, worldAlpha, globalTransform: gt, clippingRect } = this;
|
|
167
224
|
assertTruthy(gt);
|
|
168
225
|
// add to list of renderables to be sorted before rendering
|
|
169
|
-
renderer.
|
|
226
|
+
renderer.addQuad({
|
|
170
227
|
width,
|
|
171
228
|
height,
|
|
172
229
|
colorTl,
|
|
@@ -337,6 +394,7 @@ export class CoreNode extends EventEmitter {
|
|
|
337
394
|
}
|
|
338
395
|
set alpha(value) {
|
|
339
396
|
this.props.alpha = value;
|
|
397
|
+
this.setRecalculationType(1);
|
|
340
398
|
}
|
|
341
399
|
get worldAlpha() {
|
|
342
400
|
const props = this.props;
|
|
@@ -348,6 +406,8 @@ export class CoreNode extends EventEmitter {
|
|
|
348
406
|
}
|
|
349
407
|
set clipping(value) {
|
|
350
408
|
this.props.clipping = value;
|
|
409
|
+
this.clippingRect = null;
|
|
410
|
+
this.setRecalculationType(4);
|
|
351
411
|
}
|
|
352
412
|
get color() {
|
|
353
413
|
return this.props.color;
|
|
@@ -363,6 +423,7 @@ export class CoreNode extends EventEmitter {
|
|
|
363
423
|
this.colorBr = value;
|
|
364
424
|
}
|
|
365
425
|
this.props.color = value;
|
|
426
|
+
this.setRecalculationType(2);
|
|
366
427
|
}
|
|
367
428
|
get colorTop() {
|
|
368
429
|
return this.props.colorTop;
|
|
@@ -373,6 +434,7 @@ export class CoreNode extends EventEmitter {
|
|
|
373
434
|
this.colorTr = value;
|
|
374
435
|
}
|
|
375
436
|
this.props.colorTop = value;
|
|
437
|
+
this.setRecalculationType(2);
|
|
376
438
|
}
|
|
377
439
|
get colorBottom() {
|
|
378
440
|
return this.props.colorBottom;
|
|
@@ -383,6 +445,7 @@ export class CoreNode extends EventEmitter {
|
|
|
383
445
|
this.colorBr = value;
|
|
384
446
|
}
|
|
385
447
|
this.props.colorBottom = value;
|
|
448
|
+
this.setRecalculationType(2);
|
|
386
449
|
}
|
|
387
450
|
get colorLeft() {
|
|
388
451
|
return this.props.colorLeft;
|
|
@@ -393,6 +456,7 @@ export class CoreNode extends EventEmitter {
|
|
|
393
456
|
this.colorBl = value;
|
|
394
457
|
}
|
|
395
458
|
this.props.colorLeft = value;
|
|
459
|
+
this.setRecalculationType(2);
|
|
396
460
|
}
|
|
397
461
|
get colorRight() {
|
|
398
462
|
return this.props.colorRight;
|
|
@@ -403,30 +467,35 @@ export class CoreNode extends EventEmitter {
|
|
|
403
467
|
this.colorBr = value;
|
|
404
468
|
}
|
|
405
469
|
this.props.colorRight = value;
|
|
470
|
+
this.setRecalculationType(2);
|
|
406
471
|
}
|
|
407
472
|
get colorTl() {
|
|
408
473
|
return this.props.colorTl;
|
|
409
474
|
}
|
|
410
475
|
set colorTl(value) {
|
|
411
476
|
this.props.colorTl = value;
|
|
477
|
+
this.setRecalculationType(2);
|
|
412
478
|
}
|
|
413
479
|
get colorTr() {
|
|
414
480
|
return this.props.colorTr;
|
|
415
481
|
}
|
|
416
482
|
set colorTr(value) {
|
|
417
483
|
this.props.colorTr = value;
|
|
484
|
+
this.setRecalculationType(2);
|
|
418
485
|
}
|
|
419
486
|
get colorBl() {
|
|
420
487
|
return this.props.colorBl;
|
|
421
488
|
}
|
|
422
489
|
set colorBl(value) {
|
|
423
490
|
this.props.colorBl = value;
|
|
491
|
+
this.setRecalculationType(2);
|
|
424
492
|
}
|
|
425
493
|
get colorBr() {
|
|
426
494
|
return this.props.colorBr;
|
|
427
495
|
}
|
|
428
496
|
set colorBr(value) {
|
|
429
497
|
this.props.colorBr = value;
|
|
498
|
+
this.setRecalculationType(2);
|
|
430
499
|
}
|
|
431
500
|
// we're only interested in parent zIndex to test
|
|
432
501
|
// if we should use node zIndex is higher then parent zIndex
|
|
@@ -447,6 +516,7 @@ export class CoreNode extends EventEmitter {
|
|
|
447
516
|
}
|
|
448
517
|
set zIndex(value) {
|
|
449
518
|
this.props.zIndex = value;
|
|
519
|
+
this.props.parent?.setRecalculationType(8);
|
|
450
520
|
}
|
|
451
521
|
get parent() {
|
|
452
522
|
return this.props.parent;
|
|
@@ -464,6 +534,8 @@ export class CoreNode extends EventEmitter {
|
|
|
464
534
|
}
|
|
465
535
|
if (newParent) {
|
|
466
536
|
newParent.children.push(this);
|
|
537
|
+
// force parent to recalculate z-index for its children
|
|
538
|
+
newParent.setRecalculationType(8);
|
|
467
539
|
}
|
|
468
540
|
this.updateScaleRotateTransform();
|
|
469
541
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreNode.js","sourceRoot":"","sources":["../../../src/core/CoreNode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CoreNode.js","sourceRoot":"","sources":["../../../src/core/CoreNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { BorderLeftEffect } from './renderers/webgl/shaders/effects/BorderLeftEf
|
|
|
17
17
|
import { GlitchEffect } from './renderers/webgl/shaders/effects/GlitchEffect.js';
|
|
18
18
|
import { FadeOutEffect } from './renderers/webgl/shaders/effects/FadeOutEffect.js';
|
|
19
19
|
import { RadialGradientEffect } from './renderers/webgl/shaders/effects/RadialGradientEffect.js';
|
|
20
|
+
import { RadialProgressEffect } from './renderers/webgl/shaders/effects/RadialProgressEffect.js';
|
|
20
21
|
export interface ShaderMap {
|
|
21
22
|
DefaultShader: typeof DefaultShader;
|
|
22
23
|
DefaultShaderBatched: typeof DefaultShaderBatched;
|
|
@@ -40,6 +41,7 @@ export interface EffectMap {
|
|
|
40
41
|
radialGradient: typeof RadialGradientEffect;
|
|
41
42
|
grayscale: typeof GrayscaleEffect;
|
|
42
43
|
glitch: typeof GlitchEffect;
|
|
44
|
+
radialProgress: typeof RadialProgressEffect;
|
|
43
45
|
}
|
|
44
46
|
export declare class CoreShaderManager {
|
|
45
47
|
protected shCache: Map<string, InstanceType<ShaderMap[keyof ShaderMap]>>;
|
|
@@ -50,6 +52,8 @@ export declare class CoreShaderManager {
|
|
|
50
52
|
constructor();
|
|
51
53
|
registerShaderType<Type extends keyof ShaderMap>(shType: Type, shClass: ShaderMap[Type]): void;
|
|
52
54
|
registerEffectType<Type extends keyof EffectMap>(effectType: Type, effectClass: EffectMap[Type]): void;
|
|
55
|
+
getRegisteredEffects(): Partial<EffectMap>;
|
|
56
|
+
getRegisteredShaders(): Partial<ShaderMap>;
|
|
53
57
|
loadShader<Type extends keyof ShaderMap>(shType: Type, props?: ExtractProps<ShaderMap[Type]>): ShaderNode<Type>;
|
|
54
58
|
loadDynamicShader<Type extends keyof ShaderMap>(props: DynamicShaderProps): ShaderNode<Type>;
|
|
55
59
|
useShader(shader: CoreShader): void;
|
|
@@ -14,6 +14,7 @@ import { BorderLeftEffect } from './renderers/webgl/shaders/effects/BorderLeftEf
|
|
|
14
14
|
import { GlitchEffect } from './renderers/webgl/shaders/effects/GlitchEffect.js';
|
|
15
15
|
import { FadeOutEffect } from './renderers/webgl/shaders/effects/FadeOutEffect.js';
|
|
16
16
|
import { RadialGradientEffect } from './renderers/webgl/shaders/effects/RadialGradientEffect.js';
|
|
17
|
+
import { RadialProgressEffect } from './renderers/webgl/shaders/effects/RadialProgressEffect.js';
|
|
17
18
|
export class CoreShaderManager {
|
|
18
19
|
shCache = new Map();
|
|
19
20
|
shConstructors = {};
|
|
@@ -37,6 +38,7 @@ export class CoreShaderManager {
|
|
|
37
38
|
this.registerEffectType('grayscale', GrayscaleEffect);
|
|
38
39
|
this.registerEffectType('glitch', GlitchEffect);
|
|
39
40
|
this.registerEffectType('radius', RadiusEffect);
|
|
41
|
+
this.registerEffectType('radialProgress', RadialProgressEffect);
|
|
40
42
|
}
|
|
41
43
|
registerShaderType(shType, shClass) {
|
|
42
44
|
this.shConstructors[shType] = shClass;
|
|
@@ -44,6 +46,12 @@ export class CoreShaderManager {
|
|
|
44
46
|
registerEffectType(effectType, effectClass) {
|
|
45
47
|
this.effectConstructors[effectType] = effectClass;
|
|
46
48
|
}
|
|
49
|
+
getRegisteredEffects() {
|
|
50
|
+
return this.effectConstructors;
|
|
51
|
+
}
|
|
52
|
+
getRegisteredShaders() {
|
|
53
|
+
return this.shConstructors;
|
|
54
|
+
}
|
|
47
55
|
loadShader(shType, props) {
|
|
48
56
|
if (!this.renderer) {
|
|
49
57
|
throw new Error(`Renderer is not been defined`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoreShaderManager.js","sourceRoot":"","sources":["../../../src/core/CoreShaderManager.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EACL,aAAa,GAEd,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,sDAAsD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yDAAyD,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,mDAAmD,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oDAAoD,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AA8BjG,MAAM,OAAO,iBAAiB;IAClB,OAAO,GACf,IAAI,GAAG,EAAE,CAAC;IACF,cAAc,GAAuB,EAAE,CAAC;IACxC,cAAc,GAAsB,IAAI,CAAC;IACzC,kBAAkB,GAAuB,EAAE,CAAC;IACtD,QAAQ,CAAgB;IAExB;QACE,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;QACtE,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACxD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;QAChE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"CoreShaderManager.js","sourceRoot":"","sources":["../../../src/core/CoreShaderManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ type ICoreTextNode = Omit<CoreTextNodeProps, 'texture' | 'textureOptions' | 'sha
|
|
|
11
11
|
export declare class CoreTextNode extends CoreNode implements ICoreTextNode {
|
|
12
12
|
textRenderer: TextRenderer;
|
|
13
13
|
trState: TextRendererState;
|
|
14
|
-
updateScheduled: boolean;
|
|
15
14
|
private _textRendererOverride;
|
|
16
15
|
constructor(stage: Stage, props: CoreTextNodeProps);
|
|
17
16
|
private onTextLoaded;
|
|
@@ -50,9 +49,8 @@ export declare class CoreTextNode extends CoreNode implements ICoreTextNode {
|
|
|
50
49
|
set letterSpacing(value: CoreTextNodeProps['letterSpacing']);
|
|
51
50
|
get debug(): CoreTextNodeProps['debug'];
|
|
52
51
|
set debug(value: CoreTextNodeProps['debug']);
|
|
53
|
-
update(delta: number): void;
|
|
54
|
-
|
|
55
|
-
renderQuads(renderer: CoreRenderer, clippingRect: Rect | null): void;
|
|
52
|
+
update(delta: number, parentClippingRect?: Rect | null): void;
|
|
53
|
+
renderQuads(renderer: CoreRenderer): void;
|
|
56
54
|
/**
|
|
57
55
|
* Resolve a text renderer and a new state based on the current text renderer props provided
|
|
58
56
|
* @param props
|