@lightningjs/renderer 2.3.2 → 2.5.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.
Files changed (157) hide show
  1. package/dist/exports/core-api.d.ts +74 -0
  2. package/dist/exports/core-api.js +96 -0
  3. package/dist/exports/core-api.js.map +1 -0
  4. package/dist/exports/main-api.d.ts +30 -0
  5. package/dist/exports/main-api.js +45 -0
  6. package/dist/exports/main-api.js.map +1 -0
  7. package/dist/src/common/CommonTypes.d.ts +6 -0
  8. package/dist/src/core/CoreExtension.d.ts +12 -0
  9. package/dist/src/core/CoreExtension.js +29 -0
  10. package/dist/src/core/CoreExtension.js.map +1 -0
  11. package/dist/src/core/CoreNode.js +37 -39
  12. package/dist/src/core/CoreNode.js.map +1 -1
  13. package/dist/src/core/Stage.d.ts +1 -0
  14. package/dist/src/core/Stage.js +4 -1
  15. package/dist/src/core/Stage.js.map +1 -1
  16. package/dist/src/core/animations/CoreAnimation.d.ts +1 -0
  17. package/dist/src/core/animations/CoreAnimation.js +6 -0
  18. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  19. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  20. package/dist/src/core/animations/CoreAnimationController.js +6 -0
  21. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  22. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +7 -1
  24. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  25. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +11 -4
  26. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  27. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +94 -98
  28. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  29. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +4 -0
  30. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  31. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +5 -1
  32. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  33. package/dist/src/core/text-rendering/TrFontManager.d.ts +1 -1
  34. package/dist/src/core/text-rendering/TrFontManager.js +2 -2
  35. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  36. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
  37. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +5 -6
  38. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  39. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +18 -10
  40. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  41. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +4 -4
  42. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  43. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +3 -1
  44. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  45. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +2 -1
  46. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -1
  47. package/dist/src/core/textures/ColorTexture.d.ts +2 -1
  48. package/dist/src/core/textures/ColorTexture.js +2 -1
  49. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  50. package/dist/src/core/textures/ImageTexture.d.ts +2 -1
  51. package/dist/src/core/textures/ImageTexture.js +4 -3
  52. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  53. package/dist/src/core/textures/NoiseTexture.d.ts +2 -1
  54. package/dist/src/core/textures/NoiseTexture.js +2 -1
  55. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  56. package/dist/src/core/textures/RenderTexture.d.ts +2 -1
  57. package/dist/src/core/textures/RenderTexture.js +2 -1
  58. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  59. package/dist/src/core/textures/SubTexture.d.ts +2 -1
  60. package/dist/src/core/textures/SubTexture.js +2 -1
  61. package/dist/src/core/textures/SubTexture.js.map +1 -1
  62. package/dist/src/core/textures/Texture.d.ts +9 -0
  63. package/dist/src/core/textures/Texture.js +10 -0
  64. package/dist/src/core/textures/Texture.js.map +1 -1
  65. package/dist/src/core/utils.d.ts +1 -1
  66. package/dist/src/main-api/ICoreDriver.d.ts +24 -0
  67. package/dist/src/main-api/ICoreDriver.js +20 -0
  68. package/dist/src/main-api/ICoreDriver.js.map +1 -0
  69. package/dist/src/main-api/Renderer.js +1 -0
  70. package/dist/src/main-api/Renderer.js.map +1 -1
  71. package/dist/src/main-api/RendererMain.d.ts +378 -0
  72. package/dist/src/main-api/RendererMain.js +367 -0
  73. package/dist/src/main-api/RendererMain.js.map +1 -0
  74. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +9 -0
  75. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +38 -0
  76. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +1 -0
  77. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +56 -0
  78. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +101 -0
  79. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -0
  80. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +32 -0
  81. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +28 -0
  82. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +1 -0
  83. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +21 -0
  84. package/dist/src/render-drivers/main/MainCoreDriver.js +115 -0
  85. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
  86. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +101 -0
  87. package/dist/src/render-drivers/main/MainOnlyNode.js +425 -0
  88. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
  89. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +47 -0
  90. package/dist/src/render-drivers/main/MainOnlyTextNode.js +204 -0
  91. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
  92. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +93 -0
  93. package/dist/src/render-drivers/threadx/NodeStruct.js +290 -0
  94. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
  95. package/dist/src/render-drivers/threadx/SharedNode.d.ts +40 -0
  96. package/dist/src/render-drivers/threadx/SharedNode.js +61 -0
  97. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
  98. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +44 -0
  99. package/dist/src/render-drivers/threadx/TextNodeStruct.js +203 -0
  100. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
  101. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +25 -0
  102. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +232 -0
  103. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
  104. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +24 -0
  105. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +113 -0
  106. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
  107. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +46 -0
  108. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +160 -0
  109. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
  110. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +28 -0
  111. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +55 -0
  112. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
  113. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +70 -0
  114. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
  115. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
  116. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
  117. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +184 -0
  118. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
  119. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +27 -0
  120. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +109 -0
  121. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
  122. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
  123. package/dist/src/render-drivers/threadx/worker/renderer.js +147 -0
  124. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
  125. package/dist/src/render-drivers/utils.d.ts +12 -0
  126. package/dist/src/render-drivers/utils.js +74 -0
  127. package/dist/src/render-drivers/utils.js.map +1 -0
  128. package/dist/src/utils.js +1 -1
  129. package/dist/src/utils.js.map +1 -1
  130. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  131. package/dist/tsconfig.tsbuildinfo +1 -0
  132. package/package.json +1 -1
  133. package/src/common/CommonTypes.ts +7 -0
  134. package/src/core/CoreNode.ts +38 -55
  135. package/src/core/Stage.ts +6 -1
  136. package/src/core/animations/CoreAnimation.ts +7 -0
  137. package/src/core/animations/CoreAnimationController.ts +12 -0
  138. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +7 -1
  139. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +13 -4
  140. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +122 -136
  141. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +7 -0
  142. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +8 -1
  143. package/src/core/text-rendering/TrFontManager.ts +3 -1
  144. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -1
  145. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +7 -7
  146. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +28 -14
  147. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +8 -6
  148. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +5 -1
  149. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +2 -1
  150. package/src/core/textures/ColorTexture.ts +3 -1
  151. package/src/core/textures/ImageTexture.ts +5 -3
  152. package/src/core/textures/NoiseTexture.ts +3 -1
  153. package/src/core/textures/RenderTexture.ts +3 -1
  154. package/src/core/textures/SubTexture.ts +3 -0
  155. package/src/core/textures/Texture.ts +11 -0
  156. package/src/main-api/Renderer.ts +1 -0
  157. package/src/utils.ts +1 -1
