@luma.gl/core 9.2.6 → 9.3.0-alpha.4
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/adapter/canvas-context.d.ts +23 -3
- package/dist/adapter/canvas-context.d.ts.map +1 -1
- package/dist/adapter/canvas-context.js +77 -15
- package/dist/adapter/canvas-context.js.map +1 -1
- package/dist/adapter/device.d.ts +5 -5
- package/dist/adapter/device.d.ts.map +1 -1
- package/dist/adapter/device.js +12 -2
- package/dist/adapter/device.js.map +1 -1
- package/dist/adapter/luma.js +1 -1
- package/dist/adapter/luma.js.map +1 -1
- package/dist/adapter/resources/command-encoder.d.ts +5 -5
- package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/fence.d.ts +16 -0
- package/dist/adapter/resources/fence.d.ts.map +1 -0
- package/dist/adapter/resources/fence.js +15 -0
- package/dist/adapter/resources/fence.js.map +1 -0
- package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/framebuffer.js +15 -12
- package/dist/adapter/resources/framebuffer.js.map +1 -1
- package/dist/adapter/resources/resource.d.ts +5 -0
- package/dist/adapter/resources/resource.d.ts.map +1 -1
- package/dist/adapter/resources/resource.js +3 -0
- package/dist/adapter/resources/resource.js.map +1 -1
- package/dist/adapter/resources/shader.js +27 -25
- package/dist/adapter/resources/shader.js.map +1 -1
- package/dist/adapter/resources/texture.d.ts +97 -24
- package/dist/adapter/resources/texture.d.ts.map +1 -1
- package/dist/adapter/resources/texture.js +116 -10
- package/dist/adapter/resources/texture.js.map +1 -1
- package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
- package/dist/adapter-utils/format-compiler-log.js +23 -15
- package/dist/adapter-utils/format-compiler-log.js.map +1 -1
- package/dist/dist.dev.js +695 -279
- package/dist/dist.min.js +10 -9
- package/dist/index.cjs +481 -161
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/portable/uniform-buffer-layout.d.ts +13 -4
- package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.js +88 -55
- package/dist/portable/uniform-buffer-layout.js.map +1 -1
- package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -1
- package/dist/shadertypes/data-types/decode-data-types.js +2 -1
- package/dist/shadertypes/data-types/decode-data-types.js.map +1 -1
- package/dist/shadertypes/data-types/shader-types.d.ts +5 -7
- package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -1
- package/dist/shadertypes/textures/pixel-utils.js +4 -4
- package/dist/shadertypes/textures/pixel-utils.js.map +1 -1
- package/dist/shadertypes/textures/texture-format-decoder.d.ts +25 -8
- package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -1
- package/dist/shadertypes/textures/texture-format-decoder.js +60 -34
- package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -1
- package/dist/shadertypes/textures/texture-formats.d.ts +43 -16
- package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -1
- package/dist/shadertypes/textures/texture-formats.js.map +1 -1
- package/dist/shadertypes/textures/texture-layout.d.ts +5 -0
- package/dist/shadertypes/textures/texture-layout.d.ts.map +1 -0
- package/dist/shadertypes/textures/texture-layout.js +41 -0
- package/dist/shadertypes/textures/texture-layout.js.map +1 -0
- package/dist/utils/assert.d.ts +5 -0
- package/dist/utils/assert.d.ts.map +1 -0
- package/dist/utils/assert.js +17 -0
- package/dist/utils/assert.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/canvas-context.ts +87 -20
- package/src/adapter/device.ts +23 -5
- package/src/adapter/resources/command-buffer.ts +1 -1
- package/src/adapter/resources/command-encoder.ts +7 -7
- package/src/adapter/resources/fence.ts +30 -0
- package/src/adapter/resources/framebuffer.ts +15 -12
- package/src/adapter/resources/resource.ts +5 -0
- package/src/adapter/resources/shader.ts +28 -28
- package/src/adapter/resources/texture.ts +176 -28
- package/src/adapter-utils/format-compiler-log.ts +23 -15
- package/src/index.ts +12 -2
- package/src/portable/uniform-buffer-layout.ts +122 -63
- package/src/shadertypes/data-types/decode-data-types.ts +2 -1
- package/src/shadertypes/data-types/shader-types.ts +14 -7
- package/src/shadertypes/textures/pixel-utils.ts +4 -4
- package/src/shadertypes/textures/texture-format-decoder.ts +97 -42
- package/src/shadertypes/textures/texture-formats.ts +54 -15
- package/src/shadertypes/textures/texture-layout.ts +60 -0
- package/src/utils/assert.ts +18 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { Resource } from "./resource.js";
|
|
5
5
|
import { Sampler } from "./sampler.js";
|
|
6
6
|
import { log } from "../../utils/log.js";
|
|
7
|
+
import { textureFormatDecoder } from "../../shadertypes/textures/texture-format-decoder.js";
|
|
7
8
|
const BASE_DIMENSIONS = {
|
|
8
9
|
'1d': '1d',
|
|
9
10
|
'2d': '2d',
|
|
@@ -46,7 +47,13 @@ export class Texture extends Resource {
|
|
|
46
47
|
depth;
|
|
47
48
|
/** mip levels in this texture */
|
|
48
49
|
mipLevels;
|
|
49
|
-
/**
|
|
50
|
+
/** Rows are multiples of this length, padded with extra bytes if needed */
|
|
51
|
+
byteAlignment;
|
|
52
|
+
/** The ready promise is always resolved. It is provided for type compatibility with DynamicTexture. */
|
|
53
|
+
ready = Promise.resolve(this);
|
|
54
|
+
/** isReady is always true. It is provided for type compatibility with DynamicTexture. */
|
|
55
|
+
isReady = true;
|
|
56
|
+
/** "Time" of last update. Monotonically increasing timestamp. TODO move to DynamicTexture? */
|
|
50
57
|
updateTimestamp;
|
|
51
58
|
get [Symbol.toStringTag]() {
|
|
52
59
|
return 'Texture';
|
|
@@ -55,7 +62,7 @@ export class Texture extends Resource {
|
|
|
55
62
|
return `Texture(${this.id},${this.format},${this.width}x${this.height})`;
|
|
56
63
|
}
|
|
57
64
|
/** Do not use directly. Create with device.createTexture() */
|
|
58
|
-
constructor(device, props) {
|
|
65
|
+
constructor(device, props, backendProps) {
|
|
59
66
|
props = Texture.normalizeProps(device, props);
|
|
60
67
|
super(device, props, Texture.defaultProps);
|
|
61
68
|
this.dimension = this.props.dimension;
|
|
@@ -66,6 +73,9 @@ export class Texture extends Resource {
|
|
|
66
73
|
this.height = this.props.height;
|
|
67
74
|
this.depth = this.props.depth;
|
|
68
75
|
this.mipLevels = this.props.mipLevels;
|
|
76
|
+
if (this.dimension === 'cube') {
|
|
77
|
+
this.depth = 6;
|
|
78
|
+
}
|
|
69
79
|
// Calculate size, if not provided
|
|
70
80
|
if (this.props.width === undefined || this.props.height === undefined) {
|
|
71
81
|
if (device.isExternalImage(props.data)) {
|
|
@@ -77,17 +87,14 @@ export class Texture extends Resource {
|
|
|
77
87
|
this.width = 1;
|
|
78
88
|
this.height = 1;
|
|
79
89
|
if (this.props.width === undefined || this.props.height === undefined) {
|
|
80
|
-
log.warn(`${this} created with undefined width or height. This is deprecated. Use
|
|
90
|
+
log.warn(`${this} created with undefined width or height. This is deprecated. Use DynamicTexture instead.`)();
|
|
81
91
|
}
|
|
82
92
|
}
|
|
83
93
|
}
|
|
94
|
+
this.byteAlignment = backendProps?.byteAlignment || 1;
|
|
84
95
|
// TODO - perhaps this should be set on async write completion?
|
|
85
96
|
this.updateTimestamp = device.incrementTimestamp();
|
|
86
97
|
}
|
|
87
|
-
/** Set sampler props associated with this texture */
|
|
88
|
-
setSampler(sampler) {
|
|
89
|
-
this.sampler = sampler instanceof Sampler ? sampler : this.device.createSampler(sampler);
|
|
90
|
-
}
|
|
91
98
|
/**
|
|
92
99
|
* Create a new texture with the same parameters and optionally a different size
|
|
93
100
|
* @note Textures are immutable and cannot be resized after creation, but we can create a similar texture with the same parameters but a new size.
|
|
@@ -96,6 +103,81 @@ export class Texture extends Resource {
|
|
|
96
103
|
clone(size) {
|
|
97
104
|
return this.device.createTexture({ ...this.props, ...size });
|
|
98
105
|
}
|
|
106
|
+
/** Set sampler props associated with this texture */
|
|
107
|
+
setSampler(sampler) {
|
|
108
|
+
this.sampler = sampler instanceof Sampler ? sampler : this.device.createSampler(sampler);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Calculates the memory layout of the texture, required when reading and writing data.
|
|
112
|
+
* @return the memory layout of the texture, in particular bytesPerRow which includes required padding
|
|
113
|
+
*/
|
|
114
|
+
computeMemoryLayout(options_ = {}) {
|
|
115
|
+
const options = this._normalizeTextureReadOptions(options_);
|
|
116
|
+
const { width = this.width, height = this.height, depthOrArrayLayers = this.depth } = options;
|
|
117
|
+
const { format, byteAlignment } = this;
|
|
118
|
+
// TODO - does the overriding above make sense?
|
|
119
|
+
// return textureFormatDecoder.computeMemoryLayout(this);
|
|
120
|
+
return textureFormatDecoder.computeMemoryLayout({
|
|
121
|
+
format,
|
|
122
|
+
width,
|
|
123
|
+
height,
|
|
124
|
+
depth: depthOrArrayLayers,
|
|
125
|
+
byteAlignment
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Read the contents of a texture into a GPU Buffer.
|
|
130
|
+
* @returns A Buffer containing the texture data.
|
|
131
|
+
*
|
|
132
|
+
* @note The memory layout of the texture data is determined by the texture format and dimensions.
|
|
133
|
+
* @note The application can call Texture.computeMemoryLayout() to compute the layout.
|
|
134
|
+
* @note The application can call Buffer.readAsync()
|
|
135
|
+
* @note If not supplied a buffer will be created and the application needs to call Buffer.destroy
|
|
136
|
+
*/
|
|
137
|
+
readBuffer(options, buffer) {
|
|
138
|
+
throw new Error('readBuffer not implemented');
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Reads data from a texture into an ArrayBuffer.
|
|
142
|
+
* @returns An ArrayBuffer containing the texture data.
|
|
143
|
+
*
|
|
144
|
+
* @note The memory layout of the texture data is determined by the texture format and dimensions.
|
|
145
|
+
* @note The application can call Texture.computeMemoryLayout() to compute the layout.
|
|
146
|
+
*/
|
|
147
|
+
readDataAsync(options) {
|
|
148
|
+
throw new Error('readBuffer not implemented');
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Writes an GPU Buffer into a texture.
|
|
152
|
+
*
|
|
153
|
+
* @note The memory layout of the texture data is determined by the texture format and dimensions.
|
|
154
|
+
* @note The application can call Texture.computeMemoryLayout() to compute the layout.
|
|
155
|
+
*/
|
|
156
|
+
writeBuffer(buffer, options) {
|
|
157
|
+
throw new Error('readBuffer not implemented');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Writes an array buffer into a texture.
|
|
161
|
+
*
|
|
162
|
+
* @note The memory layout of the texture data is determined by the texture format and dimensions.
|
|
163
|
+
* @note The application can call Texture.computeMemoryLayout() to compute the layout.
|
|
164
|
+
*/
|
|
165
|
+
writeData(data, options) {
|
|
166
|
+
throw new Error('readBuffer not implemented');
|
|
167
|
+
}
|
|
168
|
+
// IMPLEMENTATION SPECIFIC
|
|
169
|
+
/**
|
|
170
|
+
* WebGL can read data synchronously.
|
|
171
|
+
* @note While it is convenient, the performance penalty is very significant
|
|
172
|
+
*/
|
|
173
|
+
readDataSyncWebGL(options) {
|
|
174
|
+
throw new Error('readDataSyncWebGL not available');
|
|
175
|
+
}
|
|
176
|
+
/** Generate mipmaps (WebGL only) */
|
|
177
|
+
generateMipmapsWebGL() {
|
|
178
|
+
throw new Error('generateMipmapsWebGL not available');
|
|
179
|
+
}
|
|
180
|
+
// HELPERS
|
|
99
181
|
/** Ensure we have integer coordinates */
|
|
100
182
|
static normalizeProps(device, props) {
|
|
101
183
|
const newProps = { ...props };
|
|
@@ -109,7 +191,6 @@ export class Texture extends Resource {
|
|
|
109
191
|
}
|
|
110
192
|
return newProps;
|
|
111
193
|
}
|
|
112
|
-
// HELPERS
|
|
113
194
|
/** Initialize texture with supplied props */
|
|
114
195
|
// eslint-disable-next-line max-statements
|
|
115
196
|
_initializeData(data) {
|
|
@@ -166,13 +247,28 @@ export class Texture extends Resource {
|
|
|
166
247
|
options.height = Math.min(options.height, this.height - options.y);
|
|
167
248
|
return options;
|
|
168
249
|
}
|
|
169
|
-
|
|
250
|
+
_normalizeTextureReadOptions(options_) {
|
|
251
|
+
const { width, height } = this;
|
|
252
|
+
const options = { ...Texture.defaultTextureReadOptions, width, height, ...options_ };
|
|
253
|
+
// WebGL will error if we try to copy outside the bounds of the texture
|
|
254
|
+
options.width = Math.min(options.width, this.width - options.x);
|
|
255
|
+
options.height = Math.min(options.height, this.height - options.y);
|
|
256
|
+
return options;
|
|
257
|
+
}
|
|
258
|
+
_normalizeTextureWriteOptions(options_) {
|
|
259
|
+
const { width, height } = this;
|
|
260
|
+
const options = { ...Texture.defaultTextureReadOptions, width, height, ...options_ };
|
|
261
|
+
// WebGL will error if we try to copy outside the bounds of the texture
|
|
262
|
+
options.width = Math.min(options.width, this.width - options.x);
|
|
263
|
+
options.height = Math.min(options.height, this.height - options.y);
|
|
264
|
+
return options;
|
|
265
|
+
}
|
|
170
266
|
static defaultProps = {
|
|
171
267
|
...Resource.defaultProps,
|
|
172
268
|
data: null,
|
|
173
269
|
dimension: '2d',
|
|
174
270
|
format: 'rgba8unorm',
|
|
175
|
-
usage: Texture.
|
|
271
|
+
usage: Texture.SAMPLE | Texture.RENDER | Texture.COPY_DST,
|
|
176
272
|
width: undefined,
|
|
177
273
|
height: undefined,
|
|
178
274
|
depth: 1,
|
|
@@ -209,5 +305,15 @@ export class Texture extends Resource {
|
|
|
209
305
|
premultipliedAlpha: false,
|
|
210
306
|
flipY: false
|
|
211
307
|
};
|
|
308
|
+
static defaultTextureReadOptions = {
|
|
309
|
+
x: 0,
|
|
310
|
+
y: 0,
|
|
311
|
+
z: 0,
|
|
312
|
+
width: undefined,
|
|
313
|
+
height: undefined,
|
|
314
|
+
depthOrArrayLayers: 1,
|
|
315
|
+
mipLevel: 0,
|
|
316
|
+
aspect: 'all'
|
|
317
|
+
};
|
|
212
318
|
}
|
|
213
319
|
//# sourceMappingURL=texture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-compiler-log.d.ts","sourceRoot":"","sources":["../../src/adapter-utils/format-compiler-log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,6CAA0C;AAEvE,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,6FAA6F;IAC7F,cAAc,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,MAAM,
|
|
1
|
+
{"version":3,"file":"format-compiler-log.d.ts","sourceRoot":"","sources":["../../src/adapter-utils/format-compiler-log.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,eAAe,EAAC,6CAA0C;AAEvE,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IACR,6FAA6F;IAC7F,cAAc,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,MAAM,CA+CR"}
|
|
@@ -9,25 +9,33 @@ export function formatCompilerLog(shaderLog, source, options) {
|
|
|
9
9
|
switch (options?.showSourceCode || 'no') {
|
|
10
10
|
case 'all':
|
|
11
11
|
// Parse the error - note: browser and driver dependent
|
|
12
|
-
let
|
|
12
|
+
let currentMessageIndex = 0;
|
|
13
13
|
for (let lineNum = 1; lineNum <= lines.length; lineNum++) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
formattedLog +=
|
|
14
|
+
const line = lines[lineNum - 1];
|
|
15
|
+
const currentMessage = log[currentMessageIndex];
|
|
16
|
+
if (line && currentMessage) {
|
|
17
|
+
formattedLog += getNumberedLine(line, lineNum, options);
|
|
18
|
+
}
|
|
19
|
+
while (log.length > currentMessageIndex && currentMessage.lineNum === lineNum) {
|
|
20
|
+
const message = log[currentMessageIndex++];
|
|
21
|
+
if (message) {
|
|
22
|
+
formattedLog += formatCompilerMessage(message, lines, message.lineNum, {
|
|
23
|
+
...options,
|
|
24
|
+
inlineSource: false
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// Print any remaining messages
|
|
30
|
+
while (log.length > currentMessageIndex) {
|
|
31
|
+
const message = log[currentMessageIndex++];
|
|
32
|
+
if (message) {
|
|
33
|
+
formattedLog += formatCompilerMessage(message, [], 0, {
|
|
18
34
|
...options,
|
|
19
35
|
inlineSource: false
|
|
20
36
|
});
|
|
21
37
|
}
|
|
22
38
|
}
|
|
23
|
-
// Print any remaining messages
|
|
24
|
-
while (log.length > currentMessage) {
|
|
25
|
-
const message = log[currentMessage++];
|
|
26
|
-
formattedLog += formatCompilerMessage(message, [], 0, {
|
|
27
|
-
...options,
|
|
28
|
-
inlineSource: false
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
39
|
return formattedLog;
|
|
32
40
|
case 'issues':
|
|
33
41
|
case 'no':
|
|
@@ -52,9 +60,9 @@ ${numberedLines}${positionIndicator}${message.type.toUpperCase()}: ${message.mes
|
|
|
52
60
|
|
|
53
61
|
`;
|
|
54
62
|
}
|
|
55
|
-
const color = message.type === 'error' ? 'red' : '
|
|
63
|
+
const color = message.type === 'error' ? 'red' : 'orange';
|
|
56
64
|
return options?.html
|
|
57
|
-
? `<div class='luma-compiler-log
|
|
65
|
+
? `<div class='luma-compiler-log-${message.type}' style="color:${color};"><b> ${message.type.toUpperCase()}: ${message.message}</b></div>`
|
|
58
66
|
: `${message.type.toUpperCase()}: ${message.message}`;
|
|
59
67
|
}
|
|
60
68
|
function getNumberedLines(lines, lineNum, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-compiler-log.js","sourceRoot":"","sources":["../../src/adapter-utils/format-compiler-log.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,4CAA4C;AAC5C,MAAM,UAAU,iBAAiB,CAC/B,SAAqC,EACrC,MAAc,EACd,OAIC;IAED,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IAEpE,QAAQ,OAAO,EAAE,cAAc,IAAI,IAAI,EAAE,CAAC;QACxC,KAAK,KAAK;YACR,uDAAuD;YACvD,IAAI,
|
|
1
|
+
{"version":3,"file":"format-compiler-log.js","sourceRoot":"","sources":["../../src/adapter-utils/format-compiler-log.ts"],"names":[],"mappings":"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"}
|