@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.
Files changed (167) hide show
  1. package/dist/adapter/canvas-context.d.ts +19 -5
  2. package/dist/adapter/canvas-context.d.ts.map +1 -1
  3. package/dist/adapter/canvas-context.js +53 -3
  4. package/dist/adapter/canvas-context.js.map +1 -1
  5. package/dist/adapter/device.d.ts +56 -11
  6. package/dist/adapter/device.d.ts.map +1 -1
  7. package/dist/adapter/device.js +78 -22
  8. package/dist/adapter/device.js.map +1 -1
  9. package/dist/adapter/luma.js +1 -1
  10. package/dist/adapter/resources/buffer.d.ts +13 -7
  11. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  12. package/dist/adapter/resources/buffer.js +1 -5
  13. package/dist/adapter/resources/buffer.js.map +1 -1
  14. package/dist/adapter/resources/command-encoder.d.ts +0 -1
  15. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  16. package/dist/adapter/resources/command-encoder.js.map +1 -1
  17. package/dist/adapter/resources/framebuffer.d.ts +3 -3
  18. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  19. package/dist/adapter/resources/pipeline-layout.d.ts +13 -0
  20. package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -0
  21. package/dist/adapter/resources/pipeline-layout.js +21 -0
  22. package/dist/adapter/resources/pipeline-layout.js.map +1 -0
  23. package/dist/adapter/resources/render-pipeline.d.ts +4 -4
  24. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  25. package/dist/adapter/resources/resource.d.ts +1 -0
  26. package/dist/adapter/resources/resource.d.ts.map +1 -1
  27. package/dist/adapter/resources/resource.js.map +1 -1
  28. package/dist/adapter/resources/texture-view.d.ts +1 -1
  29. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  30. package/dist/adapter/resources/texture.d.ts +1 -1
  31. package/dist/adapter/resources/texture.d.ts.map +1 -1
  32. package/dist/adapter/resources/vertex-array.js +1 -1
  33. package/dist/adapter/resources/vertex-array.js.map +1 -1
  34. package/dist/adapter/types/attachments.d.ts +3 -3
  35. package/dist/adapter/types/attachments.d.ts.map +1 -1
  36. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  37. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  38. package/dist/adapter/types/parameters.d.ts +2 -2
  39. package/dist/adapter/types/parameters.d.ts.map +1 -1
  40. package/dist/adapter/types/shader-layout.d.ts +5 -6
  41. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  42. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +3 -3
  43. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  44. package/dist/adapter-utils/get-attribute-from-layouts.js +2 -2
  45. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  46. package/dist/dist.dev.js +430 -274
  47. package/dist/dist.min.js +5 -4
  48. package/dist/index.cjs +426 -273
  49. package/dist/index.cjs.map +4 -4
  50. package/dist/index.d.ts +18 -20
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +8 -7
  53. package/dist/index.js.map +1 -1
  54. package/dist/portable/uniform-block.d.ts +1 -1
  55. package/dist/portable/uniform-block.d.ts.map +1 -1
  56. package/dist/portable/uniform-buffer-layout.d.ts +3 -3
  57. package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
  58. package/dist/portable/uniform-buffer-layout.js +8 -9
  59. package/dist/portable/uniform-buffer-layout.js.map +1 -1
  60. package/dist/portable/uniform-store.d.ts +2 -1
  61. package/dist/portable/uniform-store.d.ts.map +1 -1
  62. package/dist/portable/uniform-store.js +1 -1
  63. package/dist/portable/uniform-store.js.map +1 -1
  64. package/dist/shadertypes/{data-types.d.ts → data-types/data-types.d.ts} +4 -0
  65. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
  66. package/dist/shadertypes/data-types/data-types.js.map +1 -0
  67. package/dist/shadertypes/{utils → data-types}/decode-data-types.d.ts +4 -4
  68. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
  69. package/dist/shadertypes/data-types/decode-data-types.js +74 -0
  70. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
  71. package/dist/shadertypes/{utils → data-types}/decode-shader-types.d.ts +2 -2
  72. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
  73. package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
  74. package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
  75. package/dist/shadertypes/data-types/shader-types.js.map +1 -0
  76. package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
  77. package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
  78. package/dist/shadertypes/textures/pixel-utils.js +193 -0
  79. package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
  80. package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
  81. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
  82. package/dist/shadertypes/{utils/decode-texture-format.js → textures/texture-format-decoder.js} +48 -35
  83. package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
  84. package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
  85. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
  86. package/dist/shadertypes/{texture-formats.js → textures/texture-format-generics.js} +1 -1
  87. package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
  88. package/dist/shadertypes/{utils → textures}/texture-format-table.d.ts +2 -1
  89. package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
  90. package/dist/shadertypes/{utils → textures}/texture-format-table.js +41 -42
  91. package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
  92. package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
  93. package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
  94. package/dist/shadertypes/textures/texture-formats.js +58 -0
  95. package/dist/shadertypes/textures/texture-formats.js.map +1 -0
  96. package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.d.ts +2 -2
  97. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
  98. package/dist/shadertypes/{utils → vertex-arrays}/decode-vertex-format.js +4 -4
  99. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
  100. package/dist/shadertypes/{vertex-formats.d.ts → vertex-arrays/vertex-formats.d.ts} +5 -3
  101. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
  102. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
  103. package/package.json +2 -2
  104. package/src/adapter/canvas-context.ts +66 -8
  105. package/src/adapter/device.ts +132 -47
  106. package/src/adapter/resources/buffer.ts +30 -14
  107. package/src/adapter/resources/command-encoder.ts +0 -2
  108. package/src/adapter/resources/framebuffer.ts +5 -5
  109. package/src/adapter/resources/pipeline-layout.ts +30 -0
  110. package/src/adapter/resources/render-pipeline.ts +6 -6
  111. package/src/adapter/resources/resource.ts +1 -0
  112. package/src/adapter/resources/texture-view.ts +1 -1
  113. package/src/adapter/resources/texture.ts +1 -1
  114. package/src/adapter/resources/vertex-array.ts +1 -1
  115. package/src/adapter/types/attachments.ts +5 -5
  116. package/src/adapter/types/buffer-layout.ts +1 -1
  117. package/src/adapter/types/parameters.ts +2 -2
  118. package/src/adapter/types/shader-layout.ts +8 -5
  119. package/src/adapter-utils/get-attribute-from-layouts.ts +5 -5
  120. package/src/index.ts +60 -36
  121. package/src/portable/uniform-block.ts +1 -1
  122. package/src/portable/uniform-buffer-layout.ts +13 -12
  123. package/src/portable/uniform-store.ts +6 -2
  124. package/src/shadertypes/data-types/data-types.ts +96 -0
  125. package/src/shadertypes/data-types/decode-data-types.ts +91 -0
  126. package/src/shadertypes/{utils → data-types}/decode-shader-types.ts +2 -2
  127. package/src/shadertypes/textures/pixel-utils.ts +239 -0
  128. package/src/shadertypes/{utils/decode-texture-format.ts → textures/texture-format-decoder.ts} +63 -47
  129. package/src/shadertypes/textures/texture-format-generics.ts +190 -0
  130. package/src/shadertypes/{utils → textures}/texture-format-table.ts +62 -52
  131. package/src/shadertypes/{texture-formats.ts → textures/texture-formats.ts} +229 -147
  132. package/src/shadertypes/{utils → vertex-arrays}/decode-vertex-format.ts +6 -10
  133. package/src/shadertypes/{vertex-formats.ts → vertex-arrays/vertex-formats.ts} +20 -6
  134. package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -11
  135. package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
  136. package/dist/adapter-utils/buffer-layout-helper.js +0 -33
  137. package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
  138. package/dist/shadertypes/data-types.d.ts.map +0 -1
  139. package/dist/shadertypes/data-types.js.map +0 -1
  140. package/dist/shadertypes/shader-types.d.ts.map +0 -1
  141. package/dist/shadertypes/shader-types.js.map +0 -1
  142. package/dist/shadertypes/texture-formats.d.ts +0 -74
  143. package/dist/shadertypes/texture-formats.d.ts.map +0 -1
  144. package/dist/shadertypes/texture-formats.js.map +0 -1
  145. package/dist/shadertypes/utils/decode-data-types.d.ts.map +0 -1
  146. package/dist/shadertypes/utils/decode-data-types.js +0 -114
  147. package/dist/shadertypes/utils/decode-data-types.js.map +0 -1
  148. package/dist/shadertypes/utils/decode-shader-types.d.ts.map +0 -1
  149. package/dist/shadertypes/utils/decode-shader-types.js.map +0 -1
  150. package/dist/shadertypes/utils/decode-texture-format.d.ts +0 -15
  151. package/dist/shadertypes/utils/decode-texture-format.d.ts.map +0 -1
  152. package/dist/shadertypes/utils/decode-texture-format.js.map +0 -1
  153. package/dist/shadertypes/utils/decode-vertex-format.d.ts.map +0 -1
  154. package/dist/shadertypes/utils/decode-vertex-format.js.map +0 -1
  155. package/dist/shadertypes/utils/texture-format-table.d.ts.map +0 -1
  156. package/dist/shadertypes/utils/texture-format-table.js.map +0 -1
  157. package/dist/shadertypes/vertex-formats.d.ts.map +0 -1
  158. package/dist/shadertypes/vertex-formats.js.map +0 -1
  159. package/src/adapter-utils/buffer-layout-helper.ts +0 -41
  160. package/src/shadertypes/data-types.ts +0 -42
  161. package/src/shadertypes/utils/decode-data-types.ts +0 -131
  162. /package/dist/shadertypes/{data-types.js → data-types/data-types.js} +0 -0
  163. /package/dist/shadertypes/{utils → data-types}/decode-shader-types.js +0 -0
  164. /package/dist/shadertypes/{shader-types.d.ts → data-types/shader-types.d.ts} +0 -0
  165. /package/dist/shadertypes/{shader-types.js → data-types/shader-types.js} +0 -0
  166. /package/dist/shadertypes/{vertex-formats.js → vertex-arrays/vertex-formats.js} +0 -0
  167. /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 { ResourceProps } from "./adapter/resources/resource.js";
