@luma.gl/core 9.1.9 → 9.2.0-alpha.3

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 (284) hide show
  1. package/dist/adapter/adapter.d.ts +14 -1
  2. package/dist/adapter/adapter.d.ts.map +1 -1
  3. package/dist/adapter/adapter.js +27 -0
  4. package/dist/adapter/adapter.js.map +1 -1
  5. package/dist/adapter/canvas-context.d.ts +101 -48
  6. package/dist/adapter/canvas-context.d.ts.map +1 -1
  7. package/dist/adapter/canvas-context.js +255 -153
  8. package/dist/adapter/canvas-context.js.map +1 -1
  9. package/dist/adapter/device.d.ts +112 -42
  10. package/dist/adapter/device.d.ts.map +1 -1
  11. package/dist/adapter/device.js +153 -56
  12. package/dist/adapter/device.js.map +1 -1
  13. package/dist/adapter/luma.d.ts +24 -22
  14. package/dist/adapter/luma.d.ts.map +1 -1
  15. package/dist/adapter/luma.js +76 -92
  16. package/dist/adapter/luma.js.map +1 -1
  17. package/dist/adapter/resources/buffer.d.ts +18 -12
  18. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  19. package/dist/adapter/resources/buffer.js +14 -18
  20. package/dist/adapter/resources/buffer.js.map +1 -1
  21. package/dist/adapter/resources/command-buffer.d.ts +1 -1
  22. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  23. package/dist/adapter/resources/command-buffer.js +3 -3
  24. package/dist/adapter/resources/command-buffer.js.map +1 -1
  25. package/dist/adapter/resources/command-encoder.d.ts +9 -2
  26. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  27. package/dist/adapter/resources/command-encoder.js +7 -4
  28. package/dist/adapter/resources/command-encoder.js.map +1 -1
  29. package/dist/adapter/resources/compute-pass.d.ts +2 -2
  30. package/dist/adapter/resources/compute-pass.d.ts.map +1 -1
  31. package/dist/adapter/resources/compute-pass.js +3 -3
  32. package/dist/adapter/resources/compute-pass.js.map +1 -1
  33. package/dist/adapter/resources/compute-pipeline.d.ts +1 -1
  34. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  35. package/dist/adapter/resources/compute-pipeline.js +7 -7
  36. package/dist/adapter/resources/compute-pipeline.js.map +1 -1
  37. package/dist/adapter/resources/external-texture.d.ts +1 -1
  38. package/dist/adapter/resources/external-texture.d.ts.map +1 -1
  39. package/dist/adapter/resources/external-texture.js +5 -5
  40. package/dist/adapter/resources/external-texture.js.map +1 -1
  41. package/dist/adapter/resources/framebuffer.d.ts +4 -4
  42. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  43. package/dist/adapter/resources/framebuffer.js +8 -9
  44. package/dist/adapter/resources/framebuffer.js.map +1 -1
  45. package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -1
  46. package/dist/adapter/resources/pipeline-layout.js +3 -0
  47. package/dist/adapter/resources/pipeline-layout.js.map +1 -1
  48. package/dist/adapter/resources/query-set.d.ts +1 -1
  49. package/dist/adapter/resources/query-set.d.ts.map +1 -1
  50. package/dist/adapter/resources/query-set.js +5 -5
  51. package/dist/adapter/resources/query-set.js.map +1 -1
  52. package/dist/adapter/resources/render-pass.d.ts +2 -2
  53. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  54. package/dist/adapter/resources/render-pass.js +10 -13
  55. package/dist/adapter/resources/render-pass.js.map +1 -1
  56. package/dist/adapter/resources/render-pipeline.d.ts +7 -9
  57. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  58. package/dist/adapter/resources/render-pipeline.js +17 -29
  59. package/dist/adapter/resources/render-pipeline.js.map +1 -1
  60. package/dist/adapter/resources/resource.d.ts +1 -0
  61. package/dist/adapter/resources/resource.d.ts.map +1 -1
  62. package/dist/adapter/resources/resource.js.map +1 -1
  63. package/dist/adapter/resources/sampler.d.ts.map +1 -1
  64. package/dist/adapter/resources/sampler.js +1 -3
  65. package/dist/adapter/resources/sampler.js.map +1 -1
  66. package/dist/adapter/resources/shader.d.ts +2 -2
  67. package/dist/adapter/resources/shader.d.ts.map +1 -1
  68. package/dist/adapter/resources/shader.js +14 -14
  69. package/dist/adapter/resources/shader.js.map +1 -1
  70. package/dist/adapter/resources/texture-view.d.ts +2 -2
  71. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  72. package/dist/adapter/resources/texture-view.js +7 -7
  73. package/dist/adapter/resources/texture-view.js.map +1 -1
  74. package/dist/adapter/resources/texture.d.ts +84 -135
  75. package/dist/adapter/resources/texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/texture.js +136 -152
  77. package/dist/adapter/resources/texture.js.map +1 -1
  78. package/dist/adapter/resources/vertex-array.d.ts +4 -2
  79. package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
  80. package/dist/adapter/resources/vertex-array.js +4 -7
  81. package/dist/adapter/resources/vertex-array.js.map +1 -1
  82. package/dist/adapter/types/attachments.d.ts +3 -3
  83. package/dist/adapter/types/attachments.d.ts.map +1 -1
  84. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  85. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  86. package/dist/adapter/types/parameters.d.ts +7 -3
  87. package/dist/adapter/types/parameters.d.ts.map +1 -1
  88. package/dist/adapter/types/parameters.js.map +1 -1
  89. package/dist/adapter/types/shader-layout.d.ts +5 -5
  90. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  91. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
  92. package/dist/adapter-utils/format-compiler-log.js +8 -0
  93. package/dist/adapter-utils/format-compiler-log.js.map +1 -1
  94. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +6 -5
  95. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  96. package/dist/adapter-utils/get-attribute-from-layouts.js +8 -7
  97. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  98. package/dist/dist.dev.js +1162 -851
  99. package/dist/dist.min.js +7 -6
  100. package/dist/image-utils/image-types.d.ts +19 -0
  101. package/dist/image-utils/image-types.d.ts.map +1 -0
  102. package/dist/image-utils/image-types.js +34 -0
  103. package/dist/image-utils/image-types.js.map +1 -0
  104. package/dist/index.cjs +1129 -819
  105. package/dist/index.cjs.map +4 -4
  106. package/dist/index.d.ts +17 -26
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +7 -12
  109. package/dist/index.js.map +1 -1
  110. package/dist/portable/uniform-block.d.ts +2 -2
  111. package/dist/portable/uniform-block.d.ts.map +1 -1
  112. package/dist/portable/uniform-buffer-layout.d.ts +4 -3
  113. package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
  114. package/dist/portable/uniform-buffer-layout.js +3 -2
  115. package/dist/portable/uniform-buffer-layout.js.map +1 -1
  116. package/dist/portable/uniform-store.d.ts +2 -2
  117. package/dist/portable/uniform-store.d.ts.map +1 -1
  118. package/dist/shadertypes/data-types/data-types.d.ts +32 -0
  119. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
  120. package/dist/{gpu-type-utils/texture-formats.js → shadertypes/data-types/data-types.js} +1 -1
  121. package/dist/shadertypes/data-types/data-types.js.map +1 -0
  122. package/dist/shadertypes/data-types/decode-data-types.d.ts +16 -0
  123. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
  124. package/dist/shadertypes/data-types/decode-data-types.js +74 -0
  125. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
  126. package/dist/shadertypes/data-types/decode-shader-types.d.ts +17 -0
  127. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
  128. package/dist/shadertypes/data-types/decode-shader-types.js +171 -0
  129. package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
  130. package/dist/shadertypes/data-types/shader-types.d.ts +45 -0
  131. package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
  132. package/dist/shadertypes/data-types/shader-types.js.map +1 -0
  133. package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
  134. package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
  135. package/dist/shadertypes/textures/pixel-utils.js +193 -0
  136. package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
  137. package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
  138. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
  139. package/dist/{gpu-type-utils/decode-texture-format.js → shadertypes/textures/texture-format-decoder.js} +52 -13
  140. package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
  141. package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
  142. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
  143. package/dist/{gpu-type-utils/texture-features.js → shadertypes/textures/texture-format-generics.js} +1 -1
  144. package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
  145. package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.d.ts +2 -3
  146. package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
  147. package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.js +42 -43
  148. package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
  149. package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
  150. package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
  151. package/dist/shadertypes/textures/texture-formats.js +58 -0
  152. package/dist/shadertypes/textures/texture-formats.js.map +1 -0
  153. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +18 -0
  154. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
  155. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +100 -0
  156. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
  157. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +27 -0
  158. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
  159. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
  160. package/dist/types.d.ts +4 -2
  161. package/dist/types.d.ts.map +1 -1
  162. package/dist/utils/promise-utils.d.ts +6 -0
  163. package/dist/utils/promise-utils.d.ts.map +1 -0
  164. package/dist/utils/promise-utils.js +15 -0
  165. package/dist/utils/promise-utils.js.map +1 -0
  166. package/package.json +2 -2
  167. package/src/adapter/adapter.ts +36 -1
  168. package/src/adapter/canvas-context.ts +321 -198
  169. package/src/adapter/device.ts +261 -110
  170. package/src/adapter/luma.ts +97 -113
  171. package/src/adapter/resources/buffer.ts +45 -28
  172. package/src/adapter/resources/command-buffer.ts +4 -4
  173. package/src/adapter/resources/command-encoder.ts +15 -6
  174. package/src/adapter/resources/compute-pass.ts +11 -11
  175. package/src/adapter/resources/compute-pipeline.ts +8 -8
  176. package/src/adapter/resources/external-texture.ts +6 -6
  177. package/src/adapter/resources/framebuffer.ts +14 -15
  178. package/src/adapter/resources/pipeline-layout.ts +4 -0
  179. package/src/adapter/resources/query-set.ts +6 -6
  180. package/src/adapter/resources/render-pass.ts +20 -23
  181. package/src/adapter/resources/render-pipeline.ts +36 -42
  182. package/src/adapter/resources/resource.ts +1 -0
  183. package/src/adapter/resources/sampler.ts +1 -4
  184. package/src/adapter/resources/shader.ts +15 -15
  185. package/src/adapter/resources/texture-view.ts +12 -12
  186. package/src/adapter/resources/texture.ts +206 -300
  187. package/src/adapter/resources/vertex-array.ts +9 -10
  188. package/src/adapter/types/attachments.ts +5 -5
  189. package/src/adapter/types/buffer-layout.ts +1 -1
  190. package/src/adapter/types/parameters.ts +16 -11
  191. package/src/adapter/types/shader-layout.ts +8 -5
  192. package/src/adapter-utils/format-compiler-log.ts +8 -0
  193. package/src/adapter-utils/get-attribute-from-layouts.ts +17 -12
  194. package/src/image-utils/image-types.ts +59 -0
  195. package/src/index.ts +67 -47
  196. package/src/portable/uniform-block.ts +2 -2
  197. package/src/portable/uniform-buffer-layout.ts +7 -5
  198. package/src/portable/uniform-store.ts +2 -2
  199. package/src/shadertypes/data-types/data-types.ts +96 -0
  200. package/src/shadertypes/data-types/decode-data-types.ts +91 -0
  201. package/src/shadertypes/data-types/decode-shader-types.ts +211 -0
  202. package/src/shadertypes/data-types/shader-types.ts +87 -0
  203. package/src/shadertypes/textures/pixel-utils.ts +239 -0
  204. package/src/{gpu-type-utils/decode-texture-format.ts → shadertypes/textures/texture-format-decoder.ts} +71 -20
  205. package/src/shadertypes/textures/texture-format-generics.ts +190 -0
  206. package/src/{gpu-type-utils → shadertypes/textures}/texture-format-table.ts +63 -56
  207. package/src/shadertypes/textures/texture-formats.ts +334 -0
  208. package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +124 -0
  209. package/src/shadertypes/vertex-arrays/vertex-formats.ts +91 -0
  210. package/src/types.ts +12 -5
  211. package/src/utils/promise-utils.ts +19 -0
  212. package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -12
  213. package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
  214. package/dist/adapter-utils/buffer-layout-helper.js +0 -41
  215. package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
  216. package/dist/adapter-utils/buffer-layout-order.d.ts +0 -4
  217. package/dist/adapter-utils/buffer-layout-order.d.ts.map +0 -1
  218. package/dist/adapter-utils/buffer-layout-order.js +0 -16
  219. package/dist/adapter-utils/buffer-layout-order.js.map +0 -1
  220. package/dist/gpu-type-utils/decode-attribute-type.d.ts +0 -20
  221. package/dist/gpu-type-utils/decode-attribute-type.d.ts.map +0 -1
  222. package/dist/gpu-type-utils/decode-attribute-type.js +0 -68
  223. package/dist/gpu-type-utils/decode-attribute-type.js.map +0 -1
  224. package/dist/gpu-type-utils/decode-data-type.d.ts +0 -16
  225. package/dist/gpu-type-utils/decode-data-type.d.ts.map +0 -1
  226. package/dist/gpu-type-utils/decode-data-type.js +0 -48
  227. package/dist/gpu-type-utils/decode-data-type.js.map +0 -1
  228. package/dist/gpu-type-utils/decode-shader-types.d.ts +0 -9
  229. package/dist/gpu-type-utils/decode-shader-types.d.ts.map +0 -1
  230. package/dist/gpu-type-utils/decode-shader-types.js +0 -42
  231. package/dist/gpu-type-utils/decode-shader-types.js.map +0 -1
  232. package/dist/gpu-type-utils/decode-texture-format.d.ts +0 -11
  233. package/dist/gpu-type-utils/decode-texture-format.d.ts.map +0 -1
  234. package/dist/gpu-type-utils/decode-texture-format.js.map +0 -1
  235. package/dist/gpu-type-utils/decode-vertex-format.d.ts +0 -22
  236. package/dist/gpu-type-utils/decode-vertex-format.d.ts.map +0 -1
  237. package/dist/gpu-type-utils/decode-vertex-format.js +0 -34
  238. package/dist/gpu-type-utils/decode-vertex-format.js.map +0 -1
  239. package/dist/gpu-type-utils/shader-types.d.ts +0 -21
  240. package/dist/gpu-type-utils/shader-types.d.ts.map +0 -1
  241. package/dist/gpu-type-utils/shader-types.js.map +0 -1
  242. package/dist/gpu-type-utils/texture-features.d.ts +0 -6
  243. package/dist/gpu-type-utils/texture-features.d.ts.map +0 -1
  244. package/dist/gpu-type-utils/texture-features.js.map +0 -1
  245. package/dist/gpu-type-utils/texture-format-capabilities.d.ts +0 -21
  246. package/dist/gpu-type-utils/texture-format-capabilities.d.ts.map +0 -1
  247. package/dist/gpu-type-utils/texture-format-capabilities.js +0 -27
  248. package/dist/gpu-type-utils/texture-format-capabilities.js.map +0 -1
  249. package/dist/gpu-type-utils/texture-format-info.d.ts +0 -38
  250. package/dist/gpu-type-utils/texture-format-info.d.ts.map +0 -1
  251. package/dist/gpu-type-utils/texture-format-info.js +0 -5
  252. package/dist/gpu-type-utils/texture-format-info.js.map +0 -1
  253. package/dist/gpu-type-utils/texture-format-table.d.ts.map +0 -1
  254. package/dist/gpu-type-utils/texture-format-table.js.map +0 -1
  255. package/dist/gpu-type-utils/texture-formats.d.ts +0 -11
  256. package/dist/gpu-type-utils/texture-formats.d.ts.map +0 -1
  257. package/dist/gpu-type-utils/texture-formats.js.map +0 -1
  258. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts +0 -10
  259. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts.map +0 -1
  260. package/dist/gpu-type-utils/vertex-format-from-attribute.js +0 -91
  261. package/dist/gpu-type-utils/vertex-format-from-attribute.js.map +0 -1
  262. package/dist/gpu-type-utils/vertex-formats.d.ts +0 -14
  263. package/dist/gpu-type-utils/vertex-formats.d.ts.map +0 -1
  264. package/dist/gpu-type-utils/vertex-formats.js.map +0 -1
  265. package/dist/gpu-type-utils/wgsl-utils.d.ts +0 -4
  266. package/dist/gpu-type-utils/wgsl-utils.d.ts.map +0 -1
  267. package/dist/gpu-type-utils/wgsl-utils.js +0 -20
  268. package/dist/gpu-type-utils/wgsl-utils.js.map +0 -1
  269. package/src/adapter-utils/buffer-layout-helper.ts +0 -52
  270. package/src/adapter-utils/buffer-layout-order.ts +0 -27
  271. package/src/gpu-type-utils/decode-attribute-type.ts +0 -96
  272. package/src/gpu-type-utils/decode-data-type.ts +0 -66
  273. package/src/gpu-type-utils/decode-shader-types.ts +0 -49
  274. package/src/gpu-type-utils/decode-vertex-format.ts +0 -53
  275. package/src/gpu-type-utils/shader-types.ts +0 -78
  276. package/src/gpu-type-utils/texture-features.ts +0 -23
  277. package/src/gpu-type-utils/texture-format-capabilities.ts +0 -53
  278. package/src/gpu-type-utils/texture-format-info.ts +0 -42
  279. package/src/gpu-type-utils/texture-formats.ts +0 -161
  280. package/src/gpu-type-utils/vertex-format-from-attribute.ts +0 -114
  281. package/src/gpu-type-utils/vertex-formats.ts +0 -90
  282. package/src/gpu-type-utils/wgsl-utils.ts +0 -22
  283. /package/dist/{gpu-type-utils → shadertypes/data-types}/shader-types.js +0 -0
  284. /package/dist/{gpu-type-utils → shadertypes/vertex-arrays}/vertex-formats.js +0 -0