@@ -18,7 +18,7 @@
18
18
  */
19
19
 
20
20
  import type { CoreTextureManager } from '../CoreTextureManager.js';
21
- import { Texture, type TextureData } from './Texture.js';
21
+ import { Texture, TextureType, type TextureData } from './Texture.js';
22
22
 
23
23
  /**
24
24
  * Properties of the {@link ColorTexture}
@@ -45,6 +45,8 @@ export interface ColorTextureProps {
45
45
  * a Node are.
46
46
  */
47
47
  export class ColorTexture extends Texture {
48
+ public override type: TextureType = TextureType.color;
49
+
48
50
  props: Required<ColorTextureProps>;
49
51
 
50
52
  constructor(txManager: CoreTextureManager, props?: ColorTextureProps) {
@@ -18,7 +18,7 @@
18
18
  */
19
19
 
20
20
  import type { CoreTextureManager } from '../CoreTextureManager.js';
21
- import { Texture, type TextureData } from './Texture.js';
21
+ import { Texture, TextureType, type TextureData } from './Texture.js';
22
22
  import {
23
23
  isCompressedTextureContainer,
24
24
  loadCompressedTexture,
@@ -121,6 +121,8 @@ export interface ImageTextureProps {
121
121
  export class ImageTexture extends Texture {
122
122
  props: Required<ImageTextureProps>;
123
123
 
124
+ public override type: TextureType = TextureType.image;
125
+
124
126
  constructor(txManager: CoreTextureManager, props: ImageTextureProps) {
125
127
  super(txManager);
126
128
  this.props = ImageTexture.resolveDefaults(props);
@@ -168,8 +170,8 @@ export class ImageTexture extends Texture {
168
170
  premultiplyAlpha: hasAlphaChannel,
169
171
  };
170
172
  } else {
171
- const img = new Image(width || undefined, height || undefined);
172
- if (!(src.substr(0, 5) === 'data:')) {
173
+ const img = new Image();
174
+ if (!src.startsWith('data:')) {
173
175
  img.crossOrigin = 'Anonymous';
174
176
  }
175
177
  img.src = src;
@@ -18,7 +18,7 @@
18
18
  */
19
19
 
20
20
  import type { CoreTextureManager } from '../CoreTextureManager.js';
21
- import { Texture, type TextureData } from './Texture.js';
21
+ import { Texture, TextureType, type TextureData } from './Texture.js';
22
22
 
23
23
  /**
24
24
  * Properties of the {@link NoiseTexture}
@@ -56,6 +56,8 @@ export interface NoiseTextureProps {
56
56
  export class NoiseTexture extends Texture {
57
57
  props: Required<NoiseTextureProps>;
58
58
 
59
+ public override type: TextureType = TextureType.noise;
60
+
59
61
  constructor(txManager: CoreTextureManager, props: NoiseTextureProps) {
60
62
  super(txManager);
61
63
  this.props = NoiseTexture.resolveDefaults(props);
@@ -18,7 +18,7 @@
18
18
  */
19
19
 
20
20
  import type { CoreTextureManager } from '../CoreTextureManager.js';
21
- import { Texture, type TextureData } from './Texture.js';
21
+ import { Texture, TextureType, type TextureData } from './Texture.js';
22
22
 
23
23
  /**
24
24
  * Properties of the {@link RenderTexture}
@@ -40,6 +40,8 @@ export interface RenderTextureProps {
40
40
  export class RenderTexture extends Texture {
41
41
  props: Required<RenderTextureProps>;
42
42
 
43
+ public override type: TextureType = TextureType.renderToTexture;
44
+
43
45
  constructor(txManager: CoreTextureManager, props?: RenderTextureProps) {
44
46
  super(txManager);
45
47
  this.props = RenderTexture.resolveDefaults(props || {});
@@ -20,6 +20,7 @@
20
20
  import type { CoreTextureManager } from '../CoreTextureManager.js';
21
21
  import {
22
22
  Texture,
23
+ TextureType,
23
24
  type TextureData,
24
25
  type TextureFailedEventHandler,
25
26
  type TextureLoadedEventHandler,
@@ -77,6 +78,8 @@ export class SubTexture extends Texture {
77
78
  props: Required<SubTextureProps>;
78
79
  parentTexture: Texture;
79
80
 
81
+ public override type: TextureType = TextureType.subTexture;
82
+
80
83
  constructor(txManager: CoreTextureManager, props: SubTextureProps) {
81
84
  super(txManager);
82
85
  this.props = SubTexture.resolveDefaults(props || {});
@@ -102,6 +102,15 @@ export interface TextureData {
102
102
 
103
103
  export type TextureState = 'freed' | 'loading' | 'loaded' | 'failed';
104
104
 
105
+ export enum TextureType {
106
+ 'generic' = 0,
107
+ 'color' = 1,
108
+ 'image' = 2,
109
+ 'noise' = 3,
110
+ 'renderToTexture' = 4,
111
+ 'subTexture' = 5,
112
+ }
113
+
105
114
  export interface TextureStateEventMap {
106
115
  freed: TextureFreedEventHandler;
107
116
  loading: TextureLoadingEventHandler;
@@ -150,6 +159,8 @@ export abstract class Texture extends EventEmitter {
150
159
 
151
160
  readonly lastRenderableChangeTime = 0;
152
161
 
162
+ public type: TextureType = TextureType.generic;
163
+
153
164
  public preventCleanup = false;
154
165
 
155
166
  constructor(protected txManager: CoreTextureManager) {
@@ -386,6 +386,7 @@ export class RendererMain extends EventEmitter {
386
386
  eventBus: this,
387
387
  quadBufferSize: this.settings.quadBufferSize,
388
388
  fontEngines: this.settings.fontEngines,
389
+ inspector: this.settings.inspector !== null,
389
390
  });
390
391
 
391
392
  // Extract the root node
package/src/utils.ts CHANGED
@@ -80,7 +80,7 @@ export function assertTruthy(
80
80
  condition: unknown,
81
81
  message?: string,
82
82
  ): asserts condition {
83
- if (isProductionEnvironment()) return;
83
+ if (isProductionEnvironment() === true) return;
84
84
  if (!condition) {
85
85
  throw new Error(message || 'Assertion failed');
86
86
  }