@lightningjs/renderer 0.9.0 → 0.9.2

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 (77) hide show
  1. package/dist/exports/index.d.ts +3 -0
  2. package/dist/{src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js → exports/index.js} +4 -11
  3. package/dist/exports/index.js.map +1 -0
  4. package/dist/src/common/IAnimationController.d.ts +58 -1
  5. package/dist/src/common/IAnimationController.js +0 -18
  6. package/dist/src/common/IAnimationController.js.map +1 -1
  7. package/dist/src/core/CoreTextureManager.js +1 -1
  8. package/dist/src/core/CoreTextureManager.js.map +1 -1
  9. package/dist/src/core/animations/CoreAnimation.d.ts +2 -2
  10. package/dist/src/core/animations/CoreAnimation.js +33 -10
  11. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  12. package/dist/src/core/animations/CoreAnimationController.d.ts +8 -12
  13. package/dist/src/core/animations/CoreAnimationController.js +42 -46
  14. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  15. package/dist/src/core/lib/ImageWorker.js +8 -5
  16. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +5 -0
  18. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  19. package/dist/src/core/textures/ImageTexture.d.ts +5 -1
  20. package/dist/src/core/textures/ImageTexture.js +14 -6
  21. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  22. package/dist/src/core/utils.js +1 -6
  23. package/dist/src/core/utils.js.map +1 -1
  24. package/dist/src/main-api/INode.d.ts +1 -1
  25. package/dist/src/main-api/Renderer.d.ts +297 -0
  26. package/dist/src/main-api/Renderer.js +370 -0
  27. package/dist/src/main-api/Renderer.js.map +1 -0
  28. package/dist/src/main-api/utils.d.ts +2 -0
  29. package/dist/src/main-api/utils.js +34 -0
  30. package/dist/src/main-api/utils.js.map +1 -0
  31. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  32. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  33. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  34. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +6 -0
  35. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  36. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  37. package/{dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js → exports/index.ts} +4 -14
  38. package/package.json +1 -1
  39. package/src/common/IAnimationController.ts +60 -1
  40. package/src/core/CoreTextureManager.ts +1 -1
  41. package/src/core/animations/CoreAnimation.ts +35 -11
  42. package/src/core/animations/CoreAnimationController.ts +48 -53
  43. package/src/core/lib/ImageWorker.ts +10 -7
  44. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +5 -0
  45. package/src/core/textures/ImageTexture.ts +19 -6
  46. package/src/core/utils.ts +1 -7
  47. package/src/main-api/INode.ts +1 -1
  48. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +63 -27
  49. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +6 -0
  50. package/dist/src/core/lib/WebGlContext.d.ts +0 -414
  51. package/dist/src/core/lib/WebGlContext.js +0 -640
  52. package/dist/src/core/lib/WebGlContext.js.map +0 -1
  53. package/dist/src/core/scene/Scene.d.ts +0 -59
  54. package/dist/src/core/scene/Scene.js +0 -106
  55. package/dist/src/core/scene/Scene.js.map +0 -1
  56. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
  57. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
  58. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
  59. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
  60. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
  61. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
  62. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
  63. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
  64. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
  65. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
  66. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
  67. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
  68. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
@@ -129,17 +129,12 @@ const parseCubicBezier = (str) => {
129
129
  return defaultTiming;
130
130
  };
