@luma.gl/core 9.2.0-alpha.1 → 9.2.0-alpha.5
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 +19 -5
- package/dist/adapter/canvas-context.d.ts.map +1 -1
- package/dist/adapter/canvas-context.js +53 -3
- package/dist/adapter/canvas-context.js.map +1 -1
- package/dist/adapter/device.d.ts +56 -11
- package/dist/adapter/device.d.ts.map +1 -1
- package/dist/adapter/device.js +78 -22
- package/dist/adapter/device.js.map +1 -1
- package/dist/adapter/luma.js +1 -1
- package/dist/adapter/resources/buffer.d.ts +13 -7
- package/dist/adapter/resources/buffer.d.ts.map +1 -1
- package/dist/adapter/resources/buffer.js +1 -5
- package/dist/adapter/resources/buffer.js.map +1 -1
- package/dist/adapter/resources/command-encoder.d.ts +0 -1
- package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/command-encoder.js.map +1 -1
- package/dist/adapter/resources/framebuffer.d.ts +3 -3
- package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/pipeline-layout.d.ts +13 -0
- package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -0
- package/dist/adapter/resources/pipeline-layout.js +21 -0
- package/dist/adapter/resources/pipeline-layout.js.map +1 -0
- package/dist/adapter/resources/render-pipeline.d.ts +4 -4
- package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/resource.d.ts +1 -0
- package/dist/adapter/resources/resource.d.ts.map +1 -1
- package/dist/adapter/resources/resource.js.map +1 -1
- package/dist/adapter/resources/texture-view.d.ts +1 -1
- package/dist/adapter/resources/texture-view.d.ts.map +1 -1
- package/dist/adapter/resources/texture.d.ts +1 -1
- package/dist/adapter/resources/texture.d.ts.map +1 -1
- package/dist/adapter/resources/vertex-array.js +1 -1
- package/dist/adapter/resources/vertex-array.js.map +1 -1
- package/dist/adapter/types/attachments.d.ts +3 -3
- package/dist/adapter/types/attachments.d.ts.map +1 -1
- package/dist/adapter/types/buffer-layout.d.ts +1 -1
- package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
- package/dist/adapter/types/parameters.d.ts +2 -2
- package/dist/adapter/types/parameters.d.ts.map +1 -1
- package/dist/adapter/types/shader-layout.d.ts +5 -6
- package/dist/adapter/types/shader-layout.d.ts.map +1 -1
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts +3 -3
- package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
- package/dist/adapter-utils/get-attribute-from-layouts.js +2 -2
- package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
- package/dist/dist.dev.js +430 -274
- package/dist/dist.min.js +5 -4
- package/dist/index.cjs +426 -273
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +18 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/portable/uniform-block.d.ts +1 -1
- package/dist/portable/uniform-block.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.d.ts +3 -3
- package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
- package/dist/portable/uniform-buffer-layout.js +8 -9
- package/dist/portable/uniform-buffer-layout.js.map +1 -1
- package/dist/portable/uniform-store.d.ts +2 -1
- package/dist/portable/uniform-store.d.ts.map +1 -1
- package/dist/portable/uniform-store.js +1 -1
- package/dist/portable/uniform-store.js.map +1 -1
- package/dist/shadertypes/{data-types.d.ts → data-types/data-types.d.ts} +4 -0
- package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/data-types.js.map +1 -0
- package/dist/shadertypes/{utils → data-types}/decode-data-types.d.ts +4 -4
- package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/decode-data-types.js +74 -0
- package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
- package/dist/shadertypes/{utils → data-types}/decode-shader-types.d.ts +2 -2
- package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
- package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
- package/dist/shadertypes/data-types/shader-types.js.map +1 -0
- package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
- package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
- package/dist/shadertypes/textures/pixel-utils.js +193 -0
- package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
- package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
- package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
- package/dist/shadertypes/{utils/decode-texture-format.js → textures/texture-format-decoder.js} +48 -35
- package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
- package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
- package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
- package/dist/shadertypes/{texture-formats.js → textures/texture-format-generics.js} +1 -1
- package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
- package/dist/shadertypes/{utils → textures}/texture-format-table.d.ts +2 -1
- package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
- package/dist/shadertypes/{utils → textures}/texture-format-table.js +41 -42
- package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
- package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
- package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
- package/dist/shadertypes/textures/texture-formats.js +58 -0
- package/dist/shadertypes/textures/texture-formats.js.map +1 -0
- package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.d.ts +2 -2
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
- package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.js +4 -4
- package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
- package/dist/shadertypes/{vertex-formats.d.ts → vertex-arrays/vertex-formats.d.ts} +5 -3
- package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
- package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
- package/package.json +2 -2
- package/src/adapter/canvas-context.ts +66 -8
- package/src/adapter/device.ts +132 -47
- package/src/adapter/resources/buffer.ts +30 -14
- package/src/adapter/resources/command-encoder.ts +0 -2
- package/src/adapter/resources/framebuffer.ts +5 -5
- package/src/adapter/resources/pipeline-layout.ts +30 -0
- package/src/adapter/resources/render-pipeline.ts +6 -6
- package/src/adapter/resources/resource.ts +1 -0
- package/src/adapter/resources/texture-view.ts +1 -1
- package/src/adapter/resources/texture.ts +1 -1
- package/src/adapter/resources/vertex-array.ts +1 -1
- package/src/adapter/types/attachments.ts +5 -5
- package/src/adapter/types/buffer-layout.ts +1 -1
- package/src/adapter/types/parameters.ts +2 -2
- package/src/adapter/types/shader-layout.ts +8 -5
- package/src/adapter-utils/get-attribute-from-layouts.ts +5 -5
- package/src/index.ts +60 -36
- package/src/portable/uniform-block.ts +1 -1
- package/src/portable/uniform-buffer-layout.ts +13 -12
- package/src/portable/uniform-store.ts +6 -2
- package/src/shadertypes/data-types/data-types.ts +96 -0
- package/src/shadertypes/data-types/decode-data-types.ts +91 -0
- package/src/shadertypes/{utils → data-types}/decode-shader-types.ts +2 -2
- package/src/shadertypes/textures/pixel-utils.ts +239 -0
- package/src/shadertypes/{utils/decode-texture-format.ts → textures/texture-format-decoder.ts} +63 -47
- package/src/shadertypes/textures/texture-format-generics.ts +190 -0
- package/src/shadertypes/{utils → textures}/texture-format-table.ts +62 -52
- package/src/shadertypes/{texture-formats.ts → textures/texture-formats.ts} +229 -147
- package/src/shadertypes/{utils → vertex-arrays}/decode-vertex-format.ts +6 -10
- package/src/shadertypes/{vertex-formats.ts → vertex-arrays/vertex-formats.ts} +20 -6
- package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -11
- package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
- package/dist/adapter-utils/buffer-layout-helper.js +0 -33
- package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
- package/dist/shadertypes/data-types.d.ts.map +0 -1
- package/dist/shadertypes/data-types.js.map +0 -1
- package/dist/shadertypes/shader-types.d.ts.map +0 -1
- package/dist/shadertypes/shader-types.js.map +0 -1
- package/dist/shadertypes/texture-formats.d.ts +0 -74
- package/dist/shadertypes/texture-formats.d.ts.map +0 -1
- package/dist/shadertypes/texture-formats.js.map +0 -1
- package/dist/shadertypes/utils/decode-data-types.d.ts.map +0 -1
- package/dist/shadertypes/utils/decode-data-types.js +0 -114
- package/dist/shadertypes/utils/decode-data-types.js.map +0 -1
- package/dist/shadertypes/utils/decode-shader-types.d.ts.map +0 -1
- package/dist/shadertypes/utils/decode-shader-types.js.map +0 -1
- package/dist/shadertypes/utils/decode-texture-format.d.ts +0 -15
- package/dist/shadertypes/utils/decode-texture-format.d.ts.map +0 -1
- package/dist/shadertypes/utils/decode-texture-format.js.map +0 -1
- package/dist/shadertypes/utils/decode-vertex-format.d.ts.map +0 -1
- package/dist/shadertypes/utils/decode-vertex-format.js.map +0 -1
- package/dist/shadertypes/utils/texture-format-table.d.ts.map +0 -1
- package/dist/shadertypes/utils/texture-format-table.js.map +0 -1
- package/dist/shadertypes/vertex-formats.d.ts.map +0 -1
- package/dist/shadertypes/vertex-formats.js.map +0 -1
- package/src/adapter-utils/buffer-layout-helper.ts +0 -41
- package/src/shadertypes/data-types.ts +0 -42
- package/src/shadertypes/utils/decode-data-types.ts +0 -131
- /package/dist/shadertypes/{data-types.js → data-types/data-types.js} +0 -0
- /package/dist/shadertypes/{utils → data-types}/decode-shader-types.js +0 -0
- /package/dist/shadertypes/{shader-types.d.ts → data-types/shader-types.d.ts} +0 -0
- /package/dist/shadertypes/{shader-types.js → data-types/shader-types.js} +0 -0
- /package/dist/shadertypes/{vertex-formats.js → vertex-arrays/vertex-formats.js} +0 -0
- /package/src/shadertypes/{shader-types.ts → data-types/shader-types.ts} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -5,14 +5,10 @@ export type { DeviceProps, DeviceInfo, DeviceFeature, DeviceTextureFormatCapabil
|
|
|
5
5
|
export { Device, DeviceFeatures, DeviceLimits } from "./adapter/device.js";
|
|
6
6
|
export type { CanvasContextProps } from "./adapter/canvas-context.js";
|
|
7
7
|
export { CanvasContext } from "./adapter/canvas-context.js";
|
|
8
|
-
export type
|
|
9
|
-
export {
|
|
10
|
-
export type
|
|
11
|
-
export {
|
|
12
|
-
export type { TextureProps } from "./adapter/resources/texture.js";
|
|
13
|
-
export { Texture } from "./adapter/resources/texture.js";
|
|
14
|
-
export type { TextureViewProps } from "./adapter/resources/texture-view.js";
|
|
15
|
-
export { TextureView } from "./adapter/resources/texture-view.js";
|
|
8
|
+
export { Resource, type ResourceProps } from "./adapter/resources/resource.js";
|
|
9
|
+
export { Buffer, type BufferProps, type BufferMapCallback } from "./adapter/resources/buffer.js";
|
|
10
|
+
export { Texture, type TextureProps } from "./adapter/resources/texture.js";
|
|
11
|
+
export { TextureView, type TextureViewProps } from "./adapter/resources/texture-view.js";
|
|
16
12
|
export type { ExternalTextureProps } from "./adapter/resources/external-texture.js";
|
|
17
13
|
export { ExternalTexture } from "./adapter/resources/external-texture.js";
|
|
18
14
|
export type { ShaderProps } from "./adapter/resources/shader.js";
|
|
@@ -39,34 +35,36 @@ export type { TransformFeedbackProps, BufferRange } from "./adapter/resources/tr
|
|
|
39
35
|
export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
|
|
40
36
|
export type { QuerySetProps } from "./adapter/resources/query-set.js";
|
|
41
37
|
export { QuerySet } from "./adapter/resources/query-set.js";
|
|
38
|
+
export type { PipelineLayoutProps } from "./adapter/resources/pipeline-layout.js";
|
|
39
|
+
export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
|
|
42
40
|
export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
|
|
43
41
|
export { UniformBlock } from "./portable/uniform-block.js";
|
|
44
42
|
export { UniformStore } from "./portable/uniform-store.js";
|
|
45
43
|
export type { CompilerMessage } from "./adapter/types/compiler-message.js";
|
|
46
44
|
export type { ExternalImage } from "./image-utils/image-types.js";
|
|
47
|
-
export type
|
|
45
|
+
export { type CopyExternalImageOptions, type CopyImageDataOptions } from "./adapter/resources/texture.js";
|
|
48
46
|
export type { Parameters, PrimitiveTopology, IndexFormat } from "./adapter/types/parameters.js";
|
|
49
47
|
export type { CullMode, FrontFace, RasterizationParameters, CompareFunction, StencilOperation, DepthStencilParameters, BlendFactor, BlendOperation, ColorParameters, MultisampleParameters, RenderPassParameters, RenderPipelineParameters, PolygonMode, ProvokingVertex } from "./adapter/types/parameters.js";
|
|
50
48
|
export type { ColorAttachment, DepthStencilAttachment } from "./adapter/types/attachments.js";
|
|
51
|
-
export type { ShaderLayout, ComputeShaderLayout, AttributeDeclaration, BindingDeclaration, Binding } from "./adapter/types/shader-layout.js";
|
|
49
|
+
export type { ShaderLayout, ComputeShaderLayout, AttributeDeclaration, BindingDeclaration, Binding, UniformBufferBindingLayout, StorageBufferBindingLayout, TextureBindingLayout, SamplerBindingLayout, StorageTextureBindingLayout } from "./adapter/types/shader-layout.js";
|
|
52
50
|
export type { BufferLayout, BufferAttributeLayout } from "./adapter/types/buffer-layout.js";
|
|
53
51
|
export type { AttributeBinding, UniformBinding, UniformBlockBinding, VaryingBinding } from "./adapter/types/shader-layout.js";
|
|
54
52
|
export type { UniformValue } from "./adapter/types/uniforms.js";
|
|
55
53
|
export type { NumberArray, TypedArray, TypedArrayConstructor, BigTypedArray, BigTypedArrayConstructor } from "./types.js";
|
|
56
|
-
export type
|
|
57
|
-
export type
|
|
58
|
-
export
|
|
59
|
-
export
|
|
60
|
-
export {
|
|
61
|
-
export {
|
|
62
|
-
export {
|
|
63
|
-
export {
|
|
54
|
+
export { type PrimitiveDataType, type SignedDataType, type NormalizedDataType, type DataTypeInfo, type DataTypeArray, type NormalizedDataTypeArray } from "./shadertypes/data-types/data-types.js";
|
|
55
|
+
export { type AttributeShaderType, type VariableShaderType } from "./shadertypes/data-types/shader-types.js";
|
|
56
|
+
export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDataType } from "./shadertypes/data-types/decode-data-types.js";
|
|
57
|
+
export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
|
|
58
|
+
export { type VertexFormat } from "./shadertypes/vertex-arrays/vertex-formats.js";
|
|
59
|
+
export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/vertex-arrays/decode-vertex-format.js";
|
|
60
|
+
export { type TextureFormat, type TextureFormatColor, type TextureFormatDepthStencil, type TextureCompression, type TextureFormatInfo, type TextureFormatCapabilities } from "./shadertypes/textures/texture-formats.js";
|
|
61
|
+
export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
|
|
62
|
+
export { type PixelData, readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
|
|
64
63
|
export type { StatsManager } from "./utils/stats-manager.js";
|
|
65
64
|
export type { CopyBufferToBufferOptions, CopyBufferToTextureOptions, CopyTextureToBufferOptions, CopyTextureToTextureOptions } from "./adapter/resources/command-encoder.js";
|
|
66
65
|
export { log } from "./utils/log.js";
|
|
67
66
|
export { getScratchArray } from "./utils/array-utils-flat.js";
|
|
68
67
|
export type { AttributeInfo } from "./adapter-utils/get-attribute-from-layouts.js";
|
|
69
|
-
export { BufferLayoutHelper as _BufferLayoutHelper } from "./adapter-utils/buffer-layout-helper.js";
|
|
70
68
|
export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
|
|
71
|
-
export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/
|
|
69
|
+
export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/textures/texture-format-table.js";
|
|
72
70
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,YAAY,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,0BAAuB;AACzE,OAAO,EAAC,IAAI,EAAC,0BAAuB;AAGpC,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAE1C,YAAY,EACV,WAAW,EACX,UAAU,EACV,aAAa,EACb,+BAA+B,EAChC,4BAAyB;AAC1B,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAC,4BAAyB;AAEtE,YAAY,EAAC,kBAAkB,EAAC,oCAAiC;AACjE,OAAO,EAAC,aAAa,EAAC,oCAAiC;AAGvD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export { luma } from "./adapter/luma.js";
|
|
|
6
6
|
export { Adapter } from "./adapter/adapter.js";
|
|
7
7
|
export { Device, DeviceFeatures, DeviceLimits } from "./adapter/device.js";
|
|
8
8
|
export { CanvasContext } from "./adapter/canvas-context.js";
|
|
9
|
+
// GPU RESOURCES
|
|
9
10
|
export { Resource } from "./adapter/resources/resource.js";
|
|
10
11
|
export { Buffer } from "./adapter/resources/buffer.js";
|
|
11
12
|
export { Texture } from "./adapter/resources/texture.js";
|
|
@@ -23,20 +24,20 @@ export { CommandBuffer } from "./adapter/resources/command-buffer.js";
|
|
|
23
24
|
export { VertexArray } from "./adapter/resources/vertex-array.js";
|
|
24
25
|
export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
|
|
25
26
|
export { QuerySet } from "./adapter/resources/query-set.js";
|
|
27
|
+
export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
|
|
26
28
|
// PORTABLE API - UNIFORM BUFFERS
|
|
27
29
|
export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
|
|
28
30
|
export { UniformBlock } from "./portable/uniform-block.js";
|
|
29
31
|
export { UniformStore } from "./portable/uniform-store.js";
|
|
30
|
-
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
33
|
-
export {
|
|
34
|
-
export {
|
|
32
|
+
export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDataType } from "./shadertypes/data-types/decode-data-types.js";
|
|
33
|
+
export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
|
|
34
|
+
export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/vertex-arrays/decode-vertex-format.js";
|
|
35
|
+
export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
|
|
36
|
+
export { readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
|
|
35
37
|
// INTERNAL UTILS - for use in other luma.gl modules only
|
|
36
38
|
export { log } from "./utils/log.js";
|
|
37
39
|
export { getScratchArray } from "./utils/array-utils-flat.js";
|
|
38
|
-
export { BufferLayoutHelper as _BufferLayoutHelper } from "./adapter-utils/buffer-layout-helper.js";
|
|
39
40
|
export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
|
|
40
41
|
// TEST EXPORTS
|
|
41
|
-
export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/
|
|
42
|
+
export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/textures/texture-format-table.js";
|
|
42
43
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,IAAI,EAAC,0BAAuB;AAEpC,+CAA+C;AAC/C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAQ1C,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAC,4BAAyB;AAGtE,OAAO,EAAC,aAAa,EAAC,oCAAiC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,IAAI,EAAC,0BAAuB;AAEpC,+CAA+C;AAC/C,OAAO,EAAC,OAAO,EAAC,6BAA0B;AAQ1C,OAAO,EAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAC,4BAAyB;AAGtE,OAAO,EAAC,aAAa,EAAC,oCAAiC;AAEvD,gBAAgB;AAChB,OAAO,EAAC,QAAQ,EAAqB,wCAAqC;AAE1E,OAAO,EAAC,MAAM,EAA2C,sCAAmC;AAE5F,OAAO,EAAC,OAAO,EAAoB,uCAAoC;AAEvE,OAAO,EAAC,WAAW,EAAwB,4CAAyC;AAGpF,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAGlD,OAAO,EAAC,OAAO,EAAC,uCAAoC;AAGpD,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAG5D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,UAAU,EAAC,2CAAwC;AAG3D,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAGrE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,aAAa,EAAC,8CAA2C;AAGjE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,OAAO,EAAC,iBAAiB,EAAC,kDAA+C;AAGzE,OAAO,EAAC,QAAQ,EAAC,yCAAsC;AAGvD,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,iCAAiC;AACjC,OAAO,EAAC,mBAAmB,EAAC,4CAAyC;AACrE,OAAO,EAAC,YAAY,EAAC,oCAAiC;AACtD,OAAO,EAAC,YAAY,EAAC,oCAAiC;AAiFtD,OAAO,EACL,eAAe,EACf,WAAW,EACX,wBAAwB,EACxB,qBAAqB,EACtB,sDAAmD;AACpD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC3B,wDAAqD;AAMtD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EACjB,4DAAyD;AAa1D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACrB,yDAAsD;AAEvD,OAAO,EAAiB,SAAS,EAAE,UAAU,EAAC,8CAA2C;AAezF,yDAAyD;AACzD,OAAO,EAAC,GAAG,EAAC,uBAAoB;AAChC,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,4BAA4B,EAAC,sDAAmD;AAExF,eAAe;AACf,OAAO,EACL,0BAA0B,IAAI,2BAA2B,EACzD,qBAAqB,IAAI,sBAAsB,EAChD,uDAAoD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VariableShaderType } from "../shadertypes/shader-types.js";
|
|
1
|
+
import type { VariableShaderType } from "../shadertypes/data-types/shader-types.js";
|
|
2
2
|
import type { UniformValue } from "../adapter/types/uniforms.js";
|
|
3
3
|
import { ShaderLayout, UniformInfo } from "../adapter/types/shader-layout.js";
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-block.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-block.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,
|
|
1
|
+
{"version":3,"file":"uniform-block.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-block.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,kDAA+C;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAC5D,OAAO,EACL,YAAY,EACZ,WAAW,EAEZ,0CAAuC;AAGxC;;;GAGG;AACH,qBAAa,YAAY,CACvB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAE7E,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,YAAY,CAAC,CAA+C;IAC9F,gBAAgB,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,OAAO,CAAC,CAA0C;IAC5F,QAAQ,EAAE,OAAO,CAAQ;IAEzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAM;IACzD,WAAW,EAAE,MAAM,GAAG,KAAK,CAAiB;gBAEhC,KAAK,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;KAC5E;IAmBD,4BAA4B;IAC5B,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;IAS/C,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIpC,2BAA2B;IAC3B,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAO9C,2BAA2B;IAC3B,OAAO,CAAC,WAAW;CAQpB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { PrimitiveDataType } from "../shadertypes/data-types.js";
|
|
2
|
-
import type { VariableShaderType } from "../shadertypes/shader-types.js";
|
|
1
|
+
import type { PrimitiveDataType } from "../shadertypes/data-types/data-types.js";
|
|
2
|
+
import type { VariableShaderType } from "../shadertypes/data-types/shader-types.js";
|
|
3
3
|
import type { UniformValue } from "../adapter/types/uniforms.js";
|
|
4
4
|
/**
|
|
5
5
|
* Std140 layout for uniform buffers
|
|
@@ -14,7 +14,7 @@ export declare class UniformBufferLayout {
|
|
|
14
14
|
/** number of bytes needed for buffer allocation */
|
|
15
15
|
readonly byteLength: number;
|
|
16
16
|
/** Create a new UniformBufferLayout given a map of attributes. */
|
|
17
|
-
constructor(uniformTypes: Record<string, VariableShaderType>);
|
|
17
|
+
constructor(uniformTypes: Record<string, VariableShaderType>, uniformSizes?: Record<string, number>);
|
|
18
18
|
/** Get the data for the complete buffer */
|
|
19
19
|
getData(uniformValues: Record<string, UniformValue>): Uint8Array;
|
|
20
20
|
/** Does this layout have a field with specified name */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-buffer-layout.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,
|
|
1
|
+
{"version":3,"file":"uniform-buffer-layout.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,gDAA6C;AAC5E,OAAO,KAAK,EAAC,kBAAkB,EAAC,kDAA+C;AAI/E,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAW5D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,iBAAiB,CAAA;KAAC,CAAC,CAAM;IAE9F,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,kEAAkE;gBAEhE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAChD,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAyB3C,2CAA2C;IAC3C,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU;IAgDhE,wDAAwD;IACxD,GAAG,CAAC,IAAI,EAAE,MAAM;IAIhB,0DAA0D;IAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,GAAG,SAAS;CAI9D"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
import { alignTo } from "../shadertypes/
|
|
5
|
-
import { getVariableShaderTypeInfo } from "../shadertypes/
|
|
4
|
+
import { alignTo } from "../shadertypes/data-types/decode-data-types.js";
|
|
5
|
+
import { getVariableShaderTypeInfo } from "../shadertypes/data-types/decode-shader-types.js";
|
|
6
6
|
import { getScratchArrayBuffer } from "../utils/array-utils-flat.js";
|
|
7
7
|
import { isNumberArray } from "../utils/is-array.js";
|
|
8
8
|
import { log } from "../utils/log.js";
|
|
@@ -20,13 +20,15 @@ export class UniformBufferLayout {
|
|
|
20
20
|
/** number of bytes needed for buffer allocation */
|
|
21
21
|
byteLength;
|
|
22
22
|
/** Create a new UniformBufferLayout given a map of attributes. */
|
|
23
|
-
constructor(uniformTypes) {
|
|
23
|
+
constructor(uniformTypes, uniformSizes = {}) {
|
|
24
24
|
/** number of 4 byte slots taken */
|
|
25
25
|
let size = 0;
|
|
26
26
|
// Add layout (type, size and offset) definitions for each uniform in the layout
|
|
27
27
|
for (const [key, uniformType] of Object.entries(uniformTypes)) {
|
|
28
28
|
const typeAndComponents = getVariableShaderTypeInfo(uniformType);
|
|
29
|
-
const { type, components
|
|
29
|
+
const { type, components } = typeAndComponents;
|
|
30
|
+
// Calculate total count for uniform arrays.
|
|
31
|
+
const count = components * (uniformSizes?.[key] ?? 1);
|
|
30
32
|
// First, align (bump) current offset to an even multiple of current object (1, 2, 4)
|
|
31
33
|
size = alignTo(size, count);
|
|
32
34
|
// Use the aligned size as the offset of the current uniform.
|
|
@@ -41,9 +43,8 @@ export class UniformBufferLayout {
|
|
|
41
43
|
}
|
|
42
44
|
/** Get the data for the complete buffer */
|
|
43
45
|
getData(uniformValues) {
|
|
44
|
-
const bufferSize = Math.max(this.byteLength, minBufferSize);
|
|
45
46
|
// Allocate three typed arrays pointing at same memory
|
|
46
|
-
const arrayBuffer = getScratchArrayBuffer(
|
|
47
|
+
const arrayBuffer = getScratchArrayBuffer(this.byteLength);
|
|
47
48
|
const typedArrays = {
|
|
48
49
|
i32: new Int32Array(arrayBuffer),
|
|
49
50
|
u32: new Uint32Array(arrayBuffer),
|
|
@@ -51,8 +52,6 @@ export class UniformBufferLayout {
|
|
|
51
52
|
// TODO not implemented
|
|
52
53
|
f16: new Uint16Array(arrayBuffer)
|
|
53
54
|
};
|
|
54
|
-
// TODO is this needed?
|
|
55
|
-
// typedArrays.i32.fill(0);
|
|
56
55
|
for (const [name, value] of Object.entries(uniformValues)) {
|
|
57
56
|
const uniformLayout = this.layout[name];
|
|
58
57
|
if (!uniformLayout) {
|
|
@@ -82,7 +81,7 @@ export class UniformBufferLayout {
|
|
|
82
81
|
typedArray.set(value, offset);
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
|
-
return new Uint8Array(arrayBuffer);
|
|
84
|
+
return new Uint8Array(arrayBuffer, 0, this.byteLength);
|
|
86
85
|
}
|
|
87
86
|
/** Does this layout have a field with specified name */
|
|
88
87
|
has(name) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-buffer-layout.js","sourceRoot":"","sources":["../../src/portable/uniform-buffer-layout.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC,OAAO,EAAC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"uniform-buffer-layout.js","sourceRoot":"","sources":["../../src/portable/uniform-buffer-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { VariableShaderType } from "../shadertypes/shader-types.js";
|
|
1
|
+
import type { VariableShaderType } from "../shadertypes/data-types/shader-types.js";
|
|
2
2
|
import type { UniformValue } from "../adapter/types/uniforms.js";
|
|
3
3
|
import type { Device } from "../adapter/device.js";
|
|
4
4
|
import { Buffer } from "../adapter/resources/buffer.js";
|
|
@@ -24,6 +24,7 @@ export declare class UniformStore<TPropGroups extends Record<string, Record<stri
|
|
|
24
24
|
*/
|
|
25
25
|
constructor(blocks: Record<keyof TPropGroups, {
|
|
26
26
|
uniformTypes?: Record<string, VariableShaderType>;
|
|
27
|
+
uniformSizes?: Record<string, number>;
|
|
27
28
|
defaultProps?: Record<string, unknown>;
|
|
28
29
|
defaultUniforms?: Record<string, UniformValue>;
|
|
29
30
|
}>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,
|
|
1
|
+
{"version":3,"file":"uniform-store.d.ts","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,kDAA+C;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,6BAA0B;AAC9C,OAAO,EAAC,MAAM,EAAC,uCAAoC;AAEnD,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAClE,MAAM,EACN,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB;IAED,uDAAuD;IACvD,aAAa,qEAA8C;IAC3D,sEAAsE;IACtE,oBAAoB,8CAAqD;IACzE,mCAAmC;IACnC,cAAc,iCAAwC;IAEtD;;;OAGG;gBAED,MAAM,EAAE,MAAM,CACZ,MAAM,WAAW,EACjB;QACE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KAChD,CACF;IAmBH,0CAA0C;IAC1C,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,WAAW,CACT,QAAQ,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC7E,IAAI;IAUP,4DAA4D;IAC5D,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAIxE,mEAAmE;IACnE,oBAAoB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,UAAU;IAMtE;;;OAGG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,MAAM,WAAW,EACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;SAAE,KAAK,IAAI,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KAAC,CAAC,GAC9E,MAAM;IAeT,4GAA4G;IAC5G,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,WAAW,GAAG,MAAM;IAcrF,4DAA4D;IAC5D,oBAAoB,IAAI,KAAK,GAAG,MAAM;IAYtC,qEAAqE;IACrE,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM;CAwB1E"}
|
|
@@ -27,7 +27,7 @@ export class UniformStore {
|
|
|
27
27
|
for (const [bufferName, block] of Object.entries(blocks)) {
|
|
28
28
|
const uniformBufferName = bufferName;
|
|
29
29
|
// Create a layout object to help us generate correctly formatted binary uniform buffers
|
|
30
|
-
const uniformBufferLayout = new UniformBufferLayout(block.uniformTypes
|
|
30
|
+
const uniformBufferLayout = new UniformBufferLayout(block.uniformTypes ?? {}, block.uniformSizes ?? {});
|
|
31
31
|
this.uniformBufferLayouts.set(uniformBufferName, uniformBufferLayout);
|
|
32
32
|
// Create a Uniform block to store the uniforms for each buffer.
|
|
33
33
|
const uniformBlock = new UniformBlock({ name: bufferName });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniform-store.js","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,MAAM,EAAC,uCAAoC;AACnD,OAAO,EAAC,GAAG,EAAC,wBAAqB;AACjC,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,mBAAmB,EAAC,mCAAgC;AAE5D;;;;;;GAMG;AACH,MAAM,OAAO,YAAY;IAMvB,uDAAuD;IACvD,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC3D,sEAAsE;IACtE,oBAAoB,GAAG,IAAI,GAAG,EAA0C,CAAC;IACzE,mCAAmC;IACnC,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEtD;;;OAGG;IACH,YACE,
|
|
1
|
+
{"version":3,"file":"uniform-store.js","sourceRoot":"","sources":["../../src/portable/uniform-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,4 +25,8 @@ export type DataTypeInfo = {
|
|
|
25
25
|
integer: boolean;
|
|
26
26
|
signed: boolean;
|
|
27
27
|
};
|
|
28
|
+
/** Returns a typed array appropriate to hold the actual values of a data type (integers for normalized integers) */
|
|
29
|
+
export type DataTypeArray<T extends NormalizedDataType> = T extends 'uint8' ? Uint8Array : T extends 'sint8' ? Int8Array : T extends 'unorm8' ? Uint8Array : T extends 'snorm8' ? Int8Array : T extends 'uint16' ? Uint16Array : T extends 'sint16' ? Int16Array : T extends 'unorm16' ? Uint16Array : T extends 'snorm16' ? Int16Array : T extends 'uint32' ? Uint32Array : T extends 'sint32' ? Int32Array : T extends 'float16' ? Uint16Array : T extends 'float32' ? Float32Array : never;
|
|
30
|
+
/** Returns a type array appropriate to hold the logical values of a data type (floats for normalized integers) */
|
|
31
|
+
export type NormalizedDataTypeArray<T extends NormalizedDataType> = T extends 'uint8' ? Uint8Array : T extends 'sint8' ? Int8Array : T extends 'unorm8' ? Float32Array : T extends 'snorm8' ? Float32Array : T extends 'uint16' ? Uint16Array : T extends 'sint16' ? Int16Array : T extends 'unorm16' ? Uint16Array : T extends 'snorm16' ? Int16Array : T extends 'uint32' ? Uint32Array : T extends 'sint32' ? Int32Array : T extends 'float16' ? Float32Array : T extends 'float32' ? Float32Array : never;
|
|
28
32
|
//# sourceMappingURL=data-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-types.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,CAAC;AAEd;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9F,gEAAgE;AAChE,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,oHAAoH;AACpH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,SAAS,OAAO,GACvE,UAAU,GACV,CAAC,SAAS,OAAO,GACf,SAAS,GACT,CAAC,SAAS,QAAQ,GAChB,UAAU,GACV,CAAC,SAAS,QAAQ,GAChB,SAAS,GACT,CAAC,SAAS,QAAQ,GAChB,WAAW,GACX,CAAC,SAAS,QAAQ,GAChB,UAAU,GACV,CAAC,SAAS,SAAS,GACjB,WAAW,GACX,CAAC,SAAS,SAAS,GACjB,UAAU,GACV,CAAC,SAAS,QAAQ,GAChB,WAAW,GACX,CAAC,SAAS,QAAQ,GAChB,UAAU,GACV,CAAC,SAAS,SAAS,GACjB,WAAW,GACX,CAAC,SAAS,SAAS,GACjB,YAAY,GACZ,KAAK,CAAC;AAEhC,kHAAkH;AAClH,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,kBAAkB,IAAI,CAAC,SAAS,OAAO,GACjF,UAAU,GACV,CAAC,SAAS,OAAO,GACf,SAAS,GACT,CAAC,SAAS,QAAQ,GAChB,YAAY,GACZ,CAAC,SAAS,QAAQ,GAChB,YAAY,GACZ,CAAC,SAAS,QAAQ,GAChB,WAAW,GACX,CAAC,SAAS,QAAQ,GAChB,UAAU,GACV,CAAC,SAAS,SAAS,GACjB,WAAW,GACX,CAAC,SAAS,SAAS,GACjB,UAAU,GACV,CAAC,SAAS,QAAQ,GAChB,WAAW,GACX,CAAC,SAAS,QAAQ,GAChB,UAAU,GACV,CAAC,SAAS,SAAS,GACjB,YAAY,GACZ,CAAC,SAAS,SAAS,GACjB,YAAY,GACZ,KAAK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/data-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { TypedArray, TypedArrayConstructor } from "../../types.js";
|
|
2
|
-
import {
|
|
2
|
+
import { SignedDataType, NormalizedDataType, DataTypeInfo } from "./data-types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Gets info about a data type constant (signed or normalized)
|
|
5
5
|
* @returns underlying primitive / signed types, byte length, normalization, integer, signed flags
|
|
6
6
|
*/
|
|
7
7
|
export declare function getDataTypeInfo(type: NormalizedDataType): DataTypeInfo;
|
|
8
8
|
/** Build a vertex format from a signed data type and a component */
|
|
9
|
-
export declare function
|
|
9
|
+
export declare function getNormalizedDataType(signedDataType: SignedDataType): NormalizedDataType;
|
|
10
10
|
/** Align offset to 1, 2 or 4 elements (4, 8 or 16 bytes) */
|
|
11
11
|
export declare function alignTo(size: number, count: number): number;
|
|
12
12
|
/** Returns the VariableShaderType that corresponds to a typed array */
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function getDataType(arrayOrType: TypedArray | TypedArrayConstructor): SignedDataType;
|
|
14
14
|
/** Returns the TypedArray that corresponds to a shader data type */
|
|
15
|
-
export declare function
|
|
15
|
+
export declare function getTypedArrayConstructor(type: NormalizedDataType): TypedArrayConstructor;
|
|
16
16
|
//# sourceMappingURL=decode-data-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-data-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-data-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,qBAAqB,EAAC,uBAAoB;AAC9D,OAAO,EAAoB,cAAc,EAAE,kBAAkB,EAAE,YAAY,EAAC,wBAAqB;AAEjG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,YAAY,CAatE;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,cAAc,EAAE,cAAc,GAAG,kBAAkB,CAUxF;AAED,4DAA4D;AAC5D,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAO3D;AAED,uEAAuE;AACvE,wBAAgB,WAAW,CAAC,WAAW,EAAE,UAAU,GAAG,qBAAqB,GAAG,cAAc,CAU3F;AAED,oEAAoE;AACpE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,CAGxF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
/**
|
|
5
|
+
* Gets info about a data type constant (signed or normalized)
|
|
6
|
+
* @returns underlying primitive / signed types, byte length, normalization, integer, signed flags
|
|
7
|
+
*/
|
|
8
|
+
export function getDataTypeInfo(type) {
|
|
9
|
+
const [signedType, primitiveType, byteLength] = NORMALIZED_TYPE_MAP[type];
|
|
10
|
+
const normalized = type.includes('norm');
|
|
11
|
+
const integer = !normalized && !type.startsWith('float');
|
|
12
|
+
const signed = type.startsWith('s');
|
|
13
|
+
return {
|
|
14
|
+
signedType,
|
|
15
|
+
primitiveType,
|
|
16
|
+
byteLength,
|
|
17
|
+
normalized,
|
|
18
|
+
integer,
|
|
19
|
+
signed
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/** Build a vertex format from a signed data type and a component */
|
|
23
|
+
export function getNormalizedDataType(signedDataType) {
|
|
24
|
+
const dataType = signedDataType;
|
|
25
|
+
// prettier-ignore
|
|
26
|
+
switch (dataType) {
|
|
27
|
+
case 'uint8': return 'unorm8';
|
|
28
|
+
case 'sint8': return 'snorm8';
|
|
29
|
+
case 'uint16': return 'unorm16';
|
|
30
|
+
case 'sint16': return 'snorm16';
|
|
31
|
+
default: return dataType;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Align offset to 1, 2 or 4 elements (4, 8 or 16 bytes) */
|
|
35
|
+
export function alignTo(size, count) {
|
|
36
|
+
// prettier-ignore
|
|
37
|
+
switch (count) {
|
|
38
|
+
case 1: return size; // Pad upwards to even multiple of 2
|
|
39
|
+
case 2: return size + (size % 2); // Pad upwards to even multiple of 2
|
|
40
|
+
default: return size + ((4 - (size % 4)) % 4); // Pad upwards to even multiple of 4
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Returns the VariableShaderType that corresponds to a typed array */
|
|
44
|
+
export function getDataType(arrayOrType) {
|
|
45
|
+
const Constructor = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
46
|
+
if (Constructor === Uint8ClampedArray) {
|
|
47
|
+
return 'uint8';
|
|
48
|
+
}
|
|
49
|
+
const info = Object.values(NORMALIZED_TYPE_MAP).find(entry => Constructor === entry[4]);
|
|
50
|
+
if (!info) {
|
|
51
|
+
throw new Error(Constructor.name);
|
|
52
|
+
}
|
|
53
|
+
return info[0];
|
|
54
|
+
}
|
|
55
|
+
/** Returns the TypedArray that corresponds to a shader data type */
|
|
56
|
+
export function getTypedArrayConstructor(type) {
|
|
57
|
+
const [, , , , Constructor] = NORMALIZED_TYPE_MAP[type];
|
|
58
|
+
return Constructor;
|
|
59
|
+
}
|
|
60
|
+
const NORMALIZED_TYPE_MAP = {
|
|
61
|
+
uint8: ['uint8', 'u32', 1, false, Uint8Array],
|
|
62
|
+
sint8: ['sint8', 'i32', 1, false, Int8Array],
|
|
63
|
+
unorm8: ['uint8', 'f32', 1, true, Uint8Array],
|
|
64
|
+
snorm8: ['sint8', 'f32', 1, true, Int8Array],
|
|
65
|
+
uint16: ['uint16', 'u32', 2, false, Uint16Array],
|
|
66
|
+
sint16: ['sint16', 'i32', 2, false, Int16Array],
|
|
67
|
+
unorm16: ['uint16', 'u32', 2, true, Uint16Array],
|
|
68
|
+
snorm16: ['sint16', 'i32', 2, true, Int16Array],
|
|
69
|
+
float16: ['float16', 'f16', 2, false, Uint16Array],
|
|
70
|
+
float32: ['float32', 'f32', 4, false, Float32Array],
|
|
71
|
+
uint32: ['uint32', 'u32', 4, false, Uint32Array],
|
|
72
|
+
sint32: ['sint32', 'i32', 4, false, Int32Array]
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=decode-data-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-data-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-data-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PrimitiveDataType } from "
|
|
2
|
-
import type { VariableShaderType, AttributeShaderType, AttributeShaderTypeInfo, VariableShaderTypeAlias, AttributeShaderTypeAlias } from "
|
|
1
|
+
import { PrimitiveDataType } from "./data-types.js";
|
|
2
|
+
import type { VariableShaderType, AttributeShaderType, AttributeShaderTypeInfo, VariableShaderTypeAlias, AttributeShaderTypeAlias } from "./shader-types.js";
|
|
3
3
|
/** Split a uniform type string into type and components */
|
|
4
4
|
export declare function getVariableShaderTypeInfo(format: VariableShaderType): {
|
|
5
5
|
type: PrimitiveDataType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-shader-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-shader-types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,iBAAiB,EAAC,wBAAqB;AAC/C,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACzB,0BAAuB;AAExB,2DAA2D;AAC3D,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,kBAAkB,GAAG;IACrE,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAGA;AAED,2FAA2F;AAC3F,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,mBAAmB,GACjC,uBAAuB,CAazB;AAED,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GACxB,mBAAmB,CAErB;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,wBAAwB,GAAG,mBAAmB,GACpD,mBAAmB,CAErB;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,GAClD,kBAAkB,CAEpB;AA6FD,yEAAyE;AACzE,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,wBAAwB,EAAE,mBAAmB,CAe7F,CAAC;AAEJ,+EAA+E;AAC/E,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,uBAAuB,EAAE,kBAAkB,CAyC5F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decode-shader-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-shader-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-types.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/data-types/shader-types.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,iBAAiB,EAAC,wBAAqB;AAEpD;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,QAAQ,iBAAiB,GAAG,GAC5B,QAAQ,iBAAiB,GAAG,GAC5B,QAAQ,iBAAiB,GAAG,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAC1B,iBAAiB,GACjB,QAAQ,iBAAiB,GAAG,GAC5B,QAAQ,iBAAiB,GAAG,GAC5B,QAAQ,iBAAiB,GAAG,GAC5B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,GAC9B,UAAU,iBAAiB,GAAG,CAAC;AAGnC,KAAK,qBAAqB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnD,gDAAgD;AAChD,MAAM,MAAM,wBAAwB,GAChC,OAAO,qBAAqB,EAAE,GAC9B,OAAO,qBAAqB,EAAE,GAC9B,OAAO,qBAAqB,EAAE,CAAC;AAEnC,gDAAgD;AAChD,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,GAChC,SAAS,qBAAqB,EAAE,CAAC;AAErC,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE1F,kCAAkC;AAClC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC9C,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,uBAAuB,GAAG;IACpC,oDAAoD;IACpD,aAAa,EAAE,iBAAiB,CAAC;IACjC,wEAAwE;IACxE,UAAU,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shader-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/shader-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export type ImageData = {
|
|
2
|
+
/** Offset into the data (in addition to any offset built-in to the ArrayBufferView) */
|
|
3
|
+
byteOffset?: number;
|
|
4
|
+
/** The stride, in bytes, between the beginning of each texel block row and the subsequent texel block row. Required if there are multiple texel block rows (i.e. the copy height or depth is more than one block). */
|
|
5
|
+
bytesPerRow?: number;
|
|
6
|
+
/** Number or rows per image (needed if multiple images are being set) */
|
|
7
|
+
rowsPerImage?: number;
|
|
8
|
+
/** Bits per channel */
|
|
9
|
+
bitsPerChannel: [number, number, number, number];
|
|
10
|
+
};
|
|
11
|
+
export type PixelData = {
|
|
12
|
+
arrayBuffer: ArrayBuffer;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
/** Bytes per pixel */
|
|
16
|
+
bytesPerPixel: number;
|
|
17
|
+
bytesPerRow: number;
|
|
18
|
+
bitsPerChannel: [number, number, number, number];
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Extracts a single RGBA pixel value from PixelData at the given (x, y) coordinate.
|
|
22
|
+
*
|
|
23
|
+
* The pixel's data is assumed to be packed according to pixelData.bitsPerChannel.
|
|
24
|
+
* The pixel data for a given row is padded to pixelData.bytesPerRow.
|
|
25
|
+
*
|
|
26
|
+
* @param pixelData - The metadata and data for the pixel buffer.
|
|
27
|
+
* @param x - The x coordinate (0-based).
|
|
28
|
+
* @param y - The y coordinate (0-based).
|
|
29
|
+
* @returns A tuple [r, g, b, a] where each channel is the extracted numeric value.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
|
|
33
|
+
Assume you obtained an ArrayBuffer from copyTextureToBuffer and have the following metadata:
|
|
34
|
+
|
|
35
|
+
const pixelData: PixelData = {
|
|
36
|
+
bitsPerChannel: [5, 6, 5, 0], // For example, a 16-bit RGB565 format (no alpha)
|
|
37
|
+
width: 800,
|
|
38
|
+
height: 600,
|
|
39
|
+
bytesPerPixel: 2, // 16 bits per pixel
|
|
40
|
+
bytesPerRow: 1600, // Assuming no extra padding
|
|
41
|
+
arrayBuffer: myTextureBuffer, // Obtained from copyTextureToBuffer
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
You can then extract the pixel at (x, y) like so:
|
|
45
|
+
|
|
46
|
+
const rgba = extractPixel(pixelData, x, y);
|
|
47
|
+
console.log("Extracted RGBA:", rgba);
|
|
48
|
+
|
|
49
|
+
For RGBA formats where all channels are present (e.g. [8, 8, 8, 8]), the function will extract a 4-channel pixel value.
|
|
50
|
+
*/
|
|
51
|
+
export declare function readPixel(pixelData: PixelData, x: number, y: number, bitsPerChannel: [number, number, number, number]): [number, number, number, number];
|
|
52
|
+
/**
|
|
53
|
+
* Encodes an RGBA pixel into a DataView at a given bit offset according to a specified bit layout.
|
|
54
|
+
*
|
|
55
|
+
* The channels are written sequentially in the order R, G, B, A. For each channel, the number
|
|
56
|
+
* of bits is taken from the bitsPerChannel array. Channel values are masked to fit within the specified width.
|
|
57
|
+
*
|
|
58
|
+
* @param dataView - The DataView into which the pixel will be encoded.
|
|
59
|
+
* @param bitOffset - The bit offset in the DataView where the pixel should be written.
|
|
60
|
+
* @param bitsPerChannel - A tuple specifying the number of bits for each channel: [R, G, B, A].
|
|
61
|
+
* @param pixel - A tuple [r, g, b, a] containing the channel values (as numbers).
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
|
|
65
|
+
Assume you want to encode a pixel into a packed format where:
|
|
66
|
+
- Red uses 5 bits
|
|
67
|
+
- Green uses 6 bits
|
|
68
|
+
- Blue uses 5 bits
|
|
69
|
+
- Alpha is not used (0 bits)
|
|
70
|
+
And the pixel format is packed into 16 bits total.
|
|
71
|
+
|
|
72
|
+
You might have:
|
|
73
|
+
const bitsPerChannel: [number, number, number, number] = [5, 6, 5, 0];
|
|
74
|
+
const pixel: [number, number, number, number] = [15, 31, 15, 0]; // Example values
|
|
75
|
+
const buffer = new ArrayBuffer(2); // 16 bits = 2 bytes
|
|
76
|
+
const dataView = new DataView(buffer);
|
|
77
|
+
|
|
78
|
+
Now encode the pixel at bit offset 0:
|
|
79
|
+
encodePixel(dataView, 0, bitsPerChannel, pixel);
|
|
80
|
+
|
|
81
|
+
The dataView now contains the 16-bit packed pixel value in big-endian order.
|
|
82
|
+
*/
|
|
83
|
+
export declare function writePixel(dataView: DataView, bitOffset: number, bitsPerChannel: [number, number, number, number], pixel: [number, number, number, number]): void;
|
|
84
|
+
/**
|
|
85
|
+
* Reads a specified number of bits from a DataView starting at a given bit offset.
|
|
86
|
+
*
|
|
87
|
+
* For channels with a bit width of 8, 16, or 32 bits and when the bitOffset is byte-aligned,
|
|
88
|
+
* this function uses DataView methods for fast extraction.
|
|
89
|
+
*
|
|
90
|
+
* Bits are assumed to be stored in big-endian order (i.e. the most-significant bit is at position 7 in each byte).
|
|
91
|
+
*
|
|
92
|
+
* @param dataView - The DataView containing the data.
|
|
93
|
+
* @param bitOffset - The offset (in bits) within the data from which to start reading.
|
|
94
|
+
* @param bitCount - The number of bits to read (supported range: 1 to 32).
|
|
95
|
+
* @returns The extracted value as a number.
|
|
96
|
+
*/
|
|
97
|
+
export declare function readBitsFromDataView(dataView: DataView, bitOffset: number, bitCount: number): number;
|
|
98
|
+
/**
|
|
99
|
+
* Writes a specified number of bits from a value into a DataView at a given bit offset.
|
|
100
|
+
*
|
|
101
|
+
* For channels with a bit width of 8, 16, or 32 bits and when the bit offset is byte-aligned,
|
|
102
|
+
* this function uses DataView methods for fast writing.
|
|
103
|
+
*
|
|
104
|
+
* Bits are assumed to be stored in big-endian order (i.e. the most-significant bit is at position 7 in each byte).
|
|
105
|
+
*
|
|
106
|
+
* @param dataView - The DataView to write into.
|
|
107
|
+
* @param bitOffset - The bit offset at which to begin writing.
|
|
108
|
+
* @param bitCount - The number of bits to write (supported range: 1 to 32).
|
|
109
|
+
* @param value - The numeric value whose lower bitCount bits will be written.
|
|
110
|
+
*/
|
|
111
|
+
export declare function writeBitsToDataView(dataView: DataView, bitOffset: number, bitCount: number, value: number): void;
|
|
112
|
+
//# sourceMappingURL=pixel-utils.d.ts.map
|