@lightningjs/renderer 3.0.0-beta1 → 3.0.0-beta3
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/index.d.ts +1 -0
- package/dist/exports/index.js +1 -0
- package/dist/exports/index.js.map +1 -1
- package/dist/src/core/CoreNode.d.ts +1 -0
- package/dist/src/core/CoreNode.js +17 -13
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreShaderManager.d.ts +3 -5
- package/dist/src/core/CoreShaderManager.js.map +1 -1
- package/dist/src/core/CoreTextNode.js +0 -7
- package/dist/src/core/CoreTextNode.js.map +1 -1
- package/dist/src/core/Stage.js +2 -4
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +2 -1
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/RenderCoords.d.ts +9 -10
- package/dist/src/core/lib/RenderCoords.js +43 -55
- package/dist/src/core/lib/RenderCoords.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +22 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +27 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/utils.d.ts +1 -0
- package/dist/src/core/lib/utils.js +20 -0
- package/dist/src/core/lib/utils.js.map +1 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +2 -3
- package/dist/src/core/renderers/CoreShaderNode.js +0 -3
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.js +3 -2
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +27 -16
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +14 -13
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +1 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +32 -26
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js +1 -1
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +2 -2
- package/dist/src/core/textures/ImageTexture.js +24 -4
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/main-api/INode.d.ts +2 -2
- package/dist/src/main-api/Renderer.d.ts +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/index.ts +1 -0
- package/package.json +2 -2
- package/src/core/CoreNode.ts +24 -14
- package/src/core/CoreShaderManager.ts +5 -10
- package/src/core/CoreTextNode.ts +0 -9
- package/src/core/Stage.ts +2 -4
- package/src/core/lib/ImageWorker.ts +2 -1
- package/src/core/lib/RenderCoords.ts +52 -67
- package/src/core/lib/WebGlContextWrapper.ts +50 -0
- package/src/core/lib/utils.ts +25 -0
- package/src/core/renderers/CoreShaderNode.ts +2 -8
- package/src/core/renderers/canvas/CanvasRenderer.ts +0 -1
- package/src/core/renderers/canvas/CanvasTexture.ts +5 -2
- package/src/core/renderers/webgl/WebGlRenderOp.ts +32 -16
- package/src/core/renderers/webgl/WebGlRenderer.ts +22 -17
- package/src/core/renderers/webgl/WebGlShaderNode.ts +5 -1
- package/src/core/renderers/webgl/WebGlShaderProgram.ts +39 -31
- package/src/core/shaders/webgl/SdfShader.ts +1 -4
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -1
- package/src/core/textures/ImageTexture.ts +31 -8
- package/src/main-api/INode.ts +4 -3
- package/src/main-api/Renderer.ts +1 -1
|
@@ -23,7 +23,11 @@ import {
|
|
|
23
23
|
isCompressedTextureContainer,
|
|
24
24
|
loadCompressedTexture,
|
|
25
25
|
} from '../lib/textureCompression.js';
|
|
26
|
-
import {
|
|
26
|
+
import {
|
|
27
|
+
convertUrlToAbsolute,
|
|
28
|
+
dataURIToBlob,
|
|
29
|
+
isBase64Image,
|
|
30
|
+
} from '../lib/utils.js';
|
|
27
31
|
import { isSvgImage, loadSvg } from '../lib/textureSvg.js';
|
|
28
32
|
import { fetchJson } from '../text-rendering/font-face-types/utils.js';
|
|
29
33
|
|
|
@@ -40,7 +44,7 @@ export interface ImageTextureProps {
|
|
|
40
44
|
*
|
|
41
45
|
* @default ''
|
|
42
46
|
*/
|
|
43
|
-
src?: string | ImageData | (() => ImageData | null);
|
|
47
|
+
src?: string | Blob | ImageData | (() => ImageData | null);
|
|
44
48
|
/**
|
|
45
49
|
* Whether to premultiply the alpha channel into the color channels of the
|
|
46
50
|
* image.
|
|
@@ -133,10 +137,10 @@ export class ImageTexture extends Texture {
|
|
|
133
137
|
return mimeType.indexOf('image/png') !== -1;
|
|
134
138
|
}
|
|
135
139
|
|
|
136
|
-
async loadImageFallback(src: string, hasAlpha: boolean) {
|
|
140
|
+
async loadImageFallback(src: string | Blob, hasAlpha: boolean) {
|
|
137
141
|
const img = new Image();
|
|
138
142
|
|
|
139
|
-
if (isBase64Image(src) === false) {
|
|
143
|
+
if (typeof src === 'string' && isBase64Image(src) === false) {
|
|
140
144
|
img.crossOrigin = 'anonymous';
|
|
141
145
|
}
|
|
142
146
|
|
|
@@ -151,7 +155,11 @@ export class ImageTexture extends Texture {
|
|
|
151
155
|
resolve({ data: img, premultiplyAlpha: hasAlpha });
|
|
152
156
|
};
|
|
153
157
|
|
|
154
|
-
|
|
158
|
+
if (src instanceof Blob) {
|
|
159
|
+
img.src = URL.createObjectURL(src);
|
|
160
|
+
} else {
|
|
161
|
+
img.src = src;
|
|
162
|
+
}
|
|
155
163
|
},
|
|
156
164
|
);
|
|
157
165
|
}
|
|
@@ -215,9 +223,16 @@ export class ImageTexture extends Texture {
|
|
|
215
223
|
);
|
|
216
224
|
}
|
|
217
225
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
)
|
|
226
|
+
let blob;
|
|
227
|
+
|
|
228
|
+
if (isBase64Image(src) === true) {
|
|
229
|
+
blob = dataURIToBlob(src);
|
|
230
|
+
} else {
|
|
231
|
+
blob = await fetchJson(src, 'blob').then(
|
|
232
|
+
(response) => response as Blob,
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
|
|
221
236
|
return this.createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh);
|
|
222
237
|
}
|
|
223
238
|
|
|
@@ -274,6 +289,14 @@ export class ImageTexture extends Texture {
|
|
|
274
289
|
}
|
|
275
290
|
|
|
276
291
|
if (typeof src !== 'string') {
|
|
292
|
+
if (src instanceof Blob) {
|
|
293
|
+
if (this.txManager.hasCreateImageBitmap === true) {
|
|
294
|
+
const { sx, sy, sw, sh } = this.props;
|
|
295
|
+
return this.createImageBitmap(src, premultiplyAlpha, sx, sy, sw, sh);
|
|
296
|
+
} else {
|
|
297
|
+
return this.loadImageFallback(src, premultiplyAlpha ?? true);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
277
300
|
if (src instanceof ImageData) {
|
|
278
301
|
return {
|
|
279
302
|
data: src,
|
package/src/main-api/INode.ts
CHANGED
|
@@ -57,15 +57,16 @@ export interface INode<ShaderNode extends CoreShaderNode = CoreShaderNode>
|
|
|
57
57
|
/**
|
|
58
58
|
* Properties used to animate() a Node
|
|
59
59
|
*/
|
|
60
|
-
export interface INodeAnimateProps<
|
|
61
|
-
extends
|
|
60
|
+
export interface INodeAnimateProps<
|
|
61
|
+
ShNode extends CoreShaderNode = CoreShaderNode,
|
|
62
|
+
> extends Omit<CoreNodeAnimateProps, 'shaderProps'> {
|
|
62
63
|
shaderProps: Partial<ShNode['props']>;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
/**
|
|
66
67
|
* Properties used to create a new Node
|
|
67
68
|
*/
|
|
68
|
-
export interface INodeProps<ShNode extends CoreShaderNode>
|
|
69
|
+
export interface INodeProps<ShNode extends CoreShaderNode = CoreShaderNode>
|
|
69
70
|
extends Omit<CoreNodeProps, 'shader' | 'parent'> {
|
|
70
71
|
shader: ShNode;
|
|
71
72
|
parent: INode | null;
|
package/src/main-api/Renderer.ts
CHANGED
|
@@ -557,7 +557,7 @@ export class RendererMain extends EventEmitter {
|
|
|
557
557
|
props?: OptionalShaderProps<ShType>,
|
|
558
558
|
) {
|
|
559
559
|
return this.stage.shManager.createShader(shType, props) as CoreShaderNode<
|
|
560
|
-
ExtractShaderProps<ShType
|
|
560
|
+
NonNullable<ExtractShaderProps<ShType>>
|
|
561
561
|
>;
|
|
562
562
|
}
|
|
563
563
|
|