@@ -4,8 +4,21 @@ import { Device, DeviceProps } from "./device.js";
4
4
  */
5
5
  export declare abstract class Adapter {
6
6
  abstract type: string;
7
+ /** Check if this backend is supported */
7
8
  abstract isSupported(): boolean;
9
+ /** Check if the given handle is a valid device handle for this backend */
10
+ abstract isDeviceHandle(handle: unknown): boolean;
11
+ /** Create a new device for this backend */
8
12
  abstract create(props: DeviceProps): Promise<Device>;
9
- abstract attach?(handle: unknown): Promise<Device>;
13
+ /** Attach a Device to a valid handle for this backend (GPUDevice, WebGL2RenderingContext etc) */
14
+ abstract attach(handle: unknown, props: DeviceProps): Promise<Device>;
15
+ /**
16
+ * Page load promise
17
+ * Resolves when the DOM is loaded.
18
+ * @note Since are be limitations on number of `load` event listeners,
19
+ * it is recommended avoid calling this accessor until actually needed.
20
+ * I.e. we don't call it unless you know that you will be looking up a string in the DOM.
21
+ */
22
+ get pageLoaded(): Promise<void>;
10
23
  }
11
24
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,oBAAiB;AAE7C;;GAEG;AACH,8BAAsB,OAAO;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,IAAI,OAAO;IAC/B,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CACnD"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,oBAAiB;AAE7C;;GAEG;AACH,8BAAsB,OAAO;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,WAAW,IAAI,OAAO;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IACjD,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IACpD,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAErE;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAE9B;CACF"}
@@ -1,9 +1,36 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
+ import { isBrowser } from '@probe.gl/env';
4
5
  /**
5
6
  * Create and attach devices for a specific backend.
6
7
  */
