@luma.gl/engine 9.1.9 → 9.2.0-alpha.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.
- package/README.md +5 -0
- package/dist/animation-loop/animation-loop.d.ts +12 -12
- package/dist/animation-loop/animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/animation-loop.js +26 -62
- package/dist/animation-loop/animation-loop.js.map +1 -1
- package/dist/animation-loop/animation-props.d.ts +3 -4
- package/dist/animation-loop/animation-props.d.ts.map +1 -1
- package/dist/animation-loop/make-animation-loop.d.ts +4 -1
- package/dist/animation-loop/make-animation-loop.d.ts.map +1 -1
- package/dist/animation-loop/make-animation-loop.js +39 -7
- package/dist/animation-loop/make-animation-loop.js.map +1 -1
- package/dist/async-texture/async-texture.d.ts +106 -2
- package/dist/async-texture/async-texture.d.ts.map +1 -1
- package/dist/async-texture/async-texture.js +281 -13
- package/dist/async-texture/async-texture.js.map +1 -1
- package/dist/compute/computation.d.ts +1 -1
- package/dist/compute/computation.d.ts.map +1 -1
- package/dist/compute/computation.js +2 -2
- package/dist/compute/computation.js.map +1 -1
- package/dist/compute/swap.d.ts.map +1 -1
- package/dist/compute/swap.js +6 -2
- package/dist/compute/swap.js.map +1 -1
- package/dist/compute/texture-transform.d.ts.map +1 -1
- package/dist/compute/texture-transform.js +4 -2
- package/dist/compute/texture-transform.js.map +1 -1
- package/dist/debug/copy-texture-to-image.d.ts +23 -1
- package/dist/debug/copy-texture-to-image.d.ts.map +1 -1
- package/dist/debug/copy-texture-to-image.js +37 -1
- package/dist/debug/copy-texture-to-image.js.map +1 -1
- package/dist/dist.dev.js +566 -232
- package/dist/dist.min.js +26 -26
- package/dist/factories/pipeline-factory.d.ts +11 -1
- package/dist/factories/pipeline-factory.d.ts.map +1 -1
- package/dist/factories/pipeline-factory.js +107 -25
- package/dist/factories/pipeline-factory.js.map +1 -1
- package/dist/factories/shader-factory.d.ts +5 -1
- package/dist/factories/shader-factory.d.ts.map +1 -1
- package/dist/factories/shader-factory.js +40 -6
- package/dist/factories/shader-factory.js.map +1 -1
- package/dist/geometries/cube-geometry.d.ts +3 -3
- package/dist/geometries/cube-geometry.d.ts.map +1 -1
- package/dist/geometry/geometry.d.ts.map +1 -1
- package/dist/geometry/geometry.js +3 -2
- package/dist/geometry/geometry.js.map +1 -1
- package/dist/index.cjs +581 -251
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/model/model.d.ts +4 -25
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +26 -71
- package/dist/model/model.js.map +1 -1
- package/dist/models/billboard-texture-model.d.ts.map +1 -1
- package/dist/models/billboard-texture-model.js +6 -4
- package/dist/models/billboard-texture-model.js.map +1 -1
- package/dist/modules/picking/legacy-picking-manager.d.ts +1 -1
- package/dist/modules/picking/legacy-picking-manager.d.ts.map +1 -1
- package/dist/modules/picking/legacy-picking-manager.js +1 -1
- package/dist/modules/picking/legacy-picking-manager.js.map +1 -1
- package/dist/modules/picking/picking-manager.d.ts +2 -2
- package/dist/modules/picking/picking-manager.d.ts.map +1 -1
- package/dist/modules/picking/picking-manager.js +2 -2
- package/dist/modules/picking/picking-manager.js.map +1 -1
- package/dist/passes/get-fragment-shader.js +2 -2
- package/dist/passes/shader-pass-renderer.d.ts +4 -4
- package/dist/passes/shader-pass-renderer.d.ts.map +1 -1
- package/dist/passes/shader-pass-renderer.js +15 -5
- package/dist/passes/shader-pass-renderer.js.map +1 -1
- package/dist/shader-inputs.js +1 -1
- package/dist/shader-inputs.js.map +1 -1
- package/dist/utils/buffer-layout-helper.d.ts +12 -0
- package/dist/utils/buffer-layout-helper.d.ts.map +1 -0
- package/dist/utils/buffer-layout-helper.js +41 -0
- package/dist/utils/buffer-layout-helper.js.map +1 -0
- package/dist/utils/buffer-layout-order.d.ts +3 -0
- package/dist/utils/buffer-layout-order.d.ts.map +1 -0
- package/dist/utils/buffer-layout-order.js +16 -0
- package/dist/utils/buffer-layout-order.js.map +1 -0
- package/package.json +4 -4
- package/src/animation-loop/animation-loop.ts +31 -71
- package/src/animation-loop/animation-props.ts +3 -5
- package/src/animation-loop/make-animation-loop.ts +41 -9
- package/src/async-texture/async-texture.ts +386 -23
- package/src/async-texture/texture-setters.ts.disabled +296 -0
- package/src/compute/computation.ts +3 -3
- package/src/compute/swap.ts +7 -2
- package/src/compute/texture-transform.ts +4 -2
- package/src/debug/copy-texture-to-image.ts +52 -2
- package/src/factories/pipeline-factory.ts +122 -26
- package/src/factories/shader-factory.ts +43 -7
- package/src/geometry/geometry.ts +3 -2
- package/src/index.ts +12 -0
- package/src/model/model.ts +31 -86
- package/src/models/billboard-texture-model.ts +6 -4
- package/src/modules/picking/legacy-picking-manager.ts +2 -2
- package/src/modules/picking/picking-manager.ts +3 -3
- package/src/passes/get-fragment-shader.ts +2 -2
- package/src/passes/shader-pass-renderer.ts +18 -8
- package/src/shader-inputs.ts +1 -1
- package/src/utils/buffer-layout-helper.ts +51 -0
- package/src/utils/buffer-layout-order.ts +26 -0
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
2
|
// Copyright (c) vis.gl contributors
|
|
3
|
+
import { Texture, Sampler, log } from '@luma.gl/core';
|
|
3
4
|
import { loadImageBitmap } from "../application-utils/load-file.js";
|
|
4
5
|
import { uid } from "../utils/uid.js";
|
|
6
|
+
export const TextureCubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];
|
|
7
|
+
// prettier-ignore
|
|
8
|
+
export const TextureCubeFaceMap = { '+X': 0, '-X': 1, '+Y': 2, '-Y': 3, '+Z': 4, '-Z': 5 };
|
|
9
|
+
export const CubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];
|
|
5
10
|
/**
|
|
6
11
|
* It is very convenient to be able to initialize textures with promises
|
|
7
12
|
* This can add considerable complexity to the Texture class, and doesn't
|
|
@@ -11,6 +16,7 @@ import { uid } from "../utils/uid.js";
|
|
|
11
16
|
export class AsyncTexture {
|
|
12
17
|
device;
|
|
13
18
|
id;
|
|
19
|
+
props;
|
|
14
20
|
// TODO - should we type these as possibly `null`? It will make usage harder?
|
|
15
21
|
// @ts-expect-error
|
|
16
22
|
texture;
|
|
@@ -31,11 +37,18 @@ export class AsyncTexture {
|
|
|
31
37
|
}
|
|
32
38
|
constructor(device, props) {
|
|
33
39
|
this.device = device;
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
// TODO - if we support URL strings as data...
|
|
41
|
+
const id = uid('async-texture'); // typeof props?.data === 'string' ? props.data.slice(-20) : uid('async-texture');
|
|
42
|
+
this.props = { ...AsyncTexture.defaultProps, id, ...props };
|
|
43
|
+
this.id = this.props.id;
|
|
44
|
+
props = { ...props };
|
|
36
45
|
// Signature: new AsyncTexture(device, {data: url})
|
|
37
46
|
if (typeof props?.data === 'string' && props.dimension === '2d') {
|
|
38
|
-
props =
|
|
47
|
+
props.data = loadImageBitmap(props.data);
|
|
48
|
+
}
|
|
49
|
+
// If mipmaps are requested, we need to allocate space for them
|
|
50
|
+
if (props.mipmaps) {
|
|
51
|
+
props.mipLevels = 'auto';
|
|
39
52
|
}
|
|
40
53
|
this.ready = new Promise((resolve, reject) => {
|
|
41
54
|
this.resolveReady = () => {
|
|
@@ -47,26 +60,59 @@ export class AsyncTexture {
|
|
|
47
60
|
this.initAsync(props);
|
|
48
61
|
}
|
|
49
62
|
async initAsync(props) {
|
|
63
|
+
let resolveReady;
|
|
64
|
+
let rejectReady;
|
|
50
65
|
const asyncData = props.data;
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
data = await awaitAllPromises(asyncData);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
this.rejectReady(error);
|
|
57
|
-
}
|
|
66
|
+
const data = await awaitAllPromises(asyncData).then(resolveReady, rejectReady);
|
|
58
67
|
// Check that we haven't been destroyed while waiting for texture data to load
|
|
59
68
|
if (this.destroyed) {
|
|
60
69
|
return;
|
|
61
70
|
}
|
|
62
71
|
// Now we can actually create the texture
|
|
63
|
-
//
|
|
64
|
-
const
|
|
72
|
+
// Auto-deduce width and height if not supplied
|
|
73
|
+
const size = this.props.width && this.props.height
|
|
74
|
+
? { width: this.props.width, height: this.props.height }
|
|
75
|
+
: this.getTextureDataSize(data);
|
|
76
|
+
if (!size) {
|
|
77
|
+
throw new Error('Texture size could not be determined');
|
|
78
|
+
}
|
|
79
|
+
const syncProps = { ...size, ...props, data: undefined, mipLevels: 1 };
|
|
80
|
+
// Auto-calculate the number of mip levels as a convenience
|
|
81
|
+
// TODO - Should we clamp to 1-getMipLevelCount?
|
|
82
|
+
const maxMips = this.device.getMipLevelCount(syncProps.width, syncProps.height);
|
|
83
|
+
syncProps.mipLevels =
|
|
84
|
+
this.props.mipLevels === 'auto' ? maxMips : Math.min(maxMips, this.props.mipLevels);
|
|
65
85
|
this.texture = this.device.createTexture(syncProps);
|
|
66
86
|
this.sampler = this.texture.sampler;
|
|
67
87
|
this.view = this.texture.view;
|
|
68
88
|
this.isReady = true;
|
|
69
|
-
|
|
89
|
+
if (props.data) {
|
|
90
|
+
switch (this.props.dimension) {
|
|
91
|
+
case '1d':
|
|
92
|
+
this._setTexture1DData(this.texture, data);
|
|
93
|
+
break;
|
|
94
|
+
case '2d':
|
|
95
|
+
this._setTexture2DData(data);
|
|
96
|
+
break;
|
|
97
|
+
case '3d':
|
|
98
|
+
this._setTexture3DData(this.texture, data);
|
|
99
|
+
break;
|
|
100
|
+
case '2d-array':
|
|
101
|
+
this._setTextureArrayData(this.texture, data);
|
|
102
|
+
break;
|
|
103
|
+
case 'cube':
|
|
104
|
+
this._setTextureCubeData(this.texture, data);
|
|
105
|
+
break;
|
|
106
|
+
case 'cube-array':
|
|
107
|
+
this._setTextureCubeArrayData(this.texture, data);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Do we need to generate mipmaps?
|
|
112
|
+
if (this.props.mipmaps) {
|
|
113
|
+
this.generateMipmaps();
|
|
114
|
+
}
|
|
115
|
+
log.info(1, `${this} loaded`);
|
|
70
116
|
}
|
|
71
117
|
destroy() {
|
|
72
118
|
if (this.texture) {
|
|
@@ -76,10 +122,20 @@ export class AsyncTexture {
|
|
|
76
122
|
}
|
|
77
123
|
this.destroyed = true;
|
|
78
124
|
}
|
|
125
|
+
generateMipmaps() {
|
|
126
|
+
// if (this.device.type === 'webgl') {
|
|
127
|
+
this.texture.generateMipmapsWebGL();
|
|
128
|
+
// }
|
|
129
|
+
}
|
|
130
|
+
/** Set sampler or create and set new Sampler from SamplerProps */
|
|
131
|
+
setSampler(sampler = {}) {
|
|
132
|
+
this.texture.setSampler(sampler instanceof Sampler ? sampler : this.device.createSampler(sampler));
|
|
133
|
+
}
|
|
79
134
|
/**
|
|
80
135
|
* Textures are immutable and cannot be resized after creation,
|
|
81
136
|
* but we can create a similar texture with the same parameters but a new size.
|
|
82
137
|
* @note Does not copy contents of the texture
|
|
138
|
+
* @note Mipmaps may need to be regenerated after resizing / setting new data
|
|
83
139
|
* @todo Abort pending promise and create a texture with the new size?
|
|
84
140
|
*/
|
|
85
141
|
resize(size) {
|
|
@@ -96,7 +152,219 @@ export class AsyncTexture {
|
|
|
96
152
|
}
|
|
97
153
|
return true;
|
|
98
154
|
}
|
|
155
|
+
/** Check if texture data is a typed array */
|
|
156
|
+
isTextureLevelData(data) {
|
|
157
|
+
const typedArray = data?.data;
|
|
158
|
+
return ArrayBuffer.isView(typedArray);
|
|
159
|
+
}
|
|
160
|
+
/** Get the size of the texture described by the provided TextureData */
|
|
161
|
+
getTextureDataSize(data) {
|
|
162
|
+
if (!data) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
if (ArrayBuffer.isView(data)) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
// Recurse into arrays (array of miplevels)
|
|
169
|
+
if (Array.isArray(data)) {
|
|
170
|
+
return this.getTextureDataSize(data[0]);
|
|
171
|
+
}
|
|
172
|
+
if (this.device.isExternalImage(data)) {
|
|
173
|
+
return this.device.getExternalImageSize(data);
|
|
174
|
+
}
|
|
175
|
+
if (data && typeof data === 'object' && data.constructor === Object) {
|
|
176
|
+
const textureDataArray = Object.values(data);
|
|
177
|
+
const untypedData = textureDataArray[0];
|
|
178
|
+
return { width: untypedData.width, height: untypedData.height };
|
|
179
|
+
}
|
|
180
|
+
throw new Error('texture size deduction failed');
|
|
181
|
+
}
|
|
182
|
+
/** Convert luma.gl cubemap face constants to depth index */
|
|
183
|
+
getCubeFaceDepth(face) {
|
|
184
|
+
// prettier-ignore
|
|
185
|
+
switch (face) {
|
|
186
|
+
case '+X': return 0;
|
|
187
|
+
case '-X': return 1;
|
|
188
|
+
case '+Y': return 2;
|
|
189
|
+
case '-Y': return 3;
|
|
190
|
+
case '+Z': return 4;
|
|
191
|
+
case '-Z': return 5;
|
|
192
|
+
default: throw new Error(face);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// EXPERIMENTAL
|
|
196
|
+
setTextureData(data) { }
|
|
197
|
+
/** Experimental: Set multiple mip levels */
|
|
198
|
+
_setTexture1DData(texture, data) {
|
|
199
|
+
throw new Error('setTexture1DData not supported in WebGL.');
|
|
200
|
+
}
|
|
201
|
+
/** Experimental: Set multiple mip levels */
|
|
202
|
+
_setTexture2DData(lodData, depth = 0) {
|
|
203
|
+
if (!this.texture) {
|
|
204
|
+
throw new Error('Texture not initialized');
|
|
205
|
+
}
|
|
206
|
+
const lodArray = this._normalizeTextureData(lodData);
|
|
207
|
+
// If the user provides multiple LODs, then automatic mipmap
|
|
208
|
+
// generation generateMipmap() should be disabled to avoid overwriting them.
|
|
209
|
+
if (lodArray.length > 1 && this.props.mipmaps !== false) {
|
|
210
|
+
log.warn(`Texture ${this.id} mipmap and multiple LODs.`)();
|
|
211
|
+
}
|
|
212
|
+
for (let mipLevel = 0; mipLevel < lodArray.length; mipLevel++) {
|
|
213
|
+
const imageData = lodArray[mipLevel];
|
|
214
|
+
if (this.device.isExternalImage(imageData)) {
|
|
215
|
+
this.texture.copyExternalImage({ image: imageData, depth, mipLevel, flipY: true });
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
this.texture.copyImageData({ data: imageData.data /* , depth */, mipLevel });
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Experimental: Sets 3D texture data: multiple depth slices, multiple mip levels
|
|
224
|
+
* @param data
|
|
225
|
+
*/
|
|
226
|
+
_setTexture3DData(texture, data) {
|
|
227
|
+
if (this.texture?.props.dimension !== '3d') {
|
|
228
|
+
throw new Error(this.id);
|
|
229
|
+
}
|
|
230
|
+
for (let depth = 0; depth < data.length; depth++) {
|
|
231
|
+
this._setTexture2DData(data[depth], depth);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Experimental: Set Cube texture data, multiple faces, multiple mip levels
|
|
236
|
+
* @todo - could support TextureCubeArray with depth
|
|
237
|
+
* @param data
|
|
238
|
+
* @param index
|
|
239
|
+
*/
|
|
240
|
+
_setTextureCubeData(texture, data) {
|
|
241
|
+
if (this.texture?.props.dimension !== 'cube') {
|
|
242
|
+
throw new Error(this.id);
|
|
243
|
+
}
|
|
244
|
+
for (const [face, faceData] of Object.entries(data)) {
|
|
245
|
+
const faceDepth = CubeFaces.indexOf(face);
|
|
246
|
+
this._setTexture2DData(faceData, faceDepth);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Experimental: Sets texture array data, multiple levels, multiple depth slices
|
|
251
|
+
* @param data
|
|
252
|
+
*/
|
|
253
|
+
_setTextureArrayData(texture, data) {
|
|
254
|
+
if (this.texture?.props.dimension !== '2d-array') {
|
|
255
|
+
throw new Error(this.id);
|
|
256
|
+
}
|
|
257
|
+
for (let depth = 0; depth < data.length; depth++) {
|
|
258
|
+
this._setTexture2DData(data[depth], depth);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Experimental: Sets texture cube array, multiple faces, multiple levels, multiple mip levels
|
|
263
|
+
* @param data
|
|
264
|
+
*/
|
|
265
|
+
_setTextureCubeArrayData(texture, data) {
|
|
266
|
+
throw new Error('setTextureCubeArrayData not supported in WebGL2.');
|
|
267
|
+
}
|
|
268
|
+
/** Experimental */
|
|
269
|
+
_setTextureCubeFaceData(texture, lodData, face, depth = 0) {
|
|
270
|
+
// assert(this.props.dimension === 'cube');
|
|
271
|
+
// If the user provides multiple LODs, then automatic mipmap
|
|
272
|
+
// generation generateMipmap() should be disabled to avoid overwriting them.
|
|
273
|
+
if (Array.isArray(lodData) && lodData.length > 1 && this.props.mipmaps !== false) {
|
|
274
|
+
log.warn(`${this.id} has mipmap and multiple LODs.`)();
|
|
275
|
+
}
|
|
276
|
+
const faceDepth = TextureCubeFaces.indexOf(face);
|
|
277
|
+
this._setTexture2DData(lodData, faceDepth);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Normalize TextureData to an array of TextureImageData / ExternalImages
|
|
281
|
+
* @param data
|
|
282
|
+
* @param options
|
|
283
|
+
* @returns array of TextureImageData / ExternalImages
|
|
284
|
+
*/
|
|
285
|
+
_normalizeTextureData(data) {
|
|
286
|
+
const options = this.texture;
|
|
287
|
+
let mipLevelArray;
|
|
288
|
+
if (ArrayBuffer.isView(data)) {
|
|
289
|
+
mipLevelArray = [
|
|
290
|
+
{
|
|
291
|
+
// ts-expect-error does data really need to be Uint8ClampedArray?
|
|
292
|
+
data,
|
|
293
|
+
width: options.width,
|
|
294
|
+
height: options.height
|
|
295
|
+
// depth: options.depth
|
|
296
|
+
}
|
|
297
|
+
];
|
|
298
|
+
}
|
|
299
|
+
else if (!Array.isArray(data)) {
|
|
300
|
+
mipLevelArray = [data];
|
|
301
|
+
}
|
|
302
|
+
else {
|
|
303
|
+
mipLevelArray = data;
|
|
304
|
+
}
|
|
305
|
+
return mipLevelArray;
|
|
306
|
+
}
|
|
307
|
+
static defaultProps = {
|
|
308
|
+
...Texture.defaultProps,
|
|
309
|
+
data: null,
|
|
310
|
+
mipmaps: false
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
// TODO - Remove when texture refactor is complete
|
|
314
|
+
/*
|
|
315
|
+
setCubeMapData(options: {
|
|
316
|
+
width: number;
|
|
317
|
+
height: number;
|
|
318
|
+
data: Record<GL, Texture2DData> | Record<TextureCubeFace, Texture2DData>;
|
|
319
|
+
format?: any;
|
|
320
|
+
type?: any;
|
|
321
|
+
/** @deprecated Use .data *
|
|
322
|
+
pixels: any;
|
|
323
|
+
}): void {
|
|
324
|
+
const {gl} = this;
|
|
325
|
+
|
|
326
|
+
const {width, height, pixels, data, format = GL.RGBA, type = GL.UNSIGNED_BYTE} = options;
|
|
327
|
+
|
|
328
|
+
// pixel data (imageDataMap) is an Object from Face to Image or Promise.
|
|
329
|
+
// For example:
|
|
330
|
+
// {
|
|
331
|
+
// GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,
|
|
332
|
+
// GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,
|
|
333
|
+
// ... }
|
|
334
|
+
// To provide multiple level-of-details (LODs) this can be Face to Array
|
|
335
|
+
// of Image or Promise, like this
|
|
336
|
+
// {
|
|
337
|
+
// GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
|
|
338
|
+
// GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
|
|
339
|
+
// ... }
|
|
340
|
+
|
|
341
|
+
const imageDataMap = this._getImageDataMap(pixels || data);
|
|
342
|
+
|
|
343
|
+
const resolvedFaces = WEBGLTexture.FACES.map(face => {
|
|
344
|
+
const facePixels = imageDataMap[face];
|
|
345
|
+
return Array.isArray(facePixels) ? facePixels : [facePixels];
|
|
346
|
+
});
|
|
347
|
+
this.bind();
|
|
348
|
+
|
|
349
|
+
WEBGLTexture.FACES.forEach((face, index) => {
|
|
350
|
+
if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
|
|
351
|
+
// If the user provides multiple LODs, then automatic mipmap
|
|
352
|
+
// generation generateMipmaps() should be disabled to avoid overwritting them.
|
|
353
|
+
log.warn(`${this.id} has mipmap and multiple LODs.`)();
|
|
354
|
+
}
|
|
355
|
+
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
356
|
+
// TODO: adjust width & height for LOD!
|
|
357
|
+
if (width && height) {
|
|
358
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*, format, type, image);
|
|
359
|
+
} else {
|
|
360
|
+
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
this.unbind();
|
|
99
366
|
}
|
|
367
|
+
*/
|
|
100
368
|
// HELPERS
|
|
101
369
|
/** Resolve all promises in a nested data structure */
|
|
102
370
|
async function awaitAllPromises(x) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-texture.js","sourceRoot":"","sources":["../../src/async-texture/async-texture.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"async-texture.js","sourceRoot":"","sources":["../../src/async-texture/async-texture.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export type ComputationProps = Omit<ComputePipelineProps, 'shader'> & {
|
|
|
11
11
|
/** shadertool shader modules (added to shader code) */
|
|
12
12
|
modules?: ShaderModule[];
|
|
13
13
|
/** Shadertool module defines (configures shader code)*/
|
|
14
|
-
defines?: Record<string,
|
|
14
|
+
defines?: Record<string, boolean>;
|
|
15
15
|
/** Shader inputs, used to generated uniform buffers and bindings */
|
|
16
16
|
shaderInputs?: ShaderInputs;
|
|
17
17
|
/** Bindings */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAgB,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,MAAM,EACN,MAAM,EACN,eAAe,EACf,WAAW,EACX,YAAY,EAGb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAC,eAAe,EAA0B,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAC,UAAU,EAAiB,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,YAAY,EAAC,4BAAyB;AAC9C,OAAO,EAAC,eAAe,EAAC,yCAAsC;AAC9D,OAAO,EAAC,aAAa,EAAC,uCAAoC;AAO1D,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,GAAG;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uDAAuD;IACvD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"computation.d.ts","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { Buffer, ComputePipeline, UniformStore, log,
|
|
4
|
+
import { Buffer, ComputePipeline, UniformStore, log, getTypedArrayConstructor } from '@luma.gl/core';
|
|
5
5
|
import { ShaderAssembler, getShaderLayoutFromWGSL } from '@luma.gl/shadertools';
|
|
6
6
|
import { isNumericArray } from '@math.gl/types';
|
|
7
7
|
import { ShaderInputs } from "../shader-inputs.js";
|
|
@@ -236,7 +236,7 @@ export class Computation {
|
|
|
236
236
|
_drawCount = 0;
|
|
237
237
|
// TODO - fix typing of luma data types
|
|
238
238
|
_getBufferOrConstantValues(attribute, dataType) {
|
|
239
|
-
const TypedArrayConstructor =
|
|
239
|
+
const TypedArrayConstructor = getTypedArrayConstructor(dataType);
|
|
240
240
|
const typedArray = attribute instanceof Buffer ? new TypedArrayConstructor(attribute.debugData) : attribute;
|
|
241
241
|
return typedArray.toString();
|
|
242
242
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,MAAM,EACN,eAAe,EAEf,YAAY,EACZ,GAAG,EACH,
|
|
1
|
+
{"version":3,"file":"computation.js","sourceRoot":"","sources":["../../src/compute/computation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAC;IAKxC,yCAAyC;IACzC,OAAO;IAKP,4GAA4G;IAC5G,IAAI;CAKL;AAED,uDAAuD;AACvD,qBAAa,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"swap.d.ts","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAU,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC;IACvC,4EAA4E;IAC5E,OAAO,EAAE,CAAC,CAAC;IACX,uFAAuF;IACvF,IAAI,EAAE,CAAC,CAAC;gBAEI,KAAK,EAAE;QAAC,OAAO,EAAE,CAAC,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAC;IAKxC,yCAAyC;IACzC,OAAO;IAKP,4GAA4G;IAC5G,IAAI;CAKL;AAED,uDAAuD;AACvD,qBAAa,gBAAiB,SAAQ,IAAI,CAAC,WAAW,CAAC;gBACzC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAiCnD;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO;CAcvD;AAED,sDAAsD;AACtD,qBAAa,WAAY,SAAQ,IAAI,CAAC,MAAM,CAAC;gBAC/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAI9C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC;CAenC"}
|
package/dist/compute/swap.js
CHANGED
|
@@ -37,14 +37,18 @@ export class SwapFramebuffers extends Swap {
|
|
|
37
37
|
? colorAttachment
|
|
38
38
|
: device.createTexture({
|
|
39
39
|
format: colorAttachment,
|
|
40
|
-
usage: Texture.
|
|
40
|
+
usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_SRC | Texture.COPY_DST,
|
|
41
|
+
width: 1,
|
|
42
|
+
height: 1
|
|
41
43
|
}));
|
|
42
44
|
const current = device.createFramebuffer({ ...props, colorAttachments });
|
|
43
45
|
colorAttachments = props.colorAttachments?.map(colorAttachment => typeof colorAttachment !== 'string'
|
|
44
46
|
? colorAttachment
|
|
45
47
|
: device.createTexture({
|
|
46
48
|
format: colorAttachment,
|
|
47
|
-
usage: Texture.COPY_DST | Texture.RENDER_ATTACHMENT
|
|
49
|
+
usage: Texture.TEXTURE | Texture.COPY_SRC | Texture.COPY_DST | Texture.RENDER_ATTACHMENT,
|
|
50
|
+
width: 1,
|
|
51
|
+
height: 1
|
|
48
52
|
}));
|
|
49
53
|
const next = device.createFramebuffer({ ...props, colorAttachments });
|
|
50
54
|
super({ current, next });
|
package/dist/compute/swap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAwC,OAAO,EAAC,MAAM,eAAe,CAAC;AAE7E;;;;;GAKG;AACH,MAAM,OAAO,IAAI;IACf,4EAA4E;IAC5E,OAAO,CAAI;IACX,uFAAuF;IACvF,IAAI,CAAI;IAER,YAAY,KAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;IAED,yCAAyC;IACzC,OAAO;QACL,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,4GAA4G;IAC5G,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;IACtB,CAAC;CACF;AAED,uDAAuD;AACvD,MAAM,OAAO,gBAAiB,SAAQ,IAAiB;IACrD,YAAY,MAAc,EAAE,KAAuB;QACjD,KAAK,GAAG,EAAC,GAAG,KAAK,EAAC,CAAC;QAEnB,IAAI,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,eAAe,CAAC,EAAE,CACnE,OAAO,eAAe,KAAK,QAAQ;YACjC,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;gBACnB,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"swap.js","sourceRoot":"","sources":["../../src/compute/swap.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture-transform.d.ts","sourceRoot":"","sources":["../../src/compute/texture-transform.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"texture-transform.d.ts","sourceRoot":"","sources":["../../src/compute/texture-transform.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAE7F,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,0BAAuB;AAGjD;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG;IAC3D,EAAE,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IACtB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAIF;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,YAAY,SAAK;IACjB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAQ;IACrD,QAAQ,EAAE,cAAc,EAAE,CAAM;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;gBAExB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB;IA8BxD,OAAO,IAAI,IAAI;IAOf,uCAAuC;IACvC,MAAM,IAAI,IAAI;IAId,GAAG,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI;IAQpC,gBAAgB,IAAI,OAAO;IAK3B,cAAc,IAAI,WAAW,GAAG,SAAS;IAOzC,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,IAAI;IAI/C,eAAe,CAAC,KAAK,EAAE,qBAAqB;IAI5C,cAAc,CACZ,OAAO,EAAE,cAAc,EACvB,EAAC,aAAa,EAAE,cAAc,EAAE,aAAa,EAAC,EAAE,qBAAqB,GACpE,cAAc;IA8BjB,2BAA2B,IAAI,IAAI;CAOpC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { Model } from "../model/model.js";
|
|
5
4
|
import { getPassthroughFS } from '@luma.gl/shadertools';
|
|
5
|
+
import { Model } from "../model/model.js";
|
|
6
|
+
import { uid } from "../utils/uid.js";
|
|
6
7
|
const FS_OUTPUT_VARIABLE = 'transform_output';
|
|
7
8
|
/**
|
|
8
9
|
* Creates a pipeline for texture→texture transforms.
|
|
@@ -27,7 +28,7 @@ export class TextureTransform {
|
|
|
27
28
|
mipmapFilter: 'nearest'
|
|
28
29
|
});
|
|
29
30
|
this.model = new Model(this.device, {
|
|
30
|
-
id: props.id || 'texture-transform-model',
|
|
31
|
+
id: props.id || uid('texture-transform-model'),
|
|
31
32
|
fs: props.fs ||
|
|
32
33
|
getPassthroughFS({
|
|
33
34
|
input: props.targetTextureVarying,
|
|
@@ -56,6 +57,7 @@ export class TextureTransform {
|
|
|
56
57
|
const renderPass = this.device.beginRenderPass({ framebuffer, ...options });
|
|
57
58
|
this.model.draw(renderPass);
|
|
58
59
|
renderPass.end();
|
|
60
|
+
this.device.submit();
|
|
59
61
|
}
|
|
60
62
|
getTargetTexture() {
|
|
61
63
|
const { targetTexture } = this.bindings[this.currentIndex];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture-transform.js","sourceRoot":"","sources":["../../src/compute/texture-transform.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,KAAK,EAAa,0BAAuB;AACjD,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"texture-transform.js","sourceRoot":"","sources":["../../src/compute/texture-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Texture, Framebuffer } from '@luma.gl/core';
|
|
1
|
+
import { Texture, Framebuffer, TypedArray } from '@luma.gl/core';
|
|
2
2
|
/**
|
|
3
3
|
* Options for copying texture pixels to image
|
|
4
4
|
* @todo - support gl.readBuffer
|
|
@@ -23,4 +23,26 @@ export declare function copyTextureToImage(source: Texture | Framebuffer, option
|
|
|
23
23
|
* @param options
|
|
24
24
|
*/
|
|
25
25
|
export declare function copyTextureToDataUrl(source: Texture | Framebuffer, options?: CopyTextureToImageOptions): string;
|
|
26
|
+
/**
|
|
27
|
+
* Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)
|
|
28
|
+
* https: *stackoverflow.com/questions/41969562/
|
|
29
|
+
* how-can-i-flip-the-result-of-webglrenderingcontext-readpixels
|
|
30
|
+
* @param param0
|
|
31
|
+
*/
|
|
32
|
+
export declare function flipRows(options: {
|
|
33
|
+
data: TypedArray;
|
|
34
|
+
width: number;
|
|
35
|
+
height: number;
|
|
36
|
+
bytesPerPixel?: number;
|
|
37
|
+
temp?: Uint8Array;
|
|
38
|
+
}): void;
|
|
39
|
+
export declare function scalePixels(options: {
|
|
40
|
+
data: TypedArray;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}): {
|
|
44
|
+
data: Uint8Array;
|
|
45
|
+
width: number;
|
|
46
|
+
height: number;
|
|
47
|
+
};
|
|
26
48
|
//# sourceMappingURL=copy-texture-to-image.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy-texture-to-image.d.ts","sourceRoot":"","sources":["../../src/debug/copy-texture-to-image.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"copy-texture-to-image.d.ts","sourceRoot":"","sources":["../../src/debug/copy-texture-to-image.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,eAAe,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,GAAG,WAAW,EAC7B,OAAO,CAAC,EAAE,yBAAyB,GAClC,gBAAgB,CAMlB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,OAAO,GAAG,WAAW,EAC7B,OAAO,GAAE,yBAA8B,GACtC,MAAM,CA4BR;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,GAAG,IAAI,CAgBP;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,GAAG;IACvF,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAaA"}
|