9
- export { Resource } from "./adapter/resources/resource.js";
10
- export type { BufferProps } from "./adapter/resources/buffer.js";
11
- export { Buffer } from "./adapter/resources/buffer.js";
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 { CopyExternalImageOptions, CopyImageDataOptions } from "./adapter/resources/texture.js";
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 { PrimitiveDataType, SignedDataType, NormalizedDataType } from "./shadertypes/data-types.js";
57
- export type { AttributeShaderType, VariableShaderType } from "./shadertypes/shader-types.js";
58
- export type { VertexFormat } from "./shadertypes/vertex-formats.js";
59
- export type { TextureFormat, ColorTextureFormat, DepthStencilTextureFormat, TextureCompression, TextureFormatInfo, TextureFormatCapabilities } from "./shadertypes/texture-formats.js";
60
- export { getDataTypeInfo, getDataTypeFromTypedArray, getTypedArrayFromDataType, makeNormalizedDataType } from "./shadertypes/utils/decode-data-types.js";
61
- export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/utils/decode-shader-types.js";
62
- export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/utils/decode-vertex-format.js";
63
- export { getTextureFormatInfo, getTextureFormatCapabilities } from "./shadertypes/utils/decode-texture-format.js";
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/utils/texture-format-table.js";
69
+ export { getTextureFormatDefinition as _getTextureFormatDefinition, getTextureFormatTable as _getTextureFormatTable } from "./shadertypes/textures/texture-format-table.js";
72
70
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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
- // GPU TYPE UTILS - GPU MEMORY LAYOUT HELPERS - CAN BE USED BY APPS BUT MOSTLY USED INTERNALLY
31
- export { getDataTypeInfo, getDataTypeFromTypedArray, getTypedArrayFromDataType, makeNormalizedDataType } from "./shadertypes/utils/decode-data-types.js";
32
- export { getVariableShaderTypeInfo, getAttributeShaderTypeInfo } from "./shadertypes/utils/decode-shader-types.js";
33
- export { getVertexFormatInfo, getVertexFormatFromAttribute, makeVertexFormat } from "./shadertypes/utils/decode-vertex-format.js";
34
- export { getTextureFormatInfo, getTextureFormatCapabilities } from "./shadertypes/utils/decode-texture-format.js";
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/utils/texture-format-table.js";
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;AAIvD,OAAO,EAAC,QAAQ,EAAC,wCAAqC;AAGtD,OAAO,EAAC,MAAM,EAAC,sCAAmC;AAGlD,OAAO,EAAC,OAAO,EAAC,uCAAoC;AAGpD,OAAO,EAAC,WAAW,EAAC,4CAAyC;AAG7D,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,iCAAiC;AACjC,OAAO,EAAC,mBAAmB,EAAC,4CAAyC;AACrE,OAAO,EAAC,YAAY,EAAC,oCAAiC;AACtD,OAAO,EAAC,YAAY,EAAC,oCAAiC;AAwEtD,8FAA8F;AAE9F,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACvB,iDAA8C;AAC/C,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC3B,mDAAgD;AACjD,OAAO,EACL,mBAAmB,EACnB,4BAA4B,EAC5B,gBAAgB,EACjB,oDAAiD;AAClD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC7B,qDAAkD;AAenD,yDAAyD;AACzD,OAAO,EAAC,GAAG,EAAC,uBAAoB;AAChC,OAAO,EAAC,eAAe,EAAC,oCAAiC;AAEzD,OAAO,EAAC,kBAAkB,IAAI,mBAAmB,EAAC,gDAA6C;AAC/F,OAAO,EAAC,4BAA4B,EAAC,sDAAmD;AAExF,eAAe;AACf,OAAO,EACL,0BAA0B,IAAI,2BAA2B,EACzD,qBAAqB,IAAI,sBAAsB,EAChD,oDAAiD"}
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,uCAAoC;AACpE,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
+ {"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,qCAAkC;AACjE,OAAO,KAAK,EAAC,kBAAkB,EAAC,uCAAoC;AAIpE,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;gBACtD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAsB5D,2CAA2C;IAC3C,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU;IAoDhE,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
+ {"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/utils/decode-data-types.js";
5
- import { getVariableShaderTypeInfo } from "../shadertypes/utils/decode-shader-types.js";
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: count } = typeAndComponents;
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(bufferSize);
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":"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"}
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,uCAAoC;AACpE,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,OAAO,CAAC,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;KAChD,CACF;IAgBH,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"}
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,MAOC;QAED,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,iBAAiB,GAAG,UAA+B,CAAC;YAE1D,wFAAwF;YACxF,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YAEtE,gEAAgE;YAChE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC,CAAC;YAC1D,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,OAAO;QACL,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC;YACzD,aAAa,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,QAA8E;QAE9E,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;YAC9D,qFAAqF;YACrF,uCAAuC;QACzC,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED,4DAA4D;IAC5D,0BAA0B,CAAC,iBAAoC;QAC7D,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,mEAAmE;IACnE,oBAAoB,CAAC,iBAAoC;QACvD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACxF,aAAa;QACb,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAClF,CAAC;IAED;;;OAGG;IACH,mBAAmB,CACjB,MAAc,EACd,iBAAoC,EACpC,QAA+E;QAE/E,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;YACxC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ;YACvC,UAAU;SACX,CAAC,CAAC;QACH,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACvE,aAAa,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACvC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,4GAA4G;IAC5G,uBAAuB,CAAC,MAAc,EAAE,iBAAoC;QAC1E,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;YACtE,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;gBACxC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ;gBACvC,UAAU;aACX,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAC5D,CAAC;QACD,+BAA+B;QAC/B,aAAa;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAED,4DAA4D;IAC5D,oBAAoB;QAClB,IAAI,MAAM,GAAmB,KAAK,CAAC;QACnC,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YACjE,MAAM,KAAK,YAAY,CAAC;QAC1B,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,wCAAwC,MAAM,EAAE,CAAC,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qEAAqE;IACrE,mBAAmB,CAAC,iBAAoC;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/D,IAAI,MAAM,GAAmB,KAAK,CAAC;QACnC,IAAI,aAAa,IAAI,YAAY,EAAE,WAAW,EAAE,CAAC;YAC/C,MAAM,KAAK,YAAY,CAAC,WAAW,CAAC;YACpC,oCAAoC;YACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YAEvE,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC3D,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAExC,wDAAwD;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;YAClF,GAAG,CAAC,GAAG,CACL,CAAC,EACD,6BAA6B,MAAM,CAAC,iBAAiB,CAAC,EAAE,EACxD,iBAAiB,EACjB,aAAa,CACd,EAAE,CAAC;QACN,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
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 { PrimitiveDataType, SignedDataType, NormalizedDataType, DataTypeInfo } from "../data-types.js";
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 makeNormalizedDataType(signedDataType: SignedDataType): NormalizedDataType;
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 getDataTypeFromTypedArray(arrayOrType: TypedArray | TypedArrayConstructor): SignedDataType;
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 getTypedArrayFromDataType(type: NormalizedDataType | PrimitiveDataType): TypedArrayConstructor;
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 "../data-types.js";
2
- import type { VariableShaderType, AttributeShaderType, AttributeShaderTypeInfo, VariableShaderTypeAlias, AttributeShaderTypeAlias } from "../shader-types.js";
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