@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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import {TypedArray} from '@math.gl/types';
|
|
6
|
+
import {type TextureFormat, type TextureMemoryLayout} from './texture-formats';
|
|
7
|
+
import {textureFormatDecoder} from './texture-format-decoder';
|
|
8
|
+
|
|
9
|
+
export function getTextureImageView<T extends TextureFormat>(
|
|
10
|
+
arrayBuffer: ArrayBuffer,
|
|
11
|
+
memoryLayout: TextureMemoryLayout,
|
|
12
|
+
format: T,
|
|
13
|
+
image = 0
|
|
14
|
+
) {
|
|
15
|
+
const formatInfo = textureFormatDecoder.getInfo(format);
|
|
16
|
+
const bytesPerComponent = formatInfo.bytesPerPixel / formatInfo.components;
|
|
17
|
+
const {bytesPerImage} = memoryLayout;
|
|
18
|
+
const offset = bytesPerImage * image;
|
|
19
|
+
const totalPixels = memoryLayout.bytesPerImage / bytesPerComponent;
|
|
20
|
+
|
|
21
|
+
switch (format) {
|
|
22
|
+
case 'rgba8unorm':
|
|
23
|
+
case 'bgra8unorm':
|
|
24
|
+
case 'rgba8uint':
|
|
25
|
+
return new Uint8Array(arrayBuffer, offset, totalPixels);
|
|
26
|
+
case 'r8unorm':
|
|
27
|
+
return new Uint8Array(arrayBuffer, offset, totalPixels);
|
|
28
|
+
case 'r16uint':
|
|
29
|
+
case 'rgba16uint':
|
|
30
|
+
return new Uint16Array(arrayBuffer, offset, totalPixels);
|
|
31
|
+
case 'r32uint':
|
|
32
|
+
case 'rgba32uint':
|
|
33
|
+
return new Uint32Array(arrayBuffer, offset, totalPixels);
|
|
34
|
+
case 'r32float':
|
|
35
|
+
return new Float32Array(arrayBuffer, offset, totalPixels);
|
|
36
|
+
case 'rgba16float':
|
|
37
|
+
return new Uint16Array(arrayBuffer, offset, totalPixels); // 4 channels
|
|
38
|
+
case 'rgba32float':
|
|
39
|
+
return new Float32Array(arrayBuffer, offset, totalPixels);
|
|
40
|
+
default:
|
|
41
|
+
throw new Error(`Unsupported format: ${format}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function setTextureImageData<T extends TextureFormat>(
|
|
46
|
+
arrayBuffer: ArrayBuffer,
|
|
47
|
+
memoryLayout: TextureMemoryLayout,
|
|
48
|
+
format: T,
|
|
49
|
+
data: TypedArray,
|
|
50
|
+
image = 0
|
|
51
|
+
): void {
|
|
52
|
+
const offset = 0; // memoryLayout.bytesPerImage * image;
|
|
53
|
+
|
|
54
|
+
const totalPixels = memoryLayout.bytesPerImage / memoryLayout.bytesPerPixel;
|
|
55
|
+
const subArray = data.subarray(0, totalPixels);
|
|
56
|
+
|
|
57
|
+
const typedArray = getTextureImageView(arrayBuffer, memoryLayout, format, image);
|
|
58
|
+
|
|
59
|
+
typedArray.set(subArray, offset);
|
|
60
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
/** Throws if condition is true and narrows type */
|
|
6
|
+
export function assert(condition: unknown, message?: string): asserts condition {
|
|
7
|
+
if (!condition) {
|
|
8
|
+
const error = new Error(message ?? 'luma.gl assertion failed.');
|
|
9
|
+
Error.captureStackTrace?.(error, assert);
|
|
10
|
+
throw error;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Throws if value is not defined, narrows type */
|
|
15
|
+
export function assertDefined<T>(value: T | undefined, message?: string): T {
|
|
16
|
+
assert(value, message);
|
|
17
|
+
return value;
|
|
18
|
+
}
|