@luma.gl/core 9.0.0-beta.4 → 9.0.0-beta.6

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 (291) hide show
  1. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts +4 -4
  2. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts.map +1 -1
  3. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js +138 -106
  4. package/dist/adapter/canvas-context.d.ts +2 -2
  5. package/dist/adapter/canvas-context.d.ts.map +1 -1
  6. package/dist/adapter/canvas-context.js +306 -232
  7. package/dist/adapter/device.d.ts +112 -69
  8. package/dist/adapter/device.d.ts.map +1 -1
  9. package/dist/adapter/device.js +145 -94
  10. package/dist/adapter/resources/buffer.d.ts +3 -3
  11. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  12. package/dist/adapter/resources/buffer.js +70 -56
  13. package/dist/adapter/resources/command-buffer.d.ts +2 -2
  14. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  15. package/dist/adapter/resources/command-buffer.js +15 -12
  16. package/dist/adapter/resources/command-encoder.d.ts +22 -7
  17. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  18. package/dist/adapter/resources/command-encoder.js +16 -16
  19. package/dist/adapter/resources/compute-pass.d.ts +16 -5
  20. package/dist/adapter/resources/compute-pass.d.ts.map +1 -1
  21. package/dist/adapter/resources/compute-pass.js +15 -12
  22. package/dist/adapter/resources/compute-pipeline.d.ts +4 -4
  23. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  24. package/dist/adapter/resources/compute-pipeline.js +20 -17
  25. package/dist/adapter/resources/external-texture.d.ts +2 -2
  26. package/dist/adapter/resources/external-texture.d.ts.map +1 -1
  27. package/dist/adapter/resources/external-texture.js +14 -14
  28. package/dist/adapter/resources/framebuffer.d.ts +9 -8
  29. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  30. package/dist/adapter/resources/framebuffer.js +191 -91
  31. package/dist/adapter/resources/query-set.d.ts +26 -0
  32. package/dist/adapter/resources/query-set.d.ts.map +1 -0
  33. package/dist/adapter/resources/query-set.js +18 -0
  34. package/dist/adapter/resources/render-pass.d.ts +22 -9
  35. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  36. package/dist/adapter/resources/render-pass.js +34 -20
  37. package/dist/adapter/resources/render-pipeline.d.ts +22 -18
  38. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  39. package/dist/adapter/resources/render-pipeline.js +50 -33
  40. package/dist/adapter/resources/resource.d.ts +1 -1
  41. package/dist/adapter/resources/resource.d.ts.map +1 -1
  42. package/dist/adapter/resources/resource.js +133 -92
  43. package/dist/adapter/resources/sampler.d.ts +3 -3
  44. package/dist/adapter/resources/sampler.d.ts.map +1 -1
  45. package/dist/adapter/resources/sampler.js +24 -23
  46. package/dist/adapter/resources/shader.d.ts +8 -6
  47. package/dist/adapter/resources/shader.d.ts.map +1 -1
  48. package/dist/adapter/resources/shader.js +98 -74
  49. package/dist/adapter/resources/texture-view.d.ts +32 -0
  50. package/dist/adapter/resources/texture-view.d.ts.map +1 -0
  51. package/dist/adapter/resources/texture-view.js +24 -0
  52. package/dist/adapter/resources/texture.d.ts +10 -15
  53. package/dist/adapter/resources/texture.d.ts.map +1 -1
  54. package/dist/adapter/resources/texture.js +54 -42
  55. package/dist/adapter/resources/transform-feedback.d.ts +7 -7
  56. package/dist/adapter/resources/transform-feedback.d.ts.map +1 -1
  57. package/dist/adapter/resources/transform-feedback.js +15 -14
  58. package/dist/adapter/resources/vertex-array.d.ts +9 -9
  59. package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
  60. package/dist/adapter/resources/vertex-array.js +36 -20
  61. package/dist/adapter/type-utils/decode-attribute-type.d.ts +2 -2
  62. package/dist/adapter/type-utils/decode-attribute-type.d.ts.map +1 -1
  63. package/dist/adapter/type-utils/decode-attribute-type.js +59 -52
  64. package/dist/adapter/type-utils/decode-data-type.d.ts +1 -1
  65. package/dist/adapter/type-utils/decode-data-type.d.ts.map +1 -1
  66. package/dist/adapter/type-utils/decode-data-type.js +39 -35
  67. package/dist/adapter/type-utils/decode-shader-types.d.ts +1 -1
  68. package/dist/adapter/type-utils/decode-shader-types.d.ts.map +1 -1
  69. package/dist/adapter/type-utils/decode-shader-types.js +36 -96
  70. package/dist/adapter/type-utils/decode-texture-format.d.ts +6 -2
  71. package/dist/adapter/type-utils/decode-texture-format.d.ts.map +1 -1
  72. package/dist/adapter/type-utils/decode-texture-format.js +172 -92
  73. package/dist/adapter/type-utils/decode-vertex-format.d.ts +1 -1
  74. package/dist/adapter/type-utils/decode-vertex-format.d.ts.map +1 -1
  75. package/dist/adapter/type-utils/decode-vertex-format.js +30 -22
  76. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts +2 -2
  77. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts.map +1 -1
  78. package/dist/adapter/type-utils/vertex-format-from-attribute.js +72 -65
  79. package/dist/adapter/type-utils/wgsl-utils.d.ts +1 -1
  80. package/dist/adapter/type-utils/wgsl-utils.d.ts.map +1 -1
  81. package/dist/adapter/type-utils/wgsl-utils.js +17 -13
  82. package/dist/adapter/types/accessor.d.ts +1 -1
  83. package/dist/adapter/types/accessor.d.ts.map +1 -1
  84. package/dist/adapter/types/accessor.js +3 -1
  85. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  86. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  87. package/dist/adapter/types/buffer-layout.js +3 -1
  88. package/dist/adapter/types/parameters.d.ts +28 -6
  89. package/dist/adapter/types/parameters.d.ts.map +1 -1
  90. package/dist/adapter/types/parameters.js +46 -26
  91. package/dist/adapter/types/shader-layout.d.ts +8 -7
  92. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  93. package/dist/adapter/types/shader-layout.js +3 -1
  94. package/dist/adapter/types/shader-types.d.ts.map +1 -1
  95. package/dist/adapter/types/shader-types.js +3 -1
  96. package/dist/adapter/types/texture-formats.d.ts +2 -2
  97. package/dist/adapter/types/texture-formats.d.ts.map +1 -1
  98. package/dist/adapter/types/texture-formats.js +3 -1
  99. package/dist/adapter/types/types.d.ts +4 -4
  100. package/dist/adapter/types/types.d.ts.map +1 -1
  101. package/dist/adapter/types/types.js +3 -1
  102. package/dist/adapter/types/vertex-formats.d.ts.map +1 -1
  103. package/dist/adapter/types/vertex-formats.js +3 -1
  104. package/dist/dist.dev.js +614 -406
  105. package/dist/index.cjs +344 -369
  106. package/dist/index.cjs.map +7 -0
  107. package/dist/index.d.ts +80 -76
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +19 -5
  110. package/dist/init.d.ts.map +1 -1
  111. package/dist/init.js +30 -17
  112. package/dist/lib/compiler-log/compiler-message.d.ts.map +1 -1
  113. package/dist/lib/compiler-log/compiler-message.js +3 -1
  114. package/dist/lib/compiler-log/format-compiler-log.d.ts +1 -1
  115. package/dist/lib/compiler-log/format-compiler-log.d.ts.map +1 -1
  116. package/dist/lib/compiler-log/format-compiler-log.js +69 -48
  117. package/dist/lib/compiler-log/get-shader-info.d.ts.map +1 -1
  118. package/dist/lib/compiler-log/get-shader-info.js +23 -19
  119. package/dist/lib/luma.d.ts +3 -3
  120. package/dist/lib/luma.d.ts.map +1 -1
  121. package/dist/lib/luma.js +60 -51
  122. package/dist/lib/uniforms/uniform-block.d.ts +3 -4
  123. package/dist/lib/uniforms/uniform-block.d.ts.map +1 -1
  124. package/dist/lib/uniforms/uniform-block.js +52 -42
  125. package/dist/lib/uniforms/uniform-buffer-layout.d.ts +2 -2
  126. package/dist/lib/uniforms/uniform-buffer-layout.d.ts.map +1 -1
  127. package/dist/lib/uniforms/uniform-buffer-layout.js +86 -66
  128. package/dist/lib/uniforms/uniform-store.d.ts +6 -6
  129. package/dist/lib/uniforms/uniform-store.d.ts.map +1 -1
  130. package/dist/lib/uniforms/uniform-store.js +111 -75
  131. package/dist/lib/uniforms/uniform.d.ts +2 -2
  132. package/dist/lib/uniforms/uniform.d.ts.map +1 -1
  133. package/dist/lib/uniforms/uniform.js +15 -15
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +4 -3
  136. package/dist/utils/array-equal.d.ts.map +1 -1
  137. package/dist/utils/array-equal.js +25 -22
  138. package/dist/utils/array-utils-flat.d.ts +1 -1
  139. package/dist/utils/array-utils-flat.d.ts.map +1 -1
  140. package/dist/utils/array-utils-flat.js +29 -28
  141. package/dist/utils/assert.d.ts.map +1 -1
  142. package/dist/utils/assert.js +8 -4
  143. package/dist/utils/cast.d.ts.map +1 -1
  144. package/dist/utils/cast.js +5 -2
  145. package/dist/utils/check-props.d.ts.map +1 -1
  146. package/dist/utils/check-props.js +30 -26
  147. package/dist/utils/deep-equal.d.ts.map +1 -1
  148. package/dist/utils/deep-equal.js +42 -32
  149. package/dist/utils/format-value.d.ts +1 -1
  150. package/dist/utils/format-value.d.ts.map +1 -1
  151. package/dist/utils/format-value.js +36 -39
  152. package/dist/utils/is-array.d.ts +1 -1
  153. package/dist/utils/is-array.d.ts.map +1 -1
  154. package/dist/utils/is-array.js +20 -6
  155. package/dist/utils/load-file.d.ts.map +1 -1
  156. package/dist/utils/load-file.js +63 -37
  157. package/dist/utils/log.d.ts.map +1 -1
  158. package/dist/utils/log.js +5 -4
  159. package/dist/utils/random.d.ts.map +1 -1
  160. package/dist/utils/random.js +13 -9
  161. package/dist/utils/request-animation-frame.d.ts.map +1 -1
  162. package/dist/utils/request-animation-frame.js +12 -3
  163. package/dist/utils/stats-manager.d.ts.map +1 -1
  164. package/dist/utils/stats-manager.js +16 -14
  165. package/dist/utils/stub-methods.d.ts.map +1 -1
  166. package/dist/utils/stub-methods.js +15 -12
  167. package/dist/utils/utils.d.ts +0 -6
  168. package/dist/utils/utils.d.ts.map +1 -1
  169. package/dist/utils/utils.js +21 -15
  170. package/dist.min.js +8 -23
  171. package/package.json +6 -6
  172. package/src/adapter/attribute-utils/get-attribute-from-layouts.ts +6 -5
  173. package/src/adapter/canvas-context.ts +8 -5
  174. package/src/adapter/device.ts +181 -127
  175. package/src/adapter/resources/buffer.ts +19 -6
  176. package/src/adapter/resources/command-buffer.ts +7 -5
  177. package/src/adapter/resources/command-encoder.ts +40 -29
  178. package/src/adapter/resources/compute-pass.ts +23 -9
  179. package/src/adapter/resources/compute-pipeline.ts +5 -2
  180. package/src/adapter/resources/external-texture.ts +8 -2
  181. package/src/adapter/resources/framebuffer.ts +115 -102
  182. package/src/adapter/resources/query-set.ts +41 -0
  183. package/src/adapter/resources/render-pass.ts +48 -54
  184. package/src/adapter/resources/render-pipeline.ts +22 -9
  185. package/src/adapter/resources/resource.ts +13 -10
  186. package/src/adapter/resources/sampler.ts +4 -3
  187. package/src/adapter/resources/shader.ts +19 -7
  188. package/src/adapter/resources/texture-view.ts +51 -0
  189. package/src/adapter/resources/texture.ts +28 -26
  190. package/src/adapter/resources/transform-feedback.ts +6 -3
  191. package/src/adapter/resources/vertex-array.ts +11 -3
  192. package/src/adapter/type-utils/decode-attribute-type.ts +24 -10
  193. package/src/adapter/type-utils/decode-data-type.ts +5 -1
  194. package/src/adapter/type-utils/decode-shader-types.ts +12 -9
  195. package/src/adapter/type-utils/decode-texture-format.ts +28 -12
  196. package/src/adapter/type-utils/decode-vertex-format.ts +4 -0
  197. package/src/adapter/type-utils/vertex-format-from-attribute.ts +4 -1
  198. package/src/adapter/type-utils/wgsl-utils.ts +6 -2
  199. package/src/adapter/types/accessor.ts +5 -2
  200. package/src/adapter/types/buffer-layout.ts +11 -8
  201. package/src/adapter/types/parameters.ts +98 -93
  202. package/src/adapter/types/shader-layout.ts +11 -2
  203. package/src/adapter/types/shader-types.ts +2 -1
  204. package/src/adapter/types/texture-formats.ts +130 -129
  205. package/src/adapter/types/types.ts +12 -6
  206. package/src/adapter/types/vertex-formats.ts +4 -5
  207. package/src/index.ts +30 -15
  208. package/src/init.ts +10 -4
  209. package/src/lib/compiler-log/compiler-message.ts +3 -2
  210. package/src/lib/compiler-log/format-compiler-log.ts +8 -3
  211. package/src/lib/compiler-log/get-shader-info.ts +2 -1
  212. package/src/lib/luma.ts +13 -8
  213. package/src/lib/uniforms/uniform-block.ts +7 -3
  214. package/src/lib/uniforms/uniform-buffer-layout.ts +16 -10
  215. package/src/lib/uniforms/uniform-store.ts +4 -1
  216. package/src/lib/uniforms/uniform.ts +12 -6
  217. package/src/types.ts +7 -3
  218. package/src/utils/array-equal.ts +2 -1
  219. package/src/utils/array-utils-flat.ts +9 -3
  220. package/src/utils/assert.ts +4 -0
  221. package/src/utils/cast.ts +4 -0
  222. package/src/utils/check-props.ts +9 -1
  223. package/src/utils/deep-equal.ts +4 -0
  224. package/src/utils/format-value.ts +9 -2
  225. package/src/utils/is-array.ts +4 -0
  226. package/src/utils/load-file.ts +5 -3
  227. package/src/utils/log.ts +4 -0
  228. package/src/utils/random.ts +4 -0
  229. package/src/utils/request-animation-frame.ts +4 -0
  230. package/src/utils/stats-manager.ts +6 -2
  231. package/src/utils/stub-methods.ts +10 -1
  232. package/src/utils/utils.ts +2 -10
  233. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js.map +0 -1
  234. package/dist/adapter/canvas-context.js.map +0 -1
  235. package/dist/adapter/device.js.map +0 -1
  236. package/dist/adapter/resources/buffer.js.map +0 -1
  237. package/dist/adapter/resources/command-buffer.js.map +0 -1
  238. package/dist/adapter/resources/command-encoder.js.map +0 -1
  239. package/dist/adapter/resources/compute-pass.js.map +0 -1
  240. package/dist/adapter/resources/compute-pipeline.js.map +0 -1
  241. package/dist/adapter/resources/external-texture.js.map +0 -1
  242. package/dist/adapter/resources/framebuffer.js.map +0 -1
  243. package/dist/adapter/resources/render-pass.js.map +0 -1
  244. package/dist/adapter/resources/render-pipeline.js.map +0 -1
  245. package/dist/adapter/resources/resource.js.map +0 -1
  246. package/dist/adapter/resources/sampler.js.map +0 -1
  247. package/dist/adapter/resources/shader.js.map +0 -1
  248. package/dist/adapter/resources/texture.js.map +0 -1
  249. package/dist/adapter/resources/transform-feedback.js.map +0 -1
  250. package/dist/adapter/resources/vertex-array.js.map +0 -1
  251. package/dist/adapter/type-utils/decode-attribute-type.js.map +0 -1
  252. package/dist/adapter/type-utils/decode-data-type.js.map +0 -1
  253. package/dist/adapter/type-utils/decode-shader-types.js.map +0 -1
  254. package/dist/adapter/type-utils/decode-texture-format.js.map +0 -1
  255. package/dist/adapter/type-utils/decode-vertex-format.js.map +0 -1
  256. package/dist/adapter/type-utils/vertex-format-from-attribute.js.map +0 -1
  257. package/dist/adapter/type-utils/wgsl-utils.js.map +0 -1
  258. package/dist/adapter/types/accessor.js.map +0 -1
  259. package/dist/adapter/types/buffer-layout.js.map +0 -1
  260. package/dist/adapter/types/parameters.js.map +0 -1
  261. package/dist/adapter/types/shader-layout.js.map +0 -1
  262. package/dist/adapter/types/shader-types.js.map +0 -1
  263. package/dist/adapter/types/texture-formats.js.map +0 -1
  264. package/dist/adapter/types/types.js.map +0 -1
  265. package/dist/adapter/types/vertex-formats.js.map +0 -1
  266. package/dist/index.js.map +0 -1
  267. package/dist/init.js.map +0 -1
  268. package/dist/lib/compiler-log/compiler-message.js.map +0 -1
  269. package/dist/lib/compiler-log/format-compiler-log.js.map +0 -1
  270. package/dist/lib/compiler-log/get-shader-info.js.map +0 -1
  271. package/dist/lib/luma.js.map +0 -1
  272. package/dist/lib/uniforms/uniform-block.js.map +0 -1
  273. package/dist/lib/uniforms/uniform-buffer-layout.js.map +0 -1
  274. package/dist/lib/uniforms/uniform-store.js.map +0 -1
  275. package/dist/lib/uniforms/uniform.js.map +0 -1
  276. package/dist/types.js.map +0 -1
  277. package/dist/utils/array-equal.js.map +0 -1
  278. package/dist/utils/array-utils-flat.js.map +0 -1
  279. package/dist/utils/assert.js.map +0 -1
  280. package/dist/utils/cast.js.map +0 -1
  281. package/dist/utils/check-props.js.map +0 -1
  282. package/dist/utils/deep-equal.js.map +0 -1
  283. package/dist/utils/format-value.js.map +0 -1
  284. package/dist/utils/is-array.js.map +0 -1
  285. package/dist/utils/load-file.js.map +0 -1
  286. package/dist/utils/log.js.map +0 -1
  287. package/dist/utils/random.js.map +0 -1
  288. package/dist/utils/request-animation-frame.js.map +0 -1
  289. package/dist/utils/stats-manager.js.map +0 -1
  290. package/dist/utils/stub-methods.js.map +0 -1
  291. package/dist/utils/utils.js.map +0 -1