7
8
  export class Adapter {
9
+ /**
10
+ * Page load promise
11
+ * Resolves when the DOM is loaded.
12
+ * @note Since are be limitations on number of `load` event listeners,
13
+ * it is recommended avoid calling this accessor until actually needed.
14
+ * I.e. we don't call it unless you know that you will be looking up a string in the DOM.
15
+ */
16
+ get pageLoaded() {
17
+ return getPageLoadPromise();
18
+ }
19
+ }
20
+ // HELPER FUNCTIONS
21
+ const isPage = isBrowser() && typeof document !== 'undefined';
22
+ const isPageLoaded = () => isPage && document.readyState === 'complete';
23
+ let pageLoadPromise = null;
24
+ /** Returns a promise that resolves when the page is loaded */
25
+ function getPageLoadPromise() {
26
+ if (!pageLoadPromise) {
27
+ if (isPageLoaded() || typeof window === 'undefined') {
28
+ pageLoadPromise = Promise.resolve();
29
+ }
30
+ else {
31
+ pageLoadPromise = new Promise(resolve => window.addEventListener('load', () => resolve()));
32
+ }
33
+ }
34
+ return pageLoadPromise;
8
35
  }
9
36
  //# sourceMappingURL=adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAIpC;;GAEG;AACH,MAAM,OAAgB,OAAO;CAM5B"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAGxC;;GAEG;AACH,MAAM,OAAgB,OAAO;IAY3B;;;;;;OAMG;IACH,IAAI,UAAU;QACZ,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;CACF;AAED,mBAAmB;AAEnB,MAAM,MAAM,GAAY,SAAS,EAAE,IAAI,OAAO,QAAQ,KAAK,WAAW,CAAC;AACvE,MAAM,YAAY,GAAkB,GAAG,EAAE,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,CAAC;AACvF,IAAI,eAAe,GAAyB,IAAI,CAAC;AAEjD,8DAA8D;AAC9D,SAAS,kBAAkB;IACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,IAAI,YAAY,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YACpD,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import type { Device } from "./device.js";
2
2
  import type { Framebuffer } from "./resources/framebuffer.js";
3
- import type { TextureFormat } from "../gpu-type-utils/texture-formats.js";
3
+ import type { TextureFormatDepthStencil } from "../shadertypes/textures/texture-formats.js";
4
4
  /** Properties for a CanvasContext */
5
5
  export type CanvasContextProps = {
6
+ /** Identifier, for debugging */
7
+ id?: string;
6
8
  /** If a canvas not supplied, one will be created and added to the DOM. If a string, a canvas with that id will be looked up in the DOM */
7
9
  canvas?: HTMLCanvasElement | OffscreenCanvas | string | null;
8
10
  /** If new canvas is created, it will be created in the specified container, otherwise is appended as a child of document.body */
@@ -13,96 +15,147 @@ export type CanvasContextProps = {
13
15
  height?: number;
14
16
  /** Visibility (only used if new canvas is created). */
15
17
  visible?: boolean;
16
- /** Whether to apply a device pixels scale factor (`true` uses browser DPI) */
17
- useDevicePixels?: boolean | number;
18
- /** Whether to track window resizes */
18
+ /** Whether to size the drawing buffer to the pixel size during auto resize */
19
+ useDevicePixels?: boolean;
20
+ /** Whether to track window resizes. */
19
21
  autoResize?: boolean;
20
- /** https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#alphamode */
22
+ /** @see https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#alphamode */
21
23
  alphaMode?: 'opaque' | 'premultiplied';
22
- /** https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#colorspace */
24
+ /** @see https://developer.mozilla.org/en-US/docs/Web/API/GPUCanvasContext/configure#colorspace */
23
25
  colorSpace?: 'srgb';
26
+ /** Whether to track position changes. Calls this.device.onPositionChange */
27
+ trackPosition?: boolean;
24
28
  };
25
29
  /**
26
30
  * Manages a canvas. Supports both HTML or offscreen canvas
27
31
  * - Creates a new canvas or looks up a canvas from the DOM
28
32
  * - Provides check for DOM loaded
29
- * @todo commit(): https://github.com/w3ctag/design-reviews/issues/288
30
- * @todo transferControlToOffscreen: https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
33
+ * @todo commit() @see https://github.com/w3ctag/design-reviews/issues/288
34
+ * @todo transferControlToOffscreen: @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/transferControlToOffscreen
31
35
  */
32
36
  export declare abstract class CanvasContext {
37
+ static isHTMLCanvas(canvas: unknown): canvas is HTMLCanvasElement;
38
+ static isOffscreenCanvas(canvas: unknown): canvas is OffscreenCanvas;
33
39
  static defaultProps: Required<CanvasContextProps>;
34
40
  abstract readonly device: Device;
41
+ abstract readonly handle: unknown;
35
42
  readonly id: string;
36
43
  readonly props: Required<CanvasContextProps>;
37
44
  readonly canvas: HTMLCanvasElement | OffscreenCanvas;
45
+ /** Handle to HTML canvas */
38
46
  readonly htmlCanvas?: HTMLCanvasElement;
47
+ /** Handle to wrapped OffScreenCanvas */
39
48
  readonly offscreenCanvas?: OffscreenCanvas;
40
49
  readonly type: 'html-canvas' | 'offscreen-canvas' | 'node';
41
- /** Format of returned textures: "bgra8unorm", "rgba8unorm" */
42
- abstract readonly format: TextureFormat;
43
- /** Default stencil format for depth textures */
44
- abstract readonly depthStencilFormat: TextureFormat;
45
- width: number;
46
- height: number;
47
- readonly resizeObserver: ResizeObserver | undefined;
48
- /** State used by luma.gl classes: TODO - move to canvasContext*/
49
- readonly _canvasSizeInfo: {
50
- clientWidth: number;
51
- clientHeight: number;
52
- devicePixelRatio: number;
50
+ /** Promise that resolved once the resize observer has updated the pixel size */
51
+ initialized: Promise<void>;
52
+ isInitialized: boolean;
53
+ /** Visibility is automatically updated (via an IntersectionObserver) */
54
+ isVisible: boolean;
55
+ /** Width of canvas in CSS units (tracked by a ResizeObserver) */
56
+ cssWidth: number;
57
+ /** Height of canvas in CSS units (tracked by a ResizeObserver) */
58
+ cssHeight: number;
59
+ /** Device pixel ratio. Automatically updated via media queries */
60
+ devicePixelRatio: number;
61
+ /** Exact width of canvas in physical pixels (tracked by a ResizeObserver) */
62
+ devicePixelWidth: number;
63
+ /** Exact height of canvas in physical pixels (tracked by a ResizeObserver) */
64
+ devicePixelHeight: number;
65
+ /** Width of drawing buffer: automatically tracks this.pixelWidth if props.autoResize is true */
66
+ drawingBufferWidth: number;
67
+ /** Height of drawing buffer: automatically tracks this.pixelHeight if props.autoResize is true */
68
+ drawingBufferHeight: number;
69
+ protected _initializedResolvers: {
70
+ promise: Promise<void>;
71
+ resolve: (t: void) => void;
72
+ reject: (error: Error) => void;
53
73
  };
74
+ protected readonly _resizeObserver: ResizeObserver | undefined;
75
+ protected readonly _intersectionObserver: IntersectionObserver | undefined;
76
+ protected _position: [number, number];
77
+ protected destroyed: boolean;
54
78
  abstract get [Symbol.toStringTag](): string;
55
79
  toString(): string;
56
80
  constructor(props?: CanvasContextProps);
81
+ destroy(): void;
57
82
  /** Returns a framebuffer with properly resized current 'swap chain' textures */
58
- abstract getCurrentFramebuffer(): Framebuffer;
83
+ abstract getCurrentFramebuffer(options?: {
84
+ depthStencilFormat?: TextureFormatDepthStencil | false;
85
+ }): Framebuffer;
59
86
  /**
60
- * Returns the current DPR, if props.useDevicePixels is true
61
- * Device refers to physical
87
+ * Returns the size covered by the canvas in CSS pixels
88
+ * @note This can be different from the actual device pixel size of a canvas due to DPR scaling, and rounding to integer pixels
89
+ * @note This is independent of the canvas' internal drawing buffer size (.width, .height).
62
90
  */
63
- getDevicePixelRatio(useDevicePixels?: boolean | number): number;
91
+ getCSSSize(): [number, number];
92
+ getPosition(): [number, number];
64
93
  /**
65
- * Returns the size of drawing buffer in device pixels.
66
- * @note This can be different from the 'CSS' size of a canvas, and also from the
67
- * canvas' internal drawing buffer size (.width, .height).
68
- * This is the size required to cover the canvas, adjusted for DPR
94
+ * Returns the size covered by the canvas in actual device pixels.
95
+ * @note This can be different from the 'CSS' size of a canvas due to DPR scaling, and rounding to integer pixels
96
+ * @note This is independent of the canvas' internal drawing buffer size (.width, .height).
69
97
  */
70
- getPixelSize(): [number, number];
71
- getAspect(): number;
98
+ getDevicePixelSize(): [number, number];
99
+ /** Get the drawing buffer size (number of pixels GPU is rendering into, can be different from CSS size) */
100
+ getDrawingBufferSize(): [number, number];
101
+ /** Returns the biggest allowed framebuffer size. @todo Allow the application to limit this? */
102
+ getMaxDrawingBufferSize(): [number, number];
103
+ /** Update the canvas drawing buffer size. Called automatically if props.autoResize is true. */
104
+ setDrawingBufferSize(width: number, height: number): void;
72
105
  /**
73
- * Returns multiplier need to convert CSS size to Device size
106
+ * Returns the current DPR (number of physical pixels per CSS pixel), if props.useDevicePixels is true
107
+ * @note This can be a fractional (non-integer) number, e.g. when the user zooms in the browser.
108
+ * @note This function handles the non-HTML canvas cases
74
109
  */
75
- cssToDeviceRatio(): number;
110
+ getDevicePixelRatio(): number;
76
111
  /**
77
112
  * Maps CSS pixel position to device pixel position
78
113
  */
79
- cssToDevicePixels(cssPixel: number[], yInvert?: boolean): {
114
+ cssToDevicePixels(cssPixel: [number, number], yInvert?: boolean): {
80
115
  x: number;
81
116
  y: number;
82
117
  width: number;
83
118
  height: number;
84
119
  };
120
+ /** @deprecated - use .getDevicePixelSize() */
121
+ getPixelSize(): [number, number];
122
+ /** @deprecated - TODO which values should we use for aspect */
123
+ getAspect(): number;
124
+ /** @deprecated Returns multiplier need to convert CSS size to Device size */
125
+ cssToDeviceRatio(): number;
126
+ /** @deprecated Use canvasContext.setDrawingBufferSize() */
127
+ resize(size: {
128
+ width: number;
129
+ height: number;
130
+ }): void;
85
131
  /**
86
- * Use devicePixelRatio to set canvas width and height
87
- * @note this is a raw port of luma.gl v8 code. Might be worth a review
132
+ * Performs platform specific updates (WebGPU vs WebGL)
133
+ * Can be called after changes to size or props,
134
+ * to give implementation an opportunity to update configurations.
88
135
  */
89
- setDevicePixelRatio(devicePixelRatio: number, options?: {
90
- width?: number;
91
- height?: number;
92
- }): void;
93
- /** @todo Major hack done to port the CSS methods above, base canvas context should not depend on WebGL */
94
- getDrawingBufferSize(): [number, number];
95
- abstract resize(options?: {
96
- width?: number;
97
- height?: number;
98
- useDevicePixels?: boolean | number;
99
- }): void;
100
- /** Perform platform specific updates (WebGPU vs WebGL) */
101
- protected abstract update(): void;
136
+ protected abstract _updateDevice(): void;
102
137
  /**
103
138
  * Allows subclass constructor to override the canvas id for auto created canvases.
104
139
  * This can really help when debugging DOM in apps that create multiple devices
105
140
  */
106
141
  protected _setAutoCreatedCanvasId(id: string): void;
142
+ /** reacts to an observed intersection */
143
+ protected _handleIntersection(entries: IntersectionObserverEntry[]): void;
144
+ /**
145
+ * Reacts to an observed resize by using the most accurate pixel size information the browser can provide
146
+ * @see https://web.dev/articles/device-pixel-content-box
147
+ * @see https://webgpufundamentals.org/webgpu/lessons/webgpu-resizing-the-canvas.html
148
+ */
149
+ protected _handleResize(entries: ResizeObserverEntry[]): void;
150
+ /** Monitor DPR changes */
151
+ _observeDevicePixelRatio(): void;
152
+ /** Start tracking positions with a timer */
153
+ _trackPosition(intervalMs?: number): void;
154
+ /**
155
+ * Calculated the absolute position of the canvas
156
+ * @note - getBoundingClientRect() is normally cheap but can be expensive
157
+ * if called before browser has finished a reflow. Should not be the case here.
158
+ */
159
+ updatePosition(): void;
107
160
  }
108
161
  //# sourceMappingURL=canvas-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}