@lightningjs/renderer 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +1 -1
  2. package/dist/src/core/CoreNode.d.ts +63 -15
  3. package/dist/src/core/CoreNode.js +238 -118
  4. package/dist/src/core/CoreNode.js.map +1 -1
  5. package/dist/src/core/CoreTextNode.d.ts +1 -0
  6. package/dist/src/core/CoreTextNode.js +13 -0
  7. package/dist/src/core/CoreTextNode.js.map +1 -1
  8. package/dist/src/core/Stage.d.ts +6 -2
  9. package/dist/src/core/Stage.js +24 -21
  10. package/dist/src/core/Stage.js.map +1 -1
  11. package/dist/src/core/animations/CoreAnimation.js +11 -2
  12. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  13. package/dist/src/core/lib/ContextSpy.d.ts +12 -0
  14. package/dist/src/core/lib/ContextSpy.js +38 -0
  15. package/dist/src/core/lib/ContextSpy.js.map +1 -0
  16. package/dist/src/core/lib/WebGlContext.d.ts +414 -0
  17. package/dist/src/core/lib/WebGlContext.js +640 -0
  18. package/dist/src/core/lib/WebGlContext.js.map +1 -0
  19. package/dist/src/core/lib/WebGlContextWrapper.d.ts +496 -0
  20. package/dist/src/core/lib/WebGlContextWrapper.js +779 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -0
  22. package/dist/src/core/platform.js +4 -0
  23. package/dist/src/core/platform.js.map +1 -1
  24. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +9 -8
  25. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  26. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +4 -5
  27. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  28. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +15 -13
  29. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  30. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  31. package/package.json +1 -1
  32. package/src/core/CoreNode.ts +293 -149
  33. package/src/core/CoreTextNode.ts +16 -0
  34. package/src/core/Stage.ts +28 -31
  35. package/src/core/animations/CoreAnimation.ts +11 -2
  36. package/src/core/platform.ts +5 -0
  37. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +9 -40
  38. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +4 -5
  39. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +19 -15
  40. package/src/core/scene/Scene.ts +0 -120
package/README.md CHANGED
@@ -28,7 +28,7 @@ pnpm test
28
28
  # Run Visual Regression Tests
29
29
  pnpm test:visual
30
30
 
31
- # Build API Documentation (builds into ./docs folder)
31
+ # Build API Documentation (builds into ./typedocs folder)
32
32
  pnpm typedoc
33
33
 
34
34
  # Launch Example Tests in dev mode (includes Build Renderer (watch mode))
@@ -42,17 +42,72 @@ export interface CoreNodeProps {
42
42
  rotation: number;
43
43
  }
44
44
  type ICoreNode = Omit<CoreNodeProps, 'texture' | 'textureOptions' | 'shader' | 'shaderProps'>;
45
+ declare enum UpdateType {
46
+ /**
47
+ * Child updates
48
+ */
49
+ Children = 1,
50
+ /**
51
+ * Scale/Rotate transform update
52
+ */
53
+ ScaleRotate = 2,
54
+ /**
55
+ * Translate transform update (x/y/width/height/pivot/mount)
56
+ */
57
+ Local = 4,
58
+ /**
59
+ * Global transform update
60
+ */
61
+ Global = 8,
62
+ /**
63
+ * Clipping rect update
64
+ */
65
+ Clipping = 16,
66
+ /**
67
+ * Calculated ZIndex update
68
+ */
69
+ CalculatedZIndex = 32,
70
+ /**
71
+ * Z-Index Sorted Children update
72
+ */
73
+ ZIndexSortedChildren = 64,
74
+ /**
75
+ * Premultiplied Colors
76
+ */
77
+ PremultipliedColors = 128,
78
+ /**
79
+ * World Alpha
80
+ *
81
+ * @remarks
82
+ * World Alpha = Parent World Alpha * Alpha
83
+ */
84
+ WorldAlpha = 256,
85
+ /**
86
+ * None
87
+ */
88
+ None = 0,
89
+ /**
90
+ * All
91
+ */
92
+ All = 511
93
+ }
45
94
  export declare class CoreNode extends EventEmitter implements ICoreNode {
46
95
  protected stage: Stage;
47
96
  readonly children: CoreNode[];
48
97
  protected props: Required<CoreNodeProps>;
49
- recalculationType: number;
50
- hasUpdates: boolean;
98
+ updateType: UpdateType;
51
99
  globalTransform?: Matrix3d;
52
100
  scaleRotateTransform?: Matrix3d;
53
101
  localTransform?: Matrix3d;
54
102
  clippingRect: Rect | null;
103
+ isRenderable: boolean;
55
104
  private parentClippingRect;
105
+ worldAlpha: number;
106
+ premultipliedColorTl: number;
107
+ premultipliedColorTr: number;
108
+ premultipliedColorBl: number;
109
+ premultipliedColorBr: number;
110
+ calcZIndex: number;
56
111
  private isComplex;
57
112
  constructor(stage: Stage, props: CoreNodeProps);
58
113
  loadTexture<Type extends keyof TextureMap>(textureType: Type, props: ExtractProps<TextureMap[Type]>, options?: TextureOptions | null): void;
@@ -60,19 +115,15 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
60
115
  private onTextureLoaded;
61
116
  private onTextureFailed;
62
117
  loadShader<Type extends keyof ShaderMap>(shaderType: Type, props: ExtractProps<ShaderMap[Type]>): void;
63
- setHasUpdates(): void;
64
- setChildrenHasUpdates(): void;
65
- setParentHasUpdates(): void;
66
118
  /**
67
119
  * Change types types is used to determine the scope of the changes being applied
68
- * 1 - alpha recalculation
69
- * 2 - translate recalculation
70
- * 4 - transform recalculation
71
- * 8 - z-index recalculation
120
+ *
121
+ * @remarks
122
+ * See {@link UpdateType} for more information on each type
72
123
  *
73
124
  * @param type
74
125
  */
75
- setRecalculationType(type: number): void;
126
+ setUpdateType(type: UpdateType): void;
76
127
  sortChildren(): void;
77
128
  updateScaleRotateTransform(): void;
78
129
  updateLocalTransform(): void;
@@ -81,11 +132,10 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
81
132
  * @param delta
82
133
  */
83
134
  update(delta: number, parentClippingRect?: Rect | null): void;
135
+ checkIsRenderable(): boolean;
84
136
  /**
85
137
  * This function calculates the clipping rectangle for a node.
86
138
  *
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
139
  * If the parent clipping rectangle has not changed and the node's clipping rectangle is already set, the function returns immediately.
90
140
  *
91
141
  * 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.
@@ -94,6 +144,7 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
94
144
  * Finally, the node's parentClippingRect and clippingRect properties are updated.
95
145
  */
96
146
  calculateClippingRect(parentClippingRect?: Rect | null): void;
147
+ calculateZIndex(): void;
97
148
  renderQuads(renderer: CoreRenderer): void;
98
149
  get id(): number;
99
150
  get x(): number;
@@ -112,8 +163,6 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
112
163
  set scaleX(value: number);
113
164
  get scaleY(): number;
114
165
  set scaleY(value: number);
115
- get worldScaleX(): number;
116
- get worldScaleY(): number;
117
166
  get mount(): number;
118
167
  set mount(value: number);
119
168
  get mountX(): number;
@@ -130,7 +179,6 @@ export declare class CoreNode extends EventEmitter implements ICoreNode {
130
179
  set rotation(value: number);
131
180
  get alpha(): number;
132
181
  set alpha(value: number);
133
- get worldAlpha(): number;
134
182
  get clipping(): boolean;
135
183
  set clipping(value: boolean);
136
184
  get color(): number;