@@ -1,35 +1,21 @@
1
- import { StatsManager } from '../utils/stats-manager';
2
- import type { TextureFormat } from './types/texture-formats';
3
- import type { CanvasContext, CanvasContextProps } from './canvas-context';
4
- import type { BufferProps } from './resources/buffer';
5
- import { Buffer } from './resources/buffer';
6
- import type { RenderPipeline, RenderPipelineProps } from './resources/render-pipeline';
7
- import type { ComputePipeline, ComputePipelineProps } from './resources/compute-pipeline';
8
- import type { Sampler, SamplerProps } from './resources/sampler';
9
- import type { Shader, ShaderProps } from './resources/shader';
10
- import type { Texture, TextureProps, TextureData } from './resources/texture';
11
- import type { ExternalTexture, ExternalTextureProps } from './resources/external-texture';
12
- import type { Framebuffer, FramebufferProps } from './resources/framebuffer';
13
- import type { RenderPass, RenderPassProps } from './resources/render-pass';
14
- import type { ComputePass, ComputePassProps } from './resources/compute-pass';
15
- import type { CommandEncoder, CommandEncoderProps } from './resources/command-encoder';
16
- import type { VertexArray, VertexArrayProps } from './resources/vertex-array';
17
- import type { TransformFeedback, TransformFeedbackProps } from './resources/transform-feedback';
18
- /** Device properties */
19
- export type DeviceProps = {
20
- id?: string;
21
- type?: 'webgl' | 'webgl1' | 'webgl2' | 'webgpu' | 'best-available';
22
- canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;
23
- container?: HTMLElement | string | null;
24
- width?: number /** width is only used when creating a new canvas */;
25
- height?: number /** height is only used when creating a new canvas */;
26
- webgl2?: boolean;
27
- webgl1?: boolean;
28
- debug?: boolean;
29
- manageState?: boolean;
30
- break?: string[];
31
- gl?: WebGLRenderingContext | WebGL2RenderingContext | null;
32
- };
1
+ import { StatsManager } from "../utils/stats-manager.js";
2
+ import type { TextureFormat } from "./types/texture-formats.js";
3
+ import type { CanvasContext, CanvasContextProps } from "./canvas-context.js";
4
+ import type { BufferProps } from "./resources/buffer.js";
5
+ import { Buffer } from "./resources/buffer.js";
6
+ import type { RenderPipeline, RenderPipelineProps } from "./resources/render-pipeline.js";
7
+ import type { ComputePipeline, ComputePipelineProps } from "./resources/compute-pipeline.js";
8
+ import type { Sampler, SamplerProps } from "./resources/sampler.js";
9
+ import type { Shader, ShaderProps } from "./resources/shader.js";
10
+ import type { Texture, TextureProps, TextureData } from "./resources/texture.js";
11
+ import type { ExternalTexture, ExternalTextureProps } from "./resources/external-texture.js";
12
+ import type { Framebuffer, FramebufferProps } from "./resources/framebuffer.js";
13
+ import type { RenderPass, RenderPassProps } from "./resources/render-pass.js";
14
+ import type { ComputePass, ComputePassProps } from "./resources/compute-pass.js";
15
+ import type { CommandEncoder, CommandEncoderProps } from "./resources/command-encoder.js";
16
+ import type { VertexArray, VertexArrayProps } from "./resources/vertex-array.js";
17
+ import type { TransformFeedback, TransformFeedbackProps } from "./resources/transform-feedback.js";
18
+ import type { QuerySet, QuerySetProps } from "./resources/query-set.js";
33
19
  /**
34
20
  * Identifies the GPU vendor and driver.
35
21
  * @note Chrome WebGPU does not provide much information, though more can be enabled with
@@ -38,7 +24,7 @@ export type DeviceProps = {
38
24
  */
39
25
  export type DeviceInfo = {
40
26
  /** Type of device */
41
- type: 'webgl' | 'webgl2' | 'webgpu';
27
+ type: 'webgl' | 'webgpu';
42
28
  /** Vendor (name of GPU vendor, Apple, nVidia etc */
43
29
  vendor: string;
44
30
  /** Renderer (usually driver name) */
@@ -57,43 +43,95 @@ export type DeviceInfo = {
57
43
  fallback?: boolean;
58
44
  /** Shader language supported by device.createShader() */
59
45
  shadingLanguage: 'wgsl' | 'glsl';
60
- /** Highest supported shader language version (GLSL 3.00 = 300, GLSL 1.00 = 100) */
46
+ /** Highest supported shader language version: GLSL 3.00 = 300, WGSL 1.00 = 100 */
61
47
  shadingLanguageVersion: number;
62
48
  };
63
- /** Limits for a device */
64
- export type DeviceLimits = {
65
- readonly maxTextureDimension1D?: number;
66
- readonly maxTextureDimension2D?: number;
67
- readonly maxTextureDimension3D?: number;
68
- readonly maxTextureArrayLayers?: number;
69
- readonly maxBindGroups: number;
70
- readonly maxDynamicUniformBuffersPerPipelineLayout: number;
71
- readonly maxDynamicStorageBuffersPerPipelineLayout: number;
72
- readonly maxSampledTexturesPerShaderStage: number;
73
- readonly maxSamplersPerShaderStage: number;
74
- readonly maxStorageBuffersPerShaderStage: number;
75
- readonly maxStorageTexturesPerShaderStage: number;
76
- readonly maxUniformBuffersPerShaderStage: number;
77
- readonly maxUniformBufferBindingSize: number;
78
- readonly maxStorageBufferBindingSize?: number;
79
- readonly minUniformBufferOffsetAlignment?: number;
80
- readonly minStorageBufferOffsetAlignment?: number;
81
- readonly maxVertexBuffers?: number;
82
- readonly maxVertexAttributes: number;
83
- readonly maxVertexBufferArrayStride?: number;
84
- readonly maxInterStageShaderComponents?: number;
85
- readonly maxComputeWorkgroupStorageSize?: number;
86
- readonly maxComputeInvocationsPerWorkgroup?: number;
87
- readonly maxComputeWorkgroupSizeX?: number;
88
- readonly maxComputeWorkgroupSizeY?: number;
89
- readonly maxComputeWorkgroupSizeZ?: number;
90
- readonly maxComputeWorkgroupsPerDimension?: number;
91
- };
92
- export type WebGPUDeviceFeature = 'depth-clip-control' | 'depth24unorm-stencil8' | 'depth32float-stencil8' | 'timestamp-query' | 'indirect-first-instance' | 'texture-compression-bc' | 'texture-compression-etc2' | 'texture-compression-astc';
93
- export type WebGLDeviceFeature = 'webgpu' | 'webgl2' | 'webgl' | 'timer-query-webgl' | 'uniform-buffers-webgl' | 'uniforms-webgl' | 'texture-filter-linear-float32-webgl' | 'texture-filter-linear-float16-webgl' | 'texture-filter-anisotropic-webgl' | 'texture-renderable-float32-webgl' | 'texture-renderable-float16-webgl' | 'texture-renderable-rgba32float-webgl' | 'texture-blend-float-webgl1' | 'texture-formats-norm16-webgl' | 'texture-formats-srgb-webgl1' | 'texture-formats-depth-webgl1' | 'texture-formats-float32-webgl1' | 'texture-formats-float16-webgl1' | 'vertex-array-object-webgl1' | 'instanced-rendering-webgl1' | 'multiple-render-targets-webgl1' | 'index-uint32-webgl1' | 'blend-minmax-webgl1' | 'transform-feedback-webgl2' | 'glsl-frag-data' | 'glsl-frag-depth' | 'glsl-derivatives' | 'glsl-texture-lod';
94
- type WebGLCompressedTextureFeatures = 'texture-compression-bc5-webgl' | 'texture-compression-etc1-webgl' | 'texture-compression-pvrtc-webgl' | 'texture-compression-atc-webgl';
95
- /** Valid feature strings */
49
+ /** Limits for a device (max supported sizes of resources, max number of bindings etc) */
50
+ export declare abstract class DeviceLimits {
51
+ /** max number of TextureDimension1D */
52
+ abstract maxTextureDimension1D: number;
53
+ /** max number of TextureDimension2D */
54
+ abstract maxTextureDimension2D: number;
55
+ /** max number of TextureDimension3D */
56
+ abstract maxTextureDimension3D: number;
57
+ /** max number of TextureArrayLayers */
58
+ abstract maxTextureArrayLayers: number;
59
+ /** max number of BindGroups */
60
+ abstract maxBindGroups: number;
61
+ /** max number of DynamicUniformBuffers per PipelineLayout */
62
+ abstract maxDynamicUniformBuffersPerPipelineLayout: number;
63
+ /** max number of DynamicStorageBuffers per PipelineLayout */
64
+ abstract maxDynamicStorageBuffersPerPipelineLayout: number;
65
+ /** max number of SampledTextures per ShaderStage */
66
+ abstract maxSampledTexturesPerShaderStage: number;
67
+ /** max number of Samplers per ShaderStage */
68
+ abstract maxSamplersPerShaderStage: number;
69
+ /** max number of StorageBuffers per ShaderStage */
70
+ abstract maxStorageBuffersPerShaderStage: number;
71
+ /** max number of StorageTextures per ShaderStage */
72
+ abstract maxStorageTexturesPerShaderStage: number;
73
+ /** max number of UniformBuffers per ShaderStage */
74
+ abstract maxUniformBuffersPerShaderStage: number;
75
+ /** max number of UniformBufferBindingSize */
76
+ abstract maxUniformBufferBindingSize: number;
77
+ /** max number of StorageBufferBindingSize */
78
+ abstract maxStorageBufferBindingSize: number;
79
+ /** min UniformBufferOffsetAlignment */
80
+ abstract minUniformBufferOffsetAlignment: number;
81
+ /** min StorageBufferOffsetAlignment */
82
+ abstract minStorageBufferOffsetAlignment: number;
83
+ /** max number of VertexBuffers */
84
+ abstract maxVertexBuffers: number;
85
+ /** max number of VertexAttributes */
86
+ abstract maxVertexAttributes: number;
87
+ /** max number of VertexBufferArrayStride */
88
+ abstract maxVertexBufferArrayStride: number;
89
+ /** max number of InterStageShaderComponents */
90
+ abstract maxInterStageShaderComponents: number;
91
+ /** max number of ComputeWorkgroupStorageSize */
92
+ abstract maxComputeWorkgroupStorageSize: number;
93
+ /** max number of ComputeInvocations per Workgroup */
94
+ abstract maxComputeInvocationsPerWorkgroup: number;
95
+ /** max ComputeWorkgroupSizeX */
96
+ abstract maxComputeWorkgroupSizeX: number;
97
+ /** max ComputeWorkgroupSizeY */
98
+ abstract maxComputeWorkgroupSizeY: number;
99
+ /** max ComputeWorkgroupSizeZ */
100
+ abstract maxComputeWorkgroupSizeZ: number;
101
+ /** max ComputeWorkgroupsPerDimension */
102
+ abstract maxComputeWorkgroupsPerDimension: number;
103
+ }
104
+ /** Set-like class for features (lets apps check for WebGL / WebGPU extensions) */
105
+ export declare class DeviceFeatures {
106
+ protected features: Set<DeviceFeature>;
107
+ constructor(features?: DeviceFeature[]);
108
+ [Symbol.iterator](): IterableIterator<DeviceFeature>;
109
+ has(feature: DeviceFeature): boolean;
110
+ }
111
+ /** Device feature names */
96
112
  export type DeviceFeature = WebGPUDeviceFeature | WebGLDeviceFeature | WebGLCompressedTextureFeatures;
113
+ export type WebGPUDeviceFeature = 'depth-clip-control' | 'indirect-first-instance' | 'timestamp-query' | 'shader-f16' | 'depth24unorm-stencil8' | 'depth32float-stencil8' | 'rg11b10ufloat-renderable' | 'float32-filterable' | 'bgra8unorm-storage' | 'texture-compression-bc' | 'texture-compression-etc2' | 'texture-compression-astc';
114
+ export type WebGLDeviceFeature = 'timer-query-webgl' | 'compilation-status-async-webgl' | 'provoking-vertex-webgl' | 'polygon-mode-webgl' | 'shader-noperspective-interpolation-webgl' | 'shader-conservative-depth-webgl' | 'shader-clip-cull-distance-webgl' | 'float32-renderable-webgl' | 'float16-renderable-webgl' | 'rgb9e5ufloat_renderable-webgl' | 'snorm8-renderable-webgl' | 'norm16-renderable-webgl' | 'snorm16-renderable-webgl' | 'float16-filterable-webgl' | 'texture-filterable-anisotropic-webgl' | 'bgra8unorm-storage' | 'texture-blend-float-webgl';
115
+ type WebGLCompressedTextureFeatures = 'texture-compression-bc5-webgl' | 'texture-compression-bc7-webgl' | 'texture-compression-etc1-webgl' | 'texture-compression-pvrtc-webgl' | 'texture-compression-atc-webgl';
116
+ /** Device properties */
117
+ export type DeviceProps = {
118
+ id?: string;
119
+ type?: 'webgl' | 'webgpu' | 'best-available';
120
+ canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;
121
+ container?: HTMLElement | string | null;
122
+ width?: number /** width is only used when creating a new canvas */;
123
+ height?: number /** height is only used when creating a new canvas */;
124
+ /** Request a Device with the highest limits supported by platform. */
125
+ requestMaximalLimits?: boolean;
126
+ onError?: (error: Error) => unknown;
127
+ /** Instrument context (at the expense of performance) */
128
+ debug?: boolean;
129
+ /** Initialize the SpectorJS WebGL debugger */
130
+ spector?: boolean;
131
+ manageState?: boolean;
132
+ break?: string[];
133
+ gl?: WebGL2RenderingContext | null;
134
+ };
97
135
  /**
98
136
  * WebGPU Device/WebGL context abstraction
99
137
  */
@@ -120,7 +158,7 @@ export declare abstract class Device {
120
158
  /** Information about the device (vendor, versions etc) */
121
159
  abstract info: DeviceInfo;
122
160
  /** Optional capability discovery */
123
- abstract get features(): Set<DeviceFeature>;
161
+ abstract features: DeviceFeatures;
124
162
  /** WebGPU style device limits */
125
163
  abstract get limits(): DeviceLimits;
126
164
  /** Check if device supports a specific texture format (creation and `nearest` sampling) */
@@ -129,6 +167,8 @@ export declare abstract class Device {
129
167
  abstract isTextureFormatFilterable(format: TextureFormat): boolean;
130
168
  /** Check if device supports rendering to a specific texture format */
131
169
  abstract isTextureFormatRenderable(format: TextureFormat): boolean;
170
+ /** Check if a specific texture format is GPU compressed */
171
+ isTextureFormatCompressed(format: TextureFormat): boolean;
132
172
  /** `true` if device is already lost */
133
173
  abstract get isLost(): boolean;
134
174
  /** Promise that resolves when device is lost */
@@ -177,8 +217,9 @@ export declare abstract class Device {
177
217
  abstract beginComputePass(props?: ComputePassProps): ComputePass;
178
218
  /** Get a renderpass that is set up to render to the primary CanvasContext */
179
219
  abstract getDefaultRenderPass(): RenderPass;
180
- /** Create a transform feedback (immutable set of output buffer bindings). WebGL 2 only. */
220
+ /** Create a transform feedback (immutable set of output buffer bindings). WebGL only. */
181
221
  abstract createTransformFeedback(props: TransformFeedbackProps): TransformFeedback;
222
+ abstract createQuerySet(props: QuerySetProps): QuerySet;
182
223
  createCommandEncoder(props?: CommandEncoderProps): CommandEncoder;
183
224
  /** @deprecated - will be removed - should use command encoder */
184
225
  readPixelsToArrayWebGL(source: Framebuffer | Texture, options?: {
@@ -215,6 +256,8 @@ export declare abstract class Device {
215
256
  depth?: any;
216
257
  stencil?: any;
217
258
  }): void;
259
+ /** Report unhandled device errors */
260
+ onError(error: Error): void;
218
261
  protected _getBufferProps(props: BufferProps | ArrayBuffer | ArrayBufferView): BufferProps;
219
262
  }
220
263
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device.d.ts","sourceRoot":"","sources":["../../src/adapter/device.ts"],"names":[],"mappings":"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"}
@@ -1,102 +1,153 @@
1
- let _Symbol$toStringTag;
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
2
4
  import { VERSION } from "../init.js";
3
5
  import { lumaStats } from "../utils/stats-manager.js";
4
6
  import { log } from "../utils/log.js";
5
7
  import { uid } from "../utils/utils.js";
6
8
  import { Buffer } from "./resources/buffer.js";
7
- _Symbol$toStringTag = Symbol.toStringTag;
9
+ import { isTextureFormatCompressed } from "./type-utils/decode-texture-format.js";
10
+ /** Limits for a device (max supported sizes of resources, max number of bindings etc) */
11
+ export class DeviceLimits {
12
+ }
13
+ /** Set-like class for features (lets apps check for WebGL / WebGPU extensions) */
14
+ export class DeviceFeatures {
15
+ features;
16
+ constructor(features = []) {
17
+ this.features = new Set(features);
18
+ }
19
+ *[Symbol.iterator]() {
20
+ yield* this.features;
21
+ }
22
+ has(feature) {
23
+ return this.features.has(feature);
24
+ }
25
+ }
26
+ /**
27
+ * WebGPU Device/WebGL context abstraction
28
+ */
8
29
  export class Device {
9
- get [_Symbol$toStringTag]() {
10
- return 'Device';
11
- }
12
- constructor(props) {
13
- this.id = void 0;
14
- this.statsManager = lumaStats;
15
- this.props = void 0;
16
- this.userData = {};
17
- this._lumaData = {};
18
- this.info = void 0;
19
- this.lost = void 0;
20
- this.canvasContext = void 0;
21
- this.props = {
22
- ...Device.defaultProps,
23
- ...props
24
- };
25
- this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());
26
- }
27
- loseDevice() {
28
- return false;
29
- }
30
- getCanvasContext() {
31
- if (!this.canvasContext) {
32
- throw new Error('Device has no CanvasContext');
33
- }
34
- return this.canvasContext;
35
- }
36
- createTexture(props) {
37
- if (props instanceof Promise || typeof props === 'string') {
38
- props = {
39
- data: props
40
- };
41
- }
42
- return this._createTexture(props);
43
- }
44
- createCommandEncoder() {
45
- let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
- throw new Error('not implemented');
47
- }
48
- readPixelsToArrayWebGL(source, options) {
49
- throw new Error('not implemented');
50
- }
51
- readPixelsToBufferWebGL(source, options) {
52
- throw new Error('not implemented');
53
- }
54
- setParametersWebGL(parameters) {
55
- throw new Error('not implemented');
56
- }
57
- getParametersWebGL(parameters) {
58
- throw new Error('not implemented');
59
- }
60
- withParametersWebGL(parameters, func) {
61
- throw new Error('not implemented');
62
- }
63
- clearWebGL(options) {
64
- throw new Error('not implemented');
65
- }
66
- _getBufferProps(props) {
67
- if (props instanceof ArrayBuffer || ArrayBuffer.isView(props)) {
68
- props = {
69
- data: props
70
- };
71
- }
72
- const newProps = {
73
- ...props
30
+ static defaultProps = {
31
+ id: null,
32
+ type: 'best-available',
33
+ canvas: null,
34
+ container: null,
35
+ manageState: true,
36
+ width: 800, // width are height are only used by headless gl
37
+ height: 600,
38
+ requestMaximalLimits: true,
39
+ debug: Boolean(log.get('debug')), // Instrument context (at the expense of performance)
40
+ spector: Boolean(log.get('spector')), // Initialize the SpectorJS WebGL debugger
41
+ break: [],
42
+ // alpha: undefined,
43
+ // depth: undefined,
44
+ // stencil: undefined,
45
+ // antialias: undefined,
46
+ // premultipliedAlpha: undefined,
47
+ // preserveDrawingBuffer: undefined,
48
+ // failIfMajorPerformanceCaveat: undefined
49
+ gl: null,
50
+ // Callbacks
51
+ onError: (error) => log.error(error.message)
74
52
  };
75
- if ((props.usage || 0) & Buffer.INDEX && !props.indexType) {
76
- if (props.data instanceof Uint32Array) {
77
- newProps.indexType = 'uint32';
78
- } else if (props.data instanceof Uint16Array) {
79
- newProps.indexType = 'uint16';
80
- } else {
81
- log.warn('indices buffer content must be of integer type')();
82
- }
83
- }
84
- return newProps;
85
- }
53
+ get [Symbol.toStringTag]() {
54
+ return 'Device';
55
+ }
56
+ static VERSION = VERSION;
57
+ constructor(props) {
58
+ this.props = { ...Device.defaultProps, ...props };
59
+ this.id = this.props.id || uid(this[Symbol.toStringTag].toLowerCase());
60
+ }
61
+ /** id of this device, primarily for debugging */
62
+ id;
63
+ /** stats */
64
+ statsManager = lumaStats;
65
+ /** A copy of the device props */
66
+ props;
67
+ /** Available for the application to store data on the device */
68
+ userData = {};
69
+ /** Used by other luma.gl modules to store data on the device */
70
+ _lumaData = {};
71
+ /** Check if a specific texture format is GPU compressed */
72
+ isTextureFormatCompressed(format) {
73
+ return isTextureFormatCompressed(format);
74
+ }
75
+ /**
76
+ * Trigger device loss.
77
+ * @returns `true` if context loss could actually be triggered.
78
+ * @note primarily intended for testing how application reacts to device loss
79
+ */
80
+ loseDevice() {
81
+ return false;
82
+ }
83
+ /** Returns the default / primary canvas context. Throws an error if no canvas context is available (a WebGPU compute device) */
84
+ getCanvasContext() {
85
+ if (!this.canvasContext) {
86
+ throw new Error('Device has no CanvasContext');
87
+ }
88
+ return this.canvasContext;
89
+ }
90
+ createTexture(props) {
91
+ // Signature: new Texture2D(gl, url | Promise)
92
+ if (props instanceof Promise || typeof props === 'string') {
93
+ props = { data: props };
94
+ }
95
+ return this._createTexture(props);
96
+ }
97
+ createCommandEncoder(props = {}) {
98
+ throw new Error('not implemented');
99
+ }
100
+ // WebGL specific HACKS - enables app to remove webgl import
101
+ // Use until we have a better way to handle these
102
+ /** @deprecated - will be removed - should use command encoder */
103
+ readPixelsToArrayWebGL(source, options) {
104
+ throw new Error('not implemented');
105
+ }
106
+ /** @deprecated - will be removed - should use command encoder */
107
+ readPixelsToBufferWebGL(source, options) {
108
+ throw new Error('not implemented');
109
+ }
110
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
111
+ setParametersWebGL(parameters) {
112
+ throw new Error('not implemented');
113
+ }
114
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
115
+ getParametersWebGL(parameters) {
116
+ throw new Error('not implemented');
117
+ }
118
+ /** @deprecated - will be removed - should use WebGPU parameters (pipeline) */
119
+ withParametersWebGL(parameters, func) {
120
+ throw new Error('not implemented');
121
+ }
122
+ /** @deprecated - will be removed - should use clear arguments in RenderPass */
123
+ clearWebGL(options) {
124
+ throw new Error('not implemented');
125
+ }
126
+ // IMPLEMENTATION
127
+ // Error Handling
128
+ /** Report unhandled device errors */
129
+ onError(error) {
130
+ this.props.onError(error);
131
+ }
132
+ _getBufferProps(props) {
133
+ if (props instanceof ArrayBuffer || ArrayBuffer.isView(props)) {
134
+ props = { data: props };
135
+ }
136
+ // TODO - fragile, as this is done before we merge with default options
137
+ // inside the Buffer constructor
138
+ const newProps = { ...props };
139
+ // Deduce indexType
140
+ if ((props.usage || 0) & Buffer.INDEX && !props.indexType) {
141
+ if (props.data instanceof Uint32Array) {
142
+ newProps.indexType = 'uint32';
143
+ }
144
+ else if (props.data instanceof Uint16Array) {
145
+ newProps.indexType = 'uint16';
146
+ }
147
+ else {
148
+ log.warn('indices buffer content must be of integer type')();
149
+ }
150
+ }
151
+ return newProps;
152
+ }
86
153
  }
87
- Device.defaultProps = {
88
- id: null,
89
- type: 'best-available',
90
- canvas: null,
91
- container: null,
92
- webgl2: true,
93
- webgl1: true,
94
- manageState: true,
95
- width: 800,
96
- height: 600,
97
- debug: Boolean(log.get('debug')),
98
- break: [],
99
- gl: null
100
- };
101
- Device.VERSION = VERSION;
102
- //# sourceMappingURL=device.js.map
@@ -1,5 +1,5 @@
1
- import type { Device } from '../device';
2
- import { Resource, ResourceProps } from './resource';
1
+ import type { Device } from "../device.js";
2
+ import { Resource, ResourceProps } from "./resource.js";
3
3
  export type BufferProps = ResourceProps & {
4
4
  /** Supply a handle to connect to an existing device-specific buffer */
5
5
  handle?: WebGLBuffer;
@@ -45,7 +45,7 @@ export declare abstract class Buffer extends Resource<BufferProps> {
45
45
  /** Read data asynchronoursly */
46
46
  abstract readAsync(byteOffset?: number, byteLength?: number): Promise<Uint8Array>;
47
47
  /** Read data synchronously. @note WebGL2 only */
48
- readSyncWebGL2(byteOffset?: number, byteLength?: number): Uint8Array;
48
+ readSyncWebGL(byteOffset?: number, byteLength?: number): Uint8Array;
49
49
  /** Max amount of debug data saved. Two vec4's */
50
50
  static DEBUG_DATA_MAX_LENGTH: number;
51
51
  /** A partial CPU-side copy of the data in this buffer, for debugging purposes */
@@ -1 +1 @@
1
- {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/buffer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG;IACxC,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC;IAC5C,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGhC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,0BAA0B;AAC1B,8BAAsB,MAAO,SAAQ,QAAQ,CAAC,WAAW,CAAC;IACxD,OAAgB,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAQjD;IAGF,MAAM,CAAC,QAAQ,SAAQ;IACvB,MAAM,CAAC,SAAS,SAAQ;IACxB,MAAM,CAAC,QAAQ,SAAU;IACzB,MAAM,CAAC,QAAQ,SAAU;IACzB,mBAAmB;IACnB,MAAM,CAAC,KAAK,SAAU;IACtB,oBAAoB;IACpB,MAAM,CAAC,MAAM,SAAU;IACvB,qBAAqB;IACrB,MAAM,CAAC,OAAO,SAAU;IACxB,qBAAqB;IACrB,MAAM,CAAC,OAAO,SAAU;IACxB,MAAM,CAAC,QAAQ,SAAU;IACzB,MAAM,CAAC,aAAa,SAAU;IAE9B,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAqB;IAEhE,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzC,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAkB9C,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAChE,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAEjF,iDAAiD;IACjD,cAAc,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU;IAIpE,iDAAiD;IACjD,MAAM,CAAC,qBAAqB,SAAM;IAClC,iFAAiF;IACjF,SAAS,EAAE,WAAW,CAAsB;IAE5C,oEAAoE;IACpE,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAWlH"}
1
+ {"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AAEnD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG;IACxC,uEAAuE;IACvE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+GAA+G;IAC/G,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAAC;IAC5C,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAGhC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,0BAA0B;AAC1B,8BAAsB,MAAO,SAAQ,QAAQ,CAAC,WAAW,CAAC;IACxD,OAAgB,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAQjD;IAGF,MAAM,CAAC,QAAQ,SAAQ;IACvB,MAAM,CAAC,SAAS,SAAQ;IACxB,MAAM,CAAC,QAAQ,SAAU;IACzB,MAAM,CAAC,QAAQ,SAAU;IACzB,mBAAmB;IACnB,MAAM,CAAC,KAAK,SAAU;IACtB,oBAAoB;IACpB,MAAM,CAAC,MAAM,SAAU;IACvB,qBAAqB;IACrB,MAAM,CAAC,OAAO,SAAU;IACxB,qBAAqB;IACrB,MAAM,CAAC,OAAO,SAAU;IACxB,MAAM,CAAC,QAAQ,SAAU;IACzB,MAAM,CAAC,aAAa,SAAU;IAE9B,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACzC,gCAAgC;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW;IAkB9C,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAChE,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAEjF,iDAAiD;IACjD,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU;IAMnE,iDAAiD;IACjD,MAAM,CAAC,qBAAqB,SAAM;IAClC,iFAAiF;IACjF,SAAS,EAAE,WAAW,CAAsB;IAE5C,oEAAoE;IACpE,SAAS,CAAC,aAAa,CACrB,IAAI,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,EAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI;CAcR"}