131
131
  export const getTimingFunction = (str) => {
132
- if (str === '') {
132
+ if (str === 'linear') {
133
133
  return defaultTiming;
134
134
  }
135
135
  if (timingMapping[str] !== undefined) {
136
136
  return timingMapping[str] || defaultTiming;
137
137
  }
138
- if (str === 'linear') {
139
- return (time) => {
140
- return time;
141
- };
142
- }
143
138
  if (str === 'step-start') {
144
139
  return () => {
145
140
  return 1;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/core/utils.ts"],"names":[],"mappings":"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"}
@@ -417,7 +417,7 @@ export interface INodeWritableProps {
417
417
  * The data stored can only be of type string, number or boolean.
418
418
  */
419
419
  export type CustomDataMap = {
420
- [key: string]: string | number | boolean;
420
+ [key: string]: string | number | boolean | undefined;
421
421
  };
422
422
  export type INodeAnimatableProps = {
423
423
  [Key in keyof INodeWritableProps as NonNullable<INodeWritableProps[Key]> extends number ? Key : never]: number;
@@ -0,0 +1,297 @@
1
+ import type { ShaderMap } from '../core/CoreShaderManager.js';
2
+ import type { ExtractProps, TextureTypeMap, TextureMap } from '../core/CoreTextureManager.js';
3
+ import type { INodeWritableProps, ITextNodeWritableProps } from './INode.js';
4
+ import { EventEmitter } from '../common/EventEmitter.js';
5
+ import { Stage } from '../core/Stage.js';
6
+ import { CoreNode } from '../core/CoreNode.js';
7
+ import { CoreTextNode } from '../core/CoreTextNode.js';
8
+ /**
9
+ * An immutable reference to a specific Shader type
10
+ *
11
+ * @remarks
12
+ * See {@link ShaderRef} for more details.
13
+ */
14
+ export interface SpecificShaderRef<ShType extends keyof ShaderMap> {
15
+ readonly descType: 'shader';
16
+ readonly shType: ShType;
17
+ readonly props: ExtractProps<ShaderMap[ShType]>;
18
+ }
19
+ type MapShaderRefs<ShType extends keyof ShaderMap> = ShType extends keyof ShaderMap ? SpecificShaderRef<ShType> : never;
20
+ /**
21
+ * An immutable reference to a Shader
22
+ *
23
+ * @remarks
24
+ * This structure should only be created by the RendererMain's `createShader`
25
+ * method. The structure is immutable and should not be modified once created.
26
+ *
27
+ * A `ShaderRef` exists in the Main API Space and is used to point to an actual
28
+ * `Shader` instance in the Core API Space. The `ShaderRef` is used to
29
+ * communicate with the Core API Space to create, load, and destroy the
30
+ * `Shader` instance.
31
+ *
32
+ * This type is technically a discriminated union of all possible shader types.
33
+ * If you'd like to represent a specific shader type, you can use the
34
+ * `SpecificShaderRef` generic type.
35
+ */
36
+ export type ShaderRef = MapShaderRefs<keyof ShaderMap>;
37
+ /**
38
+ * Configuration settings for {@link RendererMain}
39
+ */
40
+ export interface RendererMainSettings {
41
+ /**
42
+ * Authored logical pixel width of the application
43
+ *
44
+ * @defaultValue `1920`
45
+ */
46
+ appWidth?: number;
47
+ /**
48
+ * Authored logical pixel height of the application
49
+ *
50
+ * @defaultValue `1080`
51
+ */
52
+ appHeight?: number;
53
+ /**
54
+ * Texture Memory Byte Threshold
55
+ *
56
+ * @remarks
57
+ * When the amount of GPU VRAM used by textures exceeds this threshold,
58
+ * the Renderer will free up all the textures that are current not visible
59
+ * within the configured `boundsMargin`.
60
+ *
61
+ * When set to `0`, the threshold-based texture memory manager is disabled.
62
+ */
63
+ txMemByteThreshold?: number;
64
+ /**
65
+ * Bounds margin to extend the boundary in which a CoreNode is added as Quad.
66
+ */
67
+ boundsMargin?: number | [number, number, number, number];
68
+ /**
69
+ * Factor to convert app-authored logical coorindates to device logical coordinates
70
+ *
71
+ * @remarks
72
+ * This value allows auto-scaling to support larger/small resolutions than the
73
+ * app was authored for.
74
+ *
75
+ * If the app was authored for 1920x1080 and this value is 2, the app's canvas
76
+ * will be rendered at 3840x2160 logical pixels.
77
+ *
78
+ * Likewise, if the app was authored for 1920x1080 and this value is 0.66667,
79
+ * the app's canvas will be rendered at 1280x720 logical pixels.
80
+ *
81
+ * @defaultValue `1`
82
+ */
83
+ deviceLogicalPixelRatio?: number;
84
+ /**
85
+ * Factor to convert device logical coordinates to device physical coordinates
86
+ *
87
+ * @remarks
88
+ * This value allows auto-scaling to support devices with different pixel densities.
89
+ *
90
+ * This controls the number of physical pixels that are used to render each logical
91
+ * pixel. For example, if the device has a pixel density of 2, each logical pixel
92
+ * will be rendered using 2x2 physical pixels.
93
+ *
94
+ * By default, it will be set to `window.devicePixelRatio` which is the pixel
95
+ * density of the device the app is running on reported by the browser.
96
+ *
97
+ * @defaultValue `window.devicePixelRatio`
98
+ */
99
+ devicePhysicalPixelRatio?: number;
100
+ /**
101
+ * RGBA encoded number of the background to use
102
+ *
103
+ * @defaultValue `0x00000000`
104
+ */
105
+ clearColor?: number;
106
+ /**
107
+ * Interval in milliseconds to receive FPS updates
108
+ *
109
+ * @remarks
110
+ * If set to `0`, FPS updates will be disabled.
111
+ *
112
+ * @defaultValue `0` (disabled)
113
+ */
114
+ fpsUpdateInterval?: number;
115
+ /**
116
+ * Include context call (i.e. WebGL) information in FPS updates
117
+ *
118
+ * @remarks
119
+ * When enabled the number of calls to each context method over the
120
+ * `fpsUpdateInterval` will be included in the FPS update payload's
121
+ * `contextSpyData` property.
122
+ *
123
+ * Enabling the context spy has a serious impact on performance so only use it
124
+ * when you need to extract context call information.
125
+ *
126
+ * @defaultValue `false` (disabled)
127
+ */
128
+ enableContextSpy?: boolean;
129
+ /**
130
+ * Number or Image Workers to use
131
+ *
132
+ * @remarks
133
+ * On devices with multiple cores, this can be used to improve image loading
134
+ * as well as reduce the impact of image loading on the main thread.
135
+ * Set to 0 to disable image workers.
136
+ *
137
+ * @defaultValue `2`
138
+ */
139
+ numImageWorkers?: number;
140
+ /**
141
+ * Enable inspector
142
+ *
143
+ * @remarks
144
+ * When enabled the renderer will spawn a inspector. The inspector will
145
+ * replicate the state of the Nodes created in the renderer and allow
146
+ * inspection of the state of the nodes.
147
+ *
148
+ * @defaultValue `false` (disabled)
149
+ */
150
+ enableInspector?: boolean;
151
+ /**
152
+ * Renderer mode
153
+ */
154
+ renderMode?: 'webgl' | 'canvas';
155
+ }
156
+ /**
157
+ * The Renderer Main API
158
+ *
159
+ * @remarks
160
+ * This is the primary class used to configure and operate the Renderer.
161
+ *
162
+ * It is used to create and destroy Nodes, as well as Texture and Shader
163
+ * references.
164
+ *
165
+ * Example:
166
+ * ```ts
167
+ * import { RendererMain, MainCoreDriver } from '@lightningjs/renderer';
168
+ *
169
+ * // Initialize the Renderer
170
+ * const renderer = new RendererMain(
171
+ * {
172
+ * appWidth: 1920,
173
+ * appHeight: 1080
174
+ * },
175
+ * 'app',
176
+ * new MainCoreDriver(),
177
+ * );
178
+ * ```
179
+ */
180
+ export declare class RendererMain extends EventEmitter {
181
+ readonly root: CoreNode;
182
+ readonly canvas: HTMLCanvasElement;
183
+ readonly settings: Readonly<Required<RendererMainSettings>>;
184
+ readonly stage: Stage;
185
+ private inspector;
186
+ /**
187
+ * Constructs a new Renderer instance
188
+ *
189
+ * @param settings Renderer settings
190
+ * @param target Element ID or HTMLElement to insert the canvas into
191
+ * @param driver Core Driver to use
192
+ */
193
+ constructor(settings: RendererMainSettings, target: string | HTMLElement);
194
+ /**
195
+ * Create a new scene graph node
196
+ *
197
+ * @remarks
198
+ * A node is the main graphical building block of the Renderer scene graph. It
199
+ * can be a container for other nodes, or it can be a leaf node that renders a
200
+ * solid color, gradient, image, or specific texture, using a specific shader.
201
+ *
202
+ * To create a text node, see {@link createTextNode}.
203
+ *
204
+ * See {@link INode} for more details.
205
+ *
206
+ * @param props
207
+ * @returns
208
+ */
209
+ createNode(props: Partial<INodeWritableProps>): CoreNode;
210
+ /**
211
+ * Create a new scene graph text node
212
+ *
213
+ * @remarks
214
+ * A text node is the second graphical building block of the Renderer scene
215
+ * graph. It renders text using a specific text renderer that is automatically
216
+ * chosen based on the font requested and what type of fonts are installed
217
+ * into an app.
218
+ *
219
+ * See {@link ITextNode} for more details.
220
+ *
221
+ * @param props
222
+ * @returns
223
+ */
224
+ createTextNode(props: Partial<ITextNodeWritableProps>): CoreTextNode;
225
+ /**
226
+ * Resolves the default property values for a Node
227
+ *
228
+ * @remarks
229
+ * This method is used internally by the RendererMain to resolve the default
230
+ * property values for a Node. It is exposed publicly so that it can be used
231
+ * by Core Driver implementations.
232
+ *
233
+ * @param props
234
+ * @returns
235
+ */
236
+ resolveNodeDefaults(props: Partial<INodeWritableProps>): INodeWritableProps;
237
+ /**
238
+ * Destroy a node
239
+ *
240
+ * @remarks
241
+ * This method destroys a node
242
+ *
243
+ * @param node
244
+ * @returns
245
+ */
246
+ destroyNode(node: CoreNode): void;
247
+ /**
248
+ * Create a new texture reference
249
+ *
250
+ * @remarks
251
+ * This method creates a new reference to a texture. The texture is not
252
+ * loaded until it is used on a node.
253
+ *
254
+ * It can be assigned to a node's `texture` property, or it can be used
255
+ * when creating a SubTexture.
256
+ *
257
+ * @param textureType
258
+ * @param props
259
+ * @param options
260
+ * @returns
261
+ */
262
+ createTexture<TxType extends keyof TextureTypeMap>(textureType: TxType, props: ExtractProps<TextureTypeMap[TxType]>): TextureMap[TxType];
263
+ /**
264
+ * Create a new shader reference
265
+ *
266
+ * @remarks
267
+ * This method creates a new reference to a shader. The shader is not
268
+ * loaded until it is used on a Node.
269
+ *
270
+ * It can be assigned to a Node's `shader` property.
271
+ *
272
+ * @param shaderType
273
+ * @param props
274
+ * @returns
275
+ */
276
+ createShader<ShType extends keyof ShaderMap>(shaderType: ShType, props?: ExtractProps<ShaderMap[ShType]>): SpecificShaderRef<ShType>;
277
+ /**
278
+ * Get a Node by its ID
279
+ *
280
+ * @param id
281
+ * @returns
282
+ */
283
+ getNodeById(id: number): CoreNode | null;
284
+ toggleFreeze(): void;
285
+ advanceFrame(): void;
286
+ /**
287
+ * Re-render the current frame without advancing any running animations.
288
+ *
289
+ * @remarks
290
+ * Any state changes will be reflected in the re-rendered frame. Useful for
291
+ * debugging.
292
+ *
293
+ * May not do anything if the render loop is running on a separate worker.
294
+ */
295
+ rerender(): void;
296
+ }
297
+ export {};