@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
package/dist/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export type { TransformFeedbackProps, BufferRange } from "./adapter/resources/tr
|
|
|
35
35
|
export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
|
|
36
36
|
export type { QuerySetProps } from "./adapter/resources/query-set.js";
|
|
37
37
|
export { QuerySet } from "./adapter/resources/query-set.js";
|
|
38
|
+
export { Fence, type FenceProps } from "./adapter/resources/fence.js";
|
|
38
39
|
export type { PipelineLayoutProps } from "./adapter/resources/pipeline-layout.js";
|
|
39
40
|
export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
|
|
40
41
|
export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
|
|
@@ -42,7 +43,7 @@ export { UniformBlock } from "./portable/uniform-block.js";
|
|
|
42
43
|
export { UniformStore } from "./portable/uniform-store.js";
|
|
43
44
|
export type { CompilerMessage } from "./adapter/types/compiler-message.js";
|
|
44
45
|
export type { ExternalImage } from "./image-utils/image-types.js";
|
|
45
|
-
export { type CopyExternalImageOptions, type CopyImageDataOptions } from "./adapter/resources/texture.js";
|
|
46
|
+
export { type CopyExternalImageOptions, type CopyImageDataOptions, type TextureReadOptions, type TextureWriteOptions } from "./adapter/resources/texture.js";
|
|
46
47
|
export type { Parameters, PrimitiveTopology, IndexFormat } from "./adapter/types/parameters.js";
|
|
47
48
|
export type { CullMode, FrontFace, RasterizationParameters, CompareFunction, StencilOperation, DepthStencilParameters, BlendFactor, BlendOperation, ColorParameters, MultisampleParameters, RenderPassParameters, RenderPipelineParameters, PolygonMode, ProvokingVertex } from "./adapter/types/parameters.js";
|
|
48
49
|
export type { ColorAttachment, DepthStencilAttachment } from "./adapter/types/attachments.js";
|
|
@@ -57,12 +58,15 @@ export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDa
|
|
|
57
58
|
export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
|
|
58
59
|
export { type VertexFormat } from "./shadertypes/vertex-arrays/vertex-formats.js";
|
|
59
60
|
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 { type TextureFormat, type TextureFormatColor, type TextureFormatDepthStencil, type TextureCompression, type TextureFormatInfo, type TextureFormatCapabilities, type TextureMemoryLayout } from "./shadertypes/textures/texture-formats.js";
|
|
61
62
|
export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
|
|
63
|
+
export { getTextureImageView, setTextureImageData } from "./shadertypes/textures/texture-layout.js";
|
|
62
64
|
export { type PixelData, readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
|
|
65
|
+
export { isExternalImage, getExternalImageSize } from "./image-utils/image-types.js";
|
|
63
66
|
export type { StatsManager } from "./utils/stats-manager.js";
|
|
64
67
|
export type { CopyBufferToBufferOptions, CopyBufferToTextureOptions, CopyTextureToBufferOptions, CopyTextureToTextureOptions } from "./adapter/resources/command-encoder.js";
|
|
65
68
|
export { log } from "./utils/log.js";
|
|
69
|
+
export { assert, assertDefined } from "./utils/assert.js";
|
|
66
70
|
export { getScratchArray } from "./utils/array-utils-flat.js";
|
|
67
71
|
export type { AttributeInfo } from "./adapter-utils/get-attribute-from-layouts.js";
|
|
68
72
|
export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
|
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,OAAO,EAAC,QAAQ,EAAE,KAAK,aAAa,EAAC,wCAAqC;AAE1E,OAAO,EAAC,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAC,sCAAmC;AAE5F,OAAO,EAAC,OAAO,EAAE,KAAK,YAAY,EAAC,uCAAoC;AAEvE,OAAO,EAAC,WAAW,EAAE,KAAK,gBAAgB,EAAC,4CAAyC;AAEpF,YAAY,EAAC,oBAAoB,EAAC,gDAA6C;AAC/E,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAErE,YAAY,EAAC,WAAW,EAAC,sCAAmC;AAC5D,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAElD,YAAY,EAAC,YAAY,EAAE,iBAAiB,EAAC,uCAAoC;AACjF,OAAO,EAAC,OAAO,EAAC,uCAAoC;AAEpD,YAAY,EAAC,gBAAgB,EAAC,2CAAwC;AACtE,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAE5D,YAAY,EAAC,mBAAmB,EAAC,+CAA4C;AAC7E,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,YAAY,EAAC,eAAe,EAAC,2CAAwC;AACrE,OAAO,EAAC,UAAU,EAAC,2CAAwC;AAE3D,YAAY,EAAC,oBAAoB,EAAC,gDAA6C;AAC/E,OAAO,EAAC,eAAe,EAAC,gDAA6C;AAErE,YAAY,EAAC,gBAAgB,EAAC,4CAAyC;AACvE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAE7D,YAAY,EAAC,mBAAmB,EAAC,+CAA4C;AAC7E,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAEnE,YAAY,EAAC,kBAAkB,EAAC,8CAA2C;AAC3E,OAAO,EAAC,aAAa,EAAC,8CAA2C;AAEjE,YAAY,EAAC,gBAAgB,EAAC,4CAAyC;AACvE,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAE7D,YAAY,EAAC,sBAAsB,EAAE,WAAW,EAAC,kDAA+C;AAChG,OAAO,EAAC,iBAAiB,EAAC,kDAA+C;AAEzE,YAAY,EAAC,aAAa,EAAC,yCAAsC;AACjE,OAAO,EAAC,QAAQ,EAAC,yCAAsC;AAEvD,YAAY,EAAC,mBAAmB,EAAC,+CAA4C;AAC7E,OAAO,EAAC,cAAc,EAAC,+CAA4C;AAGnE,OAAO,EAAC,mBAAmB,EAAC,4CAAyC;AACrE,OAAO,EAAC,YAAY,EAAC,oCAAiC;AACtD,OAAO,EAAC,YAAY,EAAC,oCAAiC;AAItD,YAAY,EAAC,eAAe,EAAC,4CAAyC;AAEtE,YAAY,EAAC,aAAa,EAAC,qCAAkC;AAE7D,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ export { CommandBuffer } from "./adapter/resources/command-buffer.js";
|
|
|
24
24
|
export { VertexArray } from "./adapter/resources/vertex-array.js";
|
|
25
25
|
export { TransformFeedback } from "./adapter/resources/transform-feedback.js";
|
|
26
26
|
export { QuerySet } from "./adapter/resources/query-set.js";
|
|
27
|
+
export { Fence } from "./adapter/resources/fence.js";
|
|
27
28
|
export { PipelineLayout } from "./adapter/resources/pipeline-layout.js";
|
|
28
29
|
// PORTABLE API - UNIFORM BUFFERS
|
|
29
30
|
export { UniformBufferLayout } from "./portable/uniform-buffer-layout.js";
|
|
@@ -33,9 +34,13 @@ export { getDataTypeInfo, getDataType, getTypedArrayConstructor, getNormalizedDa
|
|
|
33
34
|
export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/data-types/decode-shader-types.js";
|
|
34
35
|
export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/vertex-arrays/decode-vertex-format.js";
|
|
35
36
|
export { TextureFormatDecoder, textureFormatDecoder } from "./shadertypes/textures/texture-format-decoder.js";
|
|
37
|
+
export { getTextureImageView, setTextureImageData } from "./shadertypes/textures/texture-layout.js";
|
|
38
|
+
// export {TexturePacker} from './shadertypes/textures/texture-packer'
|
|
36
39
|
export { readPixel, writePixel } from "./shadertypes/textures/pixel-utils.js";
|
|
40
|
+
export { isExternalImage, getExternalImageSize } from "./image-utils/image-types.js";
|
|
37
41
|
// INTERNAL UTILS - for use in other luma.gl modules only
|
|
38
42
|
export { log } from "./utils/log.js";
|
|
43
|
+
export { assert, assertDefined } from "./utils/assert.js";
|
|
39
44
|
export { getScratchArray } from "./utils/array-utils-flat.js";
|
|
40
45
|
export { getAttributeInfosFromLayouts } from "./adapter-utils/get-attribute-from-layouts.js";
|
|
41
46
|
// TEST EXPORTS
|
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;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;
|
|
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;AAEvD,OAAO,EAAC,KAAK,EAAkB,qCAAkC;AAGjE,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;AAmFtD,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;AAc1D,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACrB,yDAAsD;AAEvD,OAAO,EAAC,mBAAmB,EAAE,mBAAmB,EAAC,iDAA8C;AAC/F,sEAAsE;AACtE,OAAO,EAAiB,SAAS,EAAE,UAAU,EAAC,8CAA2C;AAEzF,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,qCAAkC;AAehF,yDAAyD;AACzD,OAAO,EAAC,GAAG,EAAC,uBAAoB;AAChC,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,0BAAuB;AACrD,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,6 +1,11 @@
|
|
|
1
1
|
import type { PrimitiveDataType } from "../shadertypes/data-types/data-types.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CompositeShaderType } from "../shadertypes/data-types/shader-types.js";
|
|
3
3
|
import type { UniformValue } from "../adapter/types/uniforms.js";
|
|
4
|
+
export type UniformValues = Record<string, UniformValue | UniformValueStruct | UniformValueArray>;
|
|
5
|
+
type UniformValueStruct = Record<string, UniformValue | UniformValueStruct2 | UniformValueArray>;
|
|
6
|
+
type UniformValueStruct2 = Record<string, UniformValue | UniformValueStruct3 | UniformValueArray>;
|
|
7
|
+
type UniformValueStruct3 = Record<string, UniformValue | UniformValueArray>;
|
|
8
|
+
type UniformValueArray = (UniformValue | UniformValueStruct)[];
|
|
4
9
|
/**
|
|
5
10
|
* Std140 layout for uniform buffers
|
|
6
11
|
* Supports manual listing of uniforms
|
|
@@ -14,9 +19,7 @@ export declare class UniformBufferLayout {
|
|
|
14
19
|
/** number of bytes needed for buffer allocation */
|
|
15
20
|
readonly byteLength: number;
|
|
16
21
|
/** Create a new UniformBufferLayout given a map of attributes. */
|
|
17
|
-
constructor(uniformTypes: Record<string,
|
|
18
|
-
/** Get the data for the complete buffer */
|
|
19
|
-
getData(uniformValues: Record<string, UniformValue>): Uint8Array;
|
|
22
|
+
constructor(uniformTypes: Readonly<Record<string, CompositeShaderType>>, uniformSizes?: Readonly<Record<string, number>>);
|
|
20
23
|
/** Does this layout have a field with specified name */
|
|
21
24
|
has(name: string): boolean;
|
|
22
25
|
/** Get offset and size for a field with specified name */
|
|
@@ -24,5 +27,11 @@ export declare class UniformBufferLayout {
|
|
|
24
27
|
offset: number;
|
|
25
28
|
size: number;
|
|
26
29
|
} | undefined;
|
|
30
|
+
/** Get the data for the complete buffer */
|
|
31
|
+
getData(uniformValues: Readonly<UniformValues>): Uint8Array;
|
|
32
|
+
private _addToLayout;
|
|
33
|
+
private _writeCompositeValue;
|
|
34
|
+
private _writeToBuffer;
|
|
27
35
|
}
|
|
36
|
+
export {};
|
|
28
37
|
//# sourceMappingURL=uniform-buffer-layout.d.ts.map
|
|
@@ -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,gDAA6C;AAC5E,OAAO,KAAK,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,mBAAmB,EAAC,kDAA+C;AAIhF,OAAO,KAAK,EAAC,YAAY,EAAC,qCAAkC;AAI5D,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,GAAG,iBAAiB,CAAC,CAAC;AAClG,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC,CAAC;AACjG,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,mBAAmB,GAAG,iBAAiB,CAAC,CAAC;AAClG,KAAK,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAAC,CAAC;AAC5E,KAAK,iBAAiB,GAAG,CAAC,YAAY,GAAG,kBAAkB,CAAC,EAAE,CAAC;AAQ/D;;;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,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,EAC3D,YAAY,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAYrD,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;IAK7D,2CAA2C;IAC3C,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU;IAiB3D,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,oBAAoB;IAiC5B,OAAO,CAAC,cAAc;CAoBvB"}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { alignTo } from "../shadertypes/data-types/decode-data-types.js";
|
|
5
5
|
import { getVariableShaderTypeInfo } from "../shadertypes/data-types/decode-shader-types.js";
|
|
6
6
|
import { getScratchArrayBuffer } from "../utils/array-utils-flat.js";
|
|
7
|
-
import { isNumberArray } from "../utils/is-array.js";
|
|
8
7
|
import { log } from "../utils/log.js";
|
|
9
8
|
/**
|
|
10
9
|
* Smallest buffer size that can be used for uniform buffers.
|
|
@@ -21,76 +20,110 @@ export class UniformBufferLayout {
|
|
|
21
20
|
byteLength;
|
|
22
21
|
/** Create a new UniformBufferLayout given a map of attributes. */
|
|
23
22
|
constructor(uniformTypes, uniformSizes = {}) {
|
|
24
|
-
/** number of 4 byte slots taken */
|
|
25
23
|
let size = 0;
|
|
26
|
-
// Add layout (type, size and offset) definitions for each uniform in the layout
|
|
27
24
|
for (const [key, uniformType] of Object.entries(uniformTypes)) {
|
|
28
|
-
|
|
29
|
-
const { type, components } = typeAndComponents;
|
|
30
|
-
// Calculate total count for uniform arrays.
|
|
31
|
-
const count = components * (uniformSizes?.[key] ?? 1);
|
|
32
|
-
// First, align (bump) current offset to an even multiple of current object (1, 2, 4)
|
|
33
|
-
size = alignTo(size, count);
|
|
34
|
-
// Use the aligned size as the offset of the current uniform.
|
|
35
|
-
const offset = size;
|
|
36
|
-
// Then, add our object's padded size ((1, 2, multiple of 4) to the current offset
|
|
37
|
-
size += count;
|
|
38
|
-
this.layout[key] = { type, size: count, offset };
|
|
25
|
+
size = this._addToLayout(key, uniformType, size, uniformSizes?.[key]);
|
|
39
26
|
}
|
|
40
27
|
size += (4 - (size % 4)) % 4;
|
|
41
|
-
|
|
42
|
-
|
|
28
|
+
this.byteLength = Math.max(size * 4, minBufferSize);
|
|
29
|
+
}
|
|
30
|
+
/** Does this layout have a field with specified name */
|
|
31
|
+
has(name) {
|
|
32
|
+
return Boolean(this.layout[name]);
|
|
33
|
+
}
|
|
34
|
+
/** Get offset and size for a field with specified name */
|
|
35
|
+
get(name) {
|
|
36
|
+
const layout = this.layout[name];
|
|
37
|
+
return layout;
|
|
43
38
|
}
|
|
44
39
|
/** Get the data for the complete buffer */
|
|
45
40
|
getData(uniformValues) {
|
|
46
|
-
|
|
47
|
-
const arrayBuffer = getScratchArrayBuffer(this.byteLength);
|
|
41
|
+
const buffer = getScratchArrayBuffer(this.byteLength);
|
|
48
42
|
const typedArrays = {
|
|
49
|
-
i32: new Int32Array(
|
|
50
|
-
u32: new Uint32Array(
|
|
51
|
-
f32: new Float32Array(
|
|
52
|
-
|
|
53
|
-
f16: new Uint16Array(arrayBuffer)
|
|
43
|
+
i32: new Int32Array(buffer),
|
|
44
|
+
u32: new Uint32Array(buffer),
|
|
45
|
+
f32: new Float32Array(buffer),
|
|
46
|
+
f16: new Uint16Array(buffer)
|
|
54
47
|
};
|
|
55
48
|
for (const [name, value] of Object.entries(uniformValues)) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
49
|
+
this._writeCompositeValue(typedArrays, name, value);
|
|
50
|
+
}
|
|
51
|
+
return new Uint8Array(buffer, 0, this.byteLength);
|
|
52
|
+
}
|
|
53
|
+
// Recursively add a uniform to the layout
|
|
54
|
+
_addToLayout(name, type, offset, count = 1) {
|
|
55
|
+
if (typeof type === 'string') {
|
|
56
|
+
// Primitive case
|
|
57
|
+
const info = getVariableShaderTypeInfo(type);
|
|
58
|
+
const sizeInSlots = info.components * count;
|
|
59
|
+
const alignedOffset = alignTo(offset, info.components);
|
|
60
|
+
this.layout[name] = {
|
|
61
|
+
offset: alignedOffset,
|
|
62
|
+
size: sizeInSlots,
|
|
63
|
+
type: info.type
|
|
64
|
+
};
|
|
65
|
+
return alignedOffset + sizeInSlots;
|
|
66
|
+
}
|
|
67
|
+
if (Array.isArray(type)) {
|
|
68
|
+
// Array of structs or primitives
|
|
69
|
+
const elementType = type[0];
|
|
70
|
+
// Use count if provided, otherwise default to 1
|
|
71
|
+
const length = count > 1 ? count : type.length > 1 ? type[1] : 1;
|
|
72
|
+
let arrayOffset = alignTo(offset, 4); // std140: arrays aligned to 16 bytes
|
|
73
|
+
for (let i = 0; i < length; i++) {
|
|
74
|
+
arrayOffset = this._addToLayout(`${name}[${i}]`, elementType, arrayOffset);
|
|
72
75
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
// TODO: we should limit or check size in case the supplied data overflows
|
|
81
|
-
typedArray.set(value, offset);
|
|
76
|
+
return arrayOffset;
|
|
77
|
+
}
|
|
78
|
+
if (typeof type === 'object') {
|
|
79
|
+
// Struct case
|
|
80
|
+
let structOffset = alignTo(offset, 4); // std140: structs aligned to 16 bytes
|
|
81
|
+
for (const [memberName, memberType] of Object.entries(type)) {
|
|
82
|
+
structOffset = this._addToLayout(`${name}.${memberName}`, memberType, structOffset);
|
|
82
83
|
}
|
|
84
|
+
return structOffset;
|
|
83
85
|
}
|
|
84
|
-
|
|
86
|
+
throw new Error(`Unsupported CompositeShaderType for ${name}`);
|
|
85
87
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
_writeCompositeValue(typedArrays, baseName, value) {
|
|
89
|
+
if (this.layout[baseName]) {
|
|
90
|
+
// Primitive or flat vector/matrix
|
|
91
|
+
this._writeToBuffer(typedArrays, baseName, value);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (Array.isArray(value)) {
|
|
95
|
+
// Array of values: write each index
|
|
96
|
+
for (let i = 0; i < value.length; i++) {
|
|
97
|
+
const element = value[i];
|
|
98
|
+
const indexedName = `${baseName}[${i}]`;
|
|
99
|
+
this._writeCompositeValue(typedArrays, indexedName, element);
|
|
100
|
+
}
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
if (typeof value === 'object' && value !== null) {
|
|
104
|
+
// Struct: write each member
|
|
105
|
+
for (const [key, subValue] of Object.entries(value)) {
|
|
106
|
+
const nestedName = `${baseName}.${key}`;
|
|
107
|
+
this._writeCompositeValue(typedArrays, nestedName, subValue);
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
log.warn(`Unsupported uniform value for ${baseName}:`, value)();
|
|
89
112
|
}
|
|
90
|
-
|
|
91
|
-
get(name) {
|
|
113
|
+
_writeToBuffer(typedArrays, name, value) {
|
|
92
114
|
const layout = this.layout[name];
|
|
93
|
-
|
|
115
|
+
if (!layout) {
|
|
116
|
+
log.warn(`Uniform ${name} not found in layout`)();
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const { type, size, offset } = layout;
|
|
120
|
+
const array = typedArrays[type];
|
|
121
|
+
if (size === 1) {
|
|
122
|
+
array[offset] = Number(value);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
array.set(value, offset);
|
|
126
|
+
}
|
|
94
127
|
}
|
|
95
128
|
}
|
|
96
129
|
//# sourceMappingURL=uniform-buffer-layout.js.map
|
|
@@ -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,uDAAoD;AACpE,OAAO,EAAC,yBAAyB,EAAC,yDAAsD;AAGxF,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,
|
|
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,uDAAoD;AACpE,OAAO,EAAC,yBAAyB,EAAC,yDAAsD;AAGxF,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,GAAG,EAAC,wBAAqB;AAQjC;;;GAGG;AACH,MAAM,aAAa,GAAW,IAAI,CAAC;AAEnC;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACrB,MAAM,GAA4E,EAAE,CAAC;IAE9F,mDAAmD;IAC1C,UAAU,CAAS;IAE5B,kEAAkE;IAClE,YACE,YAA2D,EAC3D,eAAiD,EAAE;QAEnD,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9D,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,wDAAwD;IACxD,GAAG,CAAC,IAAY;QACd,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,0DAA0D;IAC1D,GAAG,CAAC,IAAY;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2CAA2C;IAC3C,OAAO,CAAC,aAAsC;QAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,MAAM,WAAW,GAAG;YAClB,GAAG,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;YAC3B,GAAG,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC;YAC7B,GAAG,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;SAC7B,CAAC;QAEF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,0CAA0C;IAClC,YAAY,CAClB,IAAY,EACZ,IAAyB,EACzB,MAAc,EACd,QAAgB,CAAC;QAEjB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,iBAAiB;YACjB,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBAClB,MAAM,EAAE,aAAa;gBACrB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC;YACF,OAAO,aAAa,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,iCAAiC;YACjC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,gDAAgD;YAChD,MAAM,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,qCAAqC;YAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC7E,CAAC;YACD,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,cAAc;YACd,IAAI,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,sCAAsC;YAC7E,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,UAAU,EAAE,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IAEO,oBAAoB,CAC1B,WAAgC,EAChC,QAAgB,EAChB,KAAU;QAEV,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,kCAAkC;YAClC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,oCAAoC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,4BAA4B;YAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,MAAM,UAAU,GAAG,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC;gBACxC,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/D,CAAC;YACD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,iCAAiC,QAAQ,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;IAClE,CAAC;IAEO,cAAc,CACpB,WAAgC,EAChC,IAAY,EACZ,KAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,sBAAsB,CAAC,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,GAAG,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAiB,EAAE,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +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,
|
|
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,CActE;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"}
|
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
* @returns underlying primitive / signed types, byte length, normalization, integer, signed flags
|
|
7
7
|
*/
|
|
8
8
|
export function getDataTypeInfo(type) {
|
|
9
|
-
const [signedType, primitiveType, byteLength] = NORMALIZED_TYPE_MAP[type];
|
|
10
9
|
const normalized = type.includes('norm');
|
|
11
10
|
const integer = !normalized && !type.startsWith('float');
|
|
12
11
|
const signed = type.startsWith('s');
|
|
12
|
+
const typeInfo = NORMALIZED_TYPE_MAP[type];
|
|
13
|
+
const [signedType, primitiveType, byteLength] = typeInfo || ['uint8 ', 'i32', 1];
|
|
13
14
|
return {
|
|
14
15
|
signedType,
|
|
15
16
|
primitiveType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-data-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-data-types.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,IAAwB;IACtD,MAAM,
|
|
1
|
+
{"version":3,"file":"decode-data-types.js","sourceRoot":"","sources":["../../../src/shadertypes/data-types/decode-data-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,14 +20,12 @@ export type VariableShaderTypeAlias = AttributeShaderTypeAlias | `mat2x2${Shader
|
|
|
20
20
|
/** A composite shader type can include structs and arrays, recursively */
|
|
21
21
|
export type CompositeShaderType = VariableShaderType | StructShaderType | ArrayShaderType;
|
|
22
22
|
/** Represents a struct in WGSL */
|
|
23
|
-
export type StructShaderType =
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
export type StructShaderType = Record<string, VariableShaderType | StructShaderType2 | ArrayShaderType>;
|
|
24
|
+
export type StructShaderType2 = Record<string, VariableShaderType | StructShaderType3 | ArrayShaderType>;
|
|
25
|
+
export type StructShaderType3 = Record<string, VariableShaderType | StructShaderType4 | ArrayShaderType>;
|
|
26
|
+
export type StructShaderType4 = Record<string, VariableShaderType>;
|
|
26
27
|
/** Represents an array in WGSL */
|
|
27
|
-
export type ArrayShaderType =
|
|
28
|
-
type: CompositeShaderType;
|
|
29
|
-
length: number;
|
|
30
|
-
};
|
|
28
|
+
export type ArrayShaderType = [type: CompositeShaderType, length: number];
|
|
31
29
|
/** Information extracted from a AttributeShaderType constant */
|
|
32
30
|
export type AttributeShaderTypeInfo = {
|
|
33
31
|
/** WGSL-style primitive data type, f32, i32, u32 */
|
|
@@ -1 +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
|
|
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,MAAM,CACnC,MAAM,EACN,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CACzD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,MAAM,EACN,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CACzD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,MAAM,EACN,kBAAkB,GAAG,iBAAiB,GAAG,eAAe,CACzD,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;AAEnE,kCAAkC;AAClC,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1E,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"}
|
|
@@ -45,7 +45,7 @@ export function readPixel(pixelData, x, y, bitsPerChannel) {
|
|
|
45
45
|
const channels = [];
|
|
46
46
|
// Extract each of the four channels.
|
|
47
47
|
for (let i = 0; i < 4; i++) {
|
|
48
|
-
const bits = bitsPerChannel[i];
|
|
48
|
+
const bits = bitsPerChannel[i] ?? 0;
|
|
49
49
|
// If a channel's bit width is zero or negative, consider it not present.
|
|
50
50
|
if (bits <= 0) {
|
|
51
51
|
channels.push(0);
|
|
@@ -56,7 +56,7 @@ export function readPixel(pixelData, x, y, bitsPerChannel) {
|
|
|
56
56
|
bitOffsetWithinPixel += bits;
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
return [channels[0], channels[1], channels[2], channels[3]];
|
|
59
|
+
return [channels[0] ?? 0, channels[1] ?? 0, channels[2] ?? 0, channels[3] ?? 0];
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Encodes an RGBA pixel into a DataView at a given bit offset according to a specified bit layout.
|
|
@@ -92,10 +92,10 @@ The dataView now contains the 16-bit packed pixel value in big-endian order.
|
|
|
92
92
|
export function writePixel(dataView, bitOffset, bitsPerChannel, pixel) {
|
|
93
93
|
let currentBitOffset = bitOffset;
|
|
94
94
|
for (let channel = 0; channel < 4; channel++) {
|
|
95
|
-
const bits = bitsPerChannel[channel];
|
|
95
|
+
const bits = bitsPerChannel[channel] ?? 0;
|
|
96
96
|
// Clamp the channel value to the maximum allowed by the bit width.
|
|
97
97
|
const maxValue = (1 << bits) - 1;
|
|
98
|
-
const channelValue = pixel[channel] & maxValue;
|
|
98
|
+
const channelValue = (pixel[channel] ?? 0) & maxValue;
|
|
99
99
|
writeBitsToDataView(dataView, currentBitOffset, bits, channelValue);
|
|
100
100
|
currentBitOffset += bits;
|
|
101
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixel-utils.js","sourceRoot":"","sources":["../../../src/shadertypes/textures/pixel-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAuBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BE;AAEF,MAAM,UAAU,SAAS,CACvB,SAAoB,EACpB,CAAS,EACT,CAAS,EACT,cAAgD;IAEhD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,sDAAsD;IACtD,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC,WAAW,GAAG,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC;IAE3E,mDAAmD;IACnD,sDAAsD;IACtD,MAAM,aAAa,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAE/F,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,qCAAqC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pixel-utils.js","sourceRoot":"","sources":["../../../src/shadertypes/textures/pixel-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,35 @@
|
|
|
1
|
-
import type { TextureFormat, TextureFormatCompressed, TextureFormatInfo, TextureFormatCapabilities, TextureFormatColor } from "./texture-formats.js";
|
|
1
|
+
import type { TextureFormat, TextureFormatCompressed, TextureFormatInfo, TextureFormatCapabilities, TextureFormatColor, TextureMemoryLayout, TextureFormatDepthStencil } from "./texture-formats.js";
|
|
2
|
+
/** Options to calculate a texture layout */
|
|
3
|
+
export type TextureMemoryLayoutOptions = {
|
|
4
|
+
/** Number of bytes per pixel */
|
|
5
|
+
format: TextureFormat;
|
|
6
|
+
/** Width of the texture in pixels */
|
|
7
|
+
width: number;
|
|
8
|
+
/** Height of the texture in pixels */
|
|
9
|
+
height: number;
|
|
10
|
+
/** Number of images in the texture */
|
|
11
|
+
depth: number;
|
|
12
|
+
/** Alignment of each row */
|
|
13
|
+
byteAlignment: number;
|
|
14
|
+
};
|
|
15
|
+
/** Class that helps applications work with texture formats */
|
|
2
16
|
export declare class TextureFormatDecoder {
|
|
3
|
-
/** Returns information about a texture format, e.g. attatchment type, components, byte length and flags (integer, signed, normalized) */
|
|
4
|
-
getInfo(format: TextureFormat): TextureFormatInfo;
|
|
5
17
|
/** Checks if a texture format is color */
|
|
6
18
|
isColor(format: TextureFormat): format is TextureFormatColor;
|
|
7
19
|
/** Checks if a texture format is depth or stencil */
|
|
8
|
-
isDepthStencil(format: TextureFormat):
|
|
20
|
+
isDepthStencil(format: TextureFormat): format is TextureFormatDepthStencil;
|
|
9
21
|
/** Checks if a texture format is compressed */
|
|
10
22
|
isCompressed(format: TextureFormat): format is TextureFormatCompressed;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*/
|
|
23
|
+
/** Returns information about a texture format, e.g. attachment type, components, byte length and flags (integer, signed, normalized) */
|
|
24
|
+
getInfo(format: TextureFormat): TextureFormatInfo;
|
|
25
|
+
/** "static" capabilities of a texture format. @note Needs to be adjusted against current device */
|
|
15
26
|
getCapabilities(format: TextureFormat): TextureFormatCapabilities;
|
|
27
|
+
/** Computes the memory layout for a texture, in particular including row byte alignment */
|
|
28
|
+
computeMemoryLayout(opts: TextureMemoryLayoutOptions): TextureMemoryLayout;
|
|
16
29
|
}
|
|
17
30
|
export declare const textureFormatDecoder: TextureFormatDecoder;
|
|
31
|
+
/**
|
|
32
|
+
* Decodes a texture format, returning e.g. attatchment type, components, byte length and flags (integer, signed, normalized)
|
|
33
|
+
*/
|
|
34
|
+
export declare function getTextureFormatInfo(format: TextureFormat): TextureFormatInfo;
|
|
18
35
|
//# sourceMappingURL=texture-format-decoder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"texture-format-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/textures/texture-format-decoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EACnB,6BAA0B;
|
|
1
|
+
{"version":3,"file":"texture-format-decoder.d.ts","sourceRoot":"","sources":["../../../src/shadertypes/textures/texture-format-decoder.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EAC1B,6BAA0B;AAa3B,4CAA4C;AAC5C,MAAM,MAAM,0BAA0B,GAAG;IACvC,gCAAgC;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,8DAA8D;AAC9D,qBAAa,oBAAoB;IAC/B,0CAA0C;IAC1C,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,kBAAkB;IAI5D,qDAAqD;IACrD,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,yBAAyB;IAI1E,+CAA+C;IAC/C,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,IAAI,uBAAuB;IAItE,wIAAwI;IACxI,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB;IAIjD,oGAAoG;IACpG,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,yBAAyB;IAIjE,2FAA2F;IAC3F,mBAAmB,CAAC,IAAI,EAAE,0BAA0B,GAAG,mBAAmB;CAG3E;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC;AA2D/D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAgE7E"}
|