@luma.gl/core 9.0.11 → 9.1.0-alpha.1

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 (237) hide show
  1. package/LICENSE +34 -0
  2. package/dist/adapter/canvas-context.d.ts +5 -0
  3. package/dist/adapter/canvas-context.d.ts.map +1 -1
  4. package/dist/adapter/device.d.ts +10 -8
  5. package/dist/adapter/device.d.ts.map +1 -1
  6. package/dist/adapter/device.js +20 -18
  7. package/dist/{lib → adapter}/luma.d.ts +2 -2
  8. package/dist/adapter/luma.d.ts.map +1 -0
  9. package/dist/{lib → adapter}/luma.js +7 -7
  10. package/dist/adapter/resources/buffer.js +5 -5
  11. package/dist/adapter/resources/compute-pipeline.d.ts +2 -0
  12. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  13. package/dist/adapter/resources/compute-pipeline.js +3 -0
  14. package/dist/adapter/resources/external-texture.d.ts +1 -1
  15. package/dist/adapter/resources/external-texture.d.ts.map +1 -1
  16. package/dist/adapter/resources/external-texture.js +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/framebuffer.js +2 -83
  20. package/dist/adapter/resources/render-pass.d.ts +2 -2
  21. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  22. package/dist/adapter/resources/render-pipeline.d.ts +2 -5
  23. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  24. package/dist/adapter/resources/resource.d.ts +3 -3
  25. package/dist/adapter/resources/resource.d.ts.map +1 -1
  26. package/dist/adapter/resources/resource.js +1 -1
  27. package/dist/adapter/resources/shader.d.ts +5 -2
  28. package/dist/adapter/resources/shader.d.ts.map +1 -1
  29. package/dist/adapter/resources/shader.js +15 -9
  30. package/dist/adapter/resources/texture-view.d.ts +1 -1
  31. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  32. package/dist/adapter/resources/texture.d.ts +111 -49
  33. package/dist/adapter/resources/texture.d.ts.map +1 -1
  34. package/dist/adapter/resources/texture.js +96 -12
  35. package/dist/adapter/resources/transform-feedback.d.ts +1 -1
  36. package/dist/adapter/resources/transform-feedback.d.ts.map +1 -1
  37. package/dist/adapter/resources/vertex-array.d.ts +1 -1
  38. package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
  39. package/dist/adapter/resources/vertex-array.js +6 -2
  40. package/dist/adapter/types/{types.d.ts → attachments.d.ts} +5 -16
  41. package/dist/adapter/types/attachments.d.ts.map +1 -0
  42. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  43. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  44. package/dist/adapter/types/compiler-message.d.ts.map +1 -0
  45. package/dist/adapter/types/parameters.d.ts +2 -6
  46. package/dist/adapter/types/parameters.d.ts.map +1 -1
  47. package/dist/adapter/types/shader-layout.d.ts +23 -3
  48. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  49. package/dist/adapter/types/uniforms.d.ts +4 -0
  50. package/dist/adapter/types/uniforms.d.ts.map +1 -0
  51. package/dist/{lib/compiler-log → adapter-utils}/format-compiler-log.d.ts +1 -1
  52. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -0
  53. package/dist/{adapter/attribute-utils → adapter-utils}/get-attribute-from-layouts.d.ts +4 -11
  54. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -0
  55. package/dist/{adapter/attribute-utils → adapter-utils}/get-attribute-from-layouts.js +10 -30
  56. package/dist/adapter-utils/is-uniform-value.d.ts +3 -0
  57. package/dist/adapter-utils/is-uniform-value.d.ts.map +1 -0
  58. package/dist/adapter-utils/is-uniform-value.js +7 -0
  59. package/dist/dist.dev.js +266 -588
  60. package/dist/dist.min.js +4 -4
  61. package/dist/{adapter/type-utils → gpu-type-utils}/decode-attribute-type.d.ts +3 -3
  62. package/dist/gpu-type-utils/decode-attribute-type.d.ts.map +1 -0
  63. package/dist/{adapter/type-utils → gpu-type-utils}/decode-data-type.d.ts +1 -1
  64. package/dist/gpu-type-utils/decode-data-type.d.ts.map +1 -0
  65. package/dist/{adapter/type-utils → gpu-type-utils}/decode-shader-types.d.ts +1 -1
  66. package/dist/gpu-type-utils/decode-shader-types.d.ts.map +1 -0
  67. package/dist/{adapter/type-utils → gpu-type-utils}/decode-shader-types.js +0 -2
  68. package/dist/{adapter/type-utils → gpu-type-utils}/decode-texture-format.d.ts +2 -2
  69. package/dist/gpu-type-utils/decode-texture-format.d.ts.map +1 -0
  70. package/dist/{adapter/type-utils → gpu-type-utils}/decode-vertex-format.d.ts +1 -1
  71. package/dist/gpu-type-utils/decode-vertex-format.d.ts.map +1 -0
  72. package/dist/gpu-type-utils/shader-types.d.ts.map +1 -0
  73. package/dist/{adapter/types → gpu-type-utils}/texture-formats.d.ts +1 -1
  74. package/dist/gpu-type-utils/texture-formats.d.ts.map +1 -0
  75. package/dist/{adapter/type-utils → gpu-type-utils}/vertex-format-from-attribute.d.ts +2 -2
  76. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts.map +1 -0
  77. package/dist/gpu-type-utils/vertex-formats.d.ts.map +1 -0
  78. package/dist/{adapter/type-utils → gpu-type-utils}/wgsl-utils.d.ts +1 -1
  79. package/dist/gpu-type-utils/wgsl-utils.d.ts.map +1 -0
  80. package/dist/index.cjs +190 -411
  81. package/dist/index.cjs.map +4 -4
  82. package/dist/index.d.ts +28 -42
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +19 -36
  85. package/dist/init.js +1 -1
  86. package/dist/{lib/uniforms → portable}/uniform-block.d.ts +3 -3
  87. package/dist/portable/uniform-block.d.ts.map +1 -0
  88. package/dist/{lib/uniforms → portable}/uniform-block.js +2 -2
  89. package/dist/{lib/uniforms → portable}/uniform-buffer-layout.d.ts +2 -2
  90. package/dist/portable/uniform-buffer-layout.d.ts.map +1 -0
  91. package/dist/{lib/uniforms → portable}/uniform-buffer-layout.js +6 -7
  92. package/dist/{lib/uniforms → portable}/uniform-store.d.ts +4 -4
  93. package/dist/portable/uniform-store.d.ts.map +1 -0
  94. package/dist/{lib/uniforms → portable}/uniform-store.js +11 -9
  95. package/dist/types.d.ts +0 -10
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/utils/array-equal.d.ts.map +1 -1
  98. package/dist/utils/array-equal.js +6 -7
  99. package/dist/utils/array-utils-flat.d.ts +1 -7
  100. package/dist/utils/array-utils-flat.d.ts.map +1 -1
  101. package/dist/utils/array-utils-flat.js +0 -23
  102. package/dist/utils/is-array.d.ts +2 -2
  103. package/dist/utils/is-array.d.ts.map +1 -1
  104. package/dist/utils/is-array.js +2 -2
  105. package/dist/utils/uid.d.ts +7 -0
  106. package/dist/utils/uid.d.ts.map +1 -0
  107. package/dist/utils/{utils.js → uid.js} +0 -11
  108. package/package.json +5 -5
  109. package/src/adapter/canvas-context.ts +6 -0
  110. package/src/adapter/device.ts +34 -31
  111. package/src/{lib → adapter}/luma.ts +9 -9
  112. package/src/adapter/resources/buffer.ts +5 -5
  113. package/src/adapter/resources/command-encoder.ts +1 -1
  114. package/src/adapter/resources/compute-pass.ts +3 -3
  115. package/src/adapter/resources/compute-pipeline.ts +6 -3
  116. package/src/adapter/resources/external-texture.ts +2 -2
  117. package/src/adapter/resources/framebuffer.ts +5 -92
  118. package/src/adapter/resources/query-set.ts +2 -2
  119. package/src/adapter/resources/render-pass.ts +11 -7
  120. package/src/adapter/resources/render-pipeline.ts +3 -6
  121. package/src/adapter/resources/resource.ts +7 -7
  122. package/src/adapter/resources/shader.ts +18 -11
  123. package/src/adapter/resources/texture-view.ts +5 -5
  124. package/src/adapter/resources/texture.ts +226 -77
  125. package/src/adapter/resources/transform-feedback.ts +1 -1
  126. package/src/adapter/resources/vertex-array.ts +7 -3
  127. package/src/adapter/types/{types.ts → attachments.ts} +8 -17
  128. package/src/adapter/types/buffer-layout.ts +1 -1
  129. package/src/adapter/types/parameters.ts +10 -14
  130. package/src/adapter/types/shader-layout.ts +31 -29
  131. package/src/adapter/types/uniforms.ts +10 -0
  132. package/src/{lib/compiler-log → adapter-utils}/format-compiler-log.ts +1 -1
  133. package/src/{adapter/attribute-utils → adapter-utils}/get-attribute-from-layouts.ts +18 -42
  134. package/src/adapter-utils/is-uniform-value.ts +10 -0
  135. package/src/{adapter/type-utils → gpu-type-utils}/decode-attribute-type.ts +3 -3
  136. package/src/{adapter/type-utils → gpu-type-utils}/decode-data-type.ts +1 -1
  137. package/src/{adapter/type-utils → gpu-type-utils}/decode-shader-types.ts +1 -3
  138. package/src/{adapter/type-utils → gpu-type-utils}/decode-texture-format.ts +2 -2
  139. package/src/{adapter/type-utils → gpu-type-utils}/decode-vertex-format.ts +1 -1
  140. package/src/{adapter/types → gpu-type-utils}/texture-formats.ts +1 -1
  141. package/src/{adapter/type-utils → gpu-type-utils}/vertex-format-from-attribute.ts +2 -2
  142. package/src/{adapter/type-utils → gpu-type-utils}/wgsl-utils.ts +1 -1
  143. package/src/index.ts +69 -84
  144. package/src/{lib/uniforms → portable}/uniform-block.ts +5 -5
  145. package/src/{lib/uniforms → portable}/uniform-buffer-layout.ts +9 -9
  146. package/src/{lib/uniforms → portable}/uniform-store.ts +14 -12
  147. package/src/types.ts +0 -12
  148. package/src/utils/array-equal.ts +6 -7
  149. package/src/utils/array-utils-flat.ts +1 -31
  150. package/src/utils/is-array.ts +4 -4
  151. package/src/utils/{utils.ts → uid.ts} +0 -12
  152. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts.map +0 -1
  153. package/dist/adapter/type-utils/decode-attribute-type.d.ts.map +0 -1
  154. package/dist/adapter/type-utils/decode-data-type.d.ts.map +0 -1
  155. package/dist/adapter/type-utils/decode-shader-types.d.ts.map +0 -1
  156. package/dist/adapter/type-utils/decode-texture-format.d.ts.map +0 -1
  157. package/dist/adapter/type-utils/decode-vertex-format.d.ts.map +0 -1
  158. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts.map +0 -1
  159. package/dist/adapter/type-utils/wgsl-utils.d.ts.map +0 -1
  160. package/dist/adapter/types/accessor.d.ts +0 -23
  161. package/dist/adapter/types/accessor.d.ts.map +0 -1
  162. package/dist/adapter/types/shader-types.d.ts.map +0 -1
  163. package/dist/adapter/types/texture-formats.d.ts.map +0 -1
  164. package/dist/adapter/types/types.d.ts.map +0 -1
  165. package/dist/adapter/types/vertex-formats.d.ts.map +0 -1
  166. package/dist/lib/compiler-log/compiler-message.d.ts.map +0 -1
  167. package/dist/lib/compiler-log/format-compiler-log.d.ts.map +0 -1
  168. package/dist/lib/compiler-log/get-shader-info.d.ts +0 -9
  169. package/dist/lib/compiler-log/get-shader-info.d.ts.map +0 -1
  170. package/dist/lib/compiler-log/get-shader-info.js +0 -29
  171. package/dist/lib/luma.d.ts.map +0 -1
  172. package/dist/lib/uniforms/uniform-block.d.ts.map +0 -1
  173. package/dist/lib/uniforms/uniform-buffer-layout.d.ts.map +0 -1
  174. package/dist/lib/uniforms/uniform-store.d.ts.map +0 -1
  175. package/dist/lib/uniforms/uniform.d.ts +0 -10
  176. package/dist/lib/uniforms/uniform.d.ts.map +0 -1
  177. package/dist/lib/uniforms/uniform.js +0 -20
  178. package/dist/utils/assert.d.ts +0 -2
  179. package/dist/utils/assert.d.ts.map +0 -1
  180. package/dist/utils/assert.js +0 -10
  181. package/dist/utils/cast.d.ts +0 -3
  182. package/dist/utils/cast.d.ts.map +0 -1
  183. package/dist/utils/cast.js +0 -7
  184. package/dist/utils/check-props.d.ts +0 -7
  185. package/dist/utils/check-props.d.ts.map +0 -1
  186. package/dist/utils/check-props.js +0 -36
  187. package/dist/utils/deep-equal.d.ts +0 -9
  188. package/dist/utils/deep-equal.d.ts.map +0 -1
  189. package/dist/utils/deep-equal.js +0 -50
  190. package/dist/utils/format-value.d.ts +0 -7
  191. package/dist/utils/format-value.d.ts.map +0 -1
  192. package/dist/utils/format-value.js +0 -39
  193. package/dist/utils/load-file.d.ts +0 -35
  194. package/dist/utils/load-file.d.ts.map +0 -1
  195. package/dist/utils/load-file.js +0 -74
  196. package/dist/utils/random.d.ts +0 -5
  197. package/dist/utils/random.d.ts.map +0 -1
  198. package/dist/utils/random.js +0 -18
  199. package/dist/utils/request-animation-frame.d.ts +0 -3
  200. package/dist/utils/request-animation-frame.d.ts.map +0 -1
  201. package/dist/utils/request-animation-frame.js +0 -16
  202. package/dist/utils/stub-methods.d.ts +0 -2
  203. package/dist/utils/stub-methods.d.ts.map +0 -1
  204. package/dist/utils/stub-methods.js +0 -19
  205. package/dist/utils/utils.d.ts +0 -9
  206. package/dist/utils/utils.d.ts.map +0 -1
  207. package/src/adapter/types/accessor.ts +0 -37
  208. package/src/lib/compiler-log/get-shader-info.ts +0 -42
  209. package/src/lib/uniforms/uniform.ts +0 -31
  210. package/src/utils/assert.ts +0 -11
  211. package/src/utils/cast.ts +0 -8
  212. package/src/utils/check-props.ts +0 -82
  213. package/src/utils/deep-equal.ts +0 -51
  214. package/src/utils/format-value.ts +0 -47
  215. package/src/utils/load-file.ts +0 -91
  216. package/src/utils/random.ts +0 -21
  217. package/src/utils/request-animation-frame.ts +0 -19
  218. package/src/utils/stub-methods.ts +0 -29
  219. /package/dist/adapter/types/{accessor.js → attachments.js} +0 -0
  220. /package/dist/{lib/compiler-log → adapter/types}/compiler-message.d.ts +0 -0
  221. /package/dist/{lib/compiler-log → adapter/types}/compiler-message.js +0 -0
  222. /package/dist/adapter/types/{shader-types.js → uniforms.js} +0 -0
  223. /package/dist/{lib/compiler-log → adapter-utils}/format-compiler-log.js +0 -0
  224. /package/dist/{adapter/type-utils → gpu-type-utils}/decode-attribute-type.js +0 -0
  225. /package/dist/{adapter/type-utils → gpu-type-utils}/decode-data-type.js +0 -0
  226. /package/dist/{adapter/type-utils → gpu-type-utils}/decode-texture-format.js +0 -0
  227. /package/dist/{adapter/type-utils → gpu-type-utils}/decode-vertex-format.js +0 -0
  228. /package/dist/{adapter/types → gpu-type-utils}/shader-types.d.ts +0 -0
  229. /package/dist/{adapter/types/texture-formats.js → gpu-type-utils/shader-types.js} +0 -0
  230. /package/dist/{adapter/types/types.js → gpu-type-utils/texture-formats.js} +0 -0
  231. /package/dist/{adapter/type-utils → gpu-type-utils}/vertex-format-from-attribute.js +0 -0
  232. /package/dist/{adapter/types → gpu-type-utils}/vertex-formats.d.ts +0 -0
  233. /package/dist/{adapter/types → gpu-type-utils}/vertex-formats.js +0 -0
  234. /package/dist/{adapter/type-utils → gpu-type-utils}/wgsl-utils.js +0 -0
  235. /package/src/{lib/compiler-log → adapter/types}/compiler-message.ts +0 -0
  236. /package/src/{adapter/types → gpu-type-utils}/shader-types.ts +0 -0
  237. /package/src/{adapter/types → gpu-type-utils}/vertex-formats.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"stub-methods.d.ts","sourceRoot":"","sources":["../../src/utils/stub-methods.ts"],"names":[],"mappings":"AAOA,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,QAiBtB"}
@@ -1,19 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
- import { log } from "./log.js";
5
- // Install stubs for removed methods
6
- export function stubRemovedMethods(instance, className, version, methodNames) {
7
- const upgradeMessage = `See luma.gl ${version} Upgrade Guide at \
8
- https://luma.gl/docs/upgrade-guide`;
9
- const prototype = Object.getPrototypeOf(instance);
10
- methodNames.forEach((methodName) => {
11
- if (prototype.methodName) {
12
- return;
13
- }
14
- prototype[methodName] = () => {
15
- log.removed(`Calling removed method ${className}.${methodName}: `, upgradeMessage)();
16
- throw new Error(methodName);
17
- };
18
- });
19
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Returns a UID.
3
- * @param id= - Identifier base name
4
- * @return uid
5
- **/
6
- export declare function uid(id?: string): string;
7
- /** Returns true if given object is empty, false otherwise. */
8
- export declare function isObjectEmpty(obj: object): boolean;
9
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAMA;;;;IAII;AACJ,wBAAgB,GAAG,CAAC,EAAE,GAAE,MAAa,GAAG,MAAM,CAI7C;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASlD"}
@@ -1,37 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import type {Buffer} from '../resources/buffer';
6
- // import type {VertexFormat} from './data-formats';
7
-
8
- // ACCESSORS
9
-
10
- /**
11
- * Attribute descriptor object
12
- * @deprecated Use ShaderLayout
13
- */
14
- export interface AccessorObject {
15
- buffer?: Buffer;
16
- // format: VertexFormat;
17
- offset?: number;
18
- // can now be described with single WebGPU-style `format` string
19
-
20
- //
21
- stride?: number;
22
-
23
- /** @deprecated - Use accessor.stepMode */
24
- divisor?: number;
25
-
26
- /** @deprecated - Infer from format */
27
- type?: number;
28
- /** @deprecated - Infer from format */
29
- size?: number;
30
- /** @deprecated - Infer from format */
31
- normalized?: boolean;
32
- /** @deprecated - Infer from format */
33
- integer?: boolean;
34
-
35
- /** @deprecated */
36
- index?: number;
37
- }
@@ -1,42 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- // Note: This was the only dependency that made @luma.gl/webgl depend on @luma.gl/shadertools
6
- // This file was coped from shadertools to avoid the dependency
7
-
8
- /** Information extracted from shader source code */
9
- export type ShaderInfo = {
10
- name: string;
11
- language: 'glsl' | 'wgsl';
12
- version: number;
13
- };
14
-
15
- /** Extracts information from shader source code */
16
- export function getShaderInfo(source: string, defaultName?: string): ShaderInfo {
17
- return {
18
- name: getShaderName(source, defaultName),
19
- language: 'glsl',
20
- version: getShaderVersion(source)
21
- };
22
- }
23
-
24
- /** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */
25
- function getShaderName(shader: string, defaultName: string = 'unnamed'): string {
26
- const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
27
- const match = SHADER_NAME_REGEXP.exec(shader);
28
- return match ? match[1] : defaultName;
29
- }
30
-
31
- /** returns GLSL shader version of given shader string */
32
- function getShaderVersion(source: string): number {
33
- let version = 100;
34
- const words = source.match(/[^\s]+/g);
35
- if (words && words.length >= 2 && words[0] === '#version') {
36
- const v = parseInt(words[1], 10);
37
- if (Number.isFinite(v)) {
38
- version = v;
39
- }
40
- }
41
- return version;
42
- }
@@ -1,31 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import type {UniformValue} from '../../adapter/types/types';
6
- import type {Binding} from '../../adapter/types/shader-layout';
7
- import {isNumberArray} from '../../utils/is-array';
8
-
9
- export function isUniformValue(value: unknown): boolean {
10
- return isNumberArray(value) !== null || typeof value === 'number' || typeof value === 'boolean';
11
- }
12
-
13
- type UniformsAndBindings = {
14
- bindings: Record<string, Binding>;
15
- uniforms: Record<string, UniformValue>;
16
- };
17
- export function splitUniformsAndBindings(
18
- uniforms: Record<string, Binding | UniformValue>
19
- ): UniformsAndBindings {
20
- const result: UniformsAndBindings = {bindings: {}, uniforms: {}};
21
- Object.keys(uniforms).forEach(name => {
22
- const uniform = uniforms[name];
23
- if (isUniformValue(uniform)) {
24
- result.uniforms[name] = uniform as UniformValue;
25
- } else {
26
- result.bindings[name] = uniform as Binding;
27
- }
28
- });
29
-
30
- return result;
31
- }
@@ -1,11 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- // Recommendation is to ignore message but current test suite checks agains the
6
- // message so keep it for now.
7
- export function assert(condition: unknown, message?: string): void | never {
8
- if (!condition) {
9
- throw new Error(message || 'luma.gl: assertion failed.');
10
- }
11
- }
package/src/utils/cast.ts DELETED
@@ -1,8 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /** Helper for type downcasts, e.g. Buffer -> WebGPUBuffer */
6
- export function cast<T>(value: any) {
7
- return value as T;
8
- }
@@ -1,82 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {log} from './log';
6
-
7
- /* Use as
8
- import {checkProps} from '../util/check-props;'
9
-
10
- const PROP_CHECKS = {
11
- // Removed props no longer supported, print error and link to upgrade guide
12
- removedProps: {
13
- },
14
- // Deprecated props
15
- deprecatedProps: {
16
- offset: 'accessor',
17
- stride: 'accessor',
18
- type: 'accessor',
19
- size: 'accessor',
20
- divisor: 'accessor',
21
- normalized: 'accessor',
22
- integer: 'accessor'
23
- },
24
- // Deprecated props that can be autosubstituted, print warning and return updated props object
25
- replacedProps: {
26
- bytes: 'byteLength'
27
- }
28
- }
29
-
30
- class Buffer {
31
- setProps(props) {
32
- checkProps('Buffer', props, PROP_CHECKS);
33
- }
34
- }
35
- */
36
-
37
- export type PropChecks = {
38
- removedProps?: Record<string, any>;
39
- replacedProps?: Record<string, string>;
40
- deprecatedProps?: Record<string, string>;
41
- };
42
-
43
- export function checkProps(
44
- className: string,
45
- props: Record<string, any>,
46
- propChecks: PropChecks
47
- ): Record<string, unknown> {
48
- const {removedProps = {}, deprecatedProps = {}, replacedProps = {}} = propChecks;
49
-
50
- // removedProps: Removed props no longer supported
51
- // print error and link to upgrade guide
52
- for (const propName in removedProps) {
53
- if (propName in props) {
54
- const replacementProp = removedProps[propName];
55
- const replacement = replacementProp ? `${className}.${removedProps[propName]}` : 'N/A';
56
- log.removed(`${className}.${propName}`, replacement)();
57
- }
58
- }
59
-
60
- // deprecatedProps: Deprecated props that can not be autosubstituted
61
- // print warning and rely on caller to substitute
62
- for (const propName in deprecatedProps) {
63
- if (propName in props) {
64
- const replacementProp = deprecatedProps[propName];
65
- log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
66
- }
67
- }
68
-
69
- // replacedProps: Deprecated props that can be autosubstituted
70
- // print warning and return updated props object
71
- let newProps = null;
72
- for (const [propName, replacementProp] of Object.entries(replacedProps)) {
73
- if (propName in props) {
74
- log.deprecated(`${className}.${propName}`, `${className}.${replacementProp}`)();
75
- newProps = newProps || Object.assign({}, props);
76
- newProps[replacementProp] = props[propName];
77
- delete newProps[propName];
78
- }
79
- }
80
-
81
- return newProps || props;
82
- }
@@ -1,51 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /**
6
- * Fast partial deep equal for prop.
7
- *
8
- * @param a Prop
9
- * @param b Prop to compare against `a`
10
- * @param depth Depth to which to recurse in nested Objects/Arrays. Use 0 (default) for shallow comparison, -1 for infinite depth
11
- */
12
- /* eslint-disable complexity */
13
- export function deepEqual(a: any, b: any, depth: number): boolean {
14
- if (a === b) {
15
- return true;
16
- }
17
- if (!depth || !a || !b) {
18
- return false;
19
- }
20
- if (Array.isArray(a)) {
21
- if (!Array.isArray(b) || a.length !== b.length) {
22
- return false;
23
- }
24
- for (let i = 0; i < a.length; i++) {
25
- if (!deepEqual(a[i], b[i], depth - 1)) {
26
- return false;
27
- }
28
- }
29
- return true;
30
- }
31
- if (Array.isArray(b)) {
32
- return false;
33
- }
34
- if (typeof a === 'object' && typeof b === 'object') {
35
- const aKeys = Object.keys(a);
36
- const bKeys = Object.keys(b);
37
- if (aKeys.length !== bKeys.length) {
38
- return false;
39
- }
40
- for (const key of aKeys) {
41
- if (!b.hasOwnProperty(key)) {
42
- return false;
43
- }
44
- if (!deepEqual(a[key], b[key], depth - 1)) {
45
- return false;
46
- }
47
- }
48
- return true;
49
- }
50
- return false;
51
- }
@@ -1,47 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /* eslint-disable no-console */
6
- import type {NumberArray} from '../types';
7
-
8
- /** TODO @deprecated - delete when confident that probe.gl logging implements all opts */
9
- function formatArrayValue(v: NumberArray, opts: {maxElts?: number; size?: number} = {}): string {
10
- const {maxElts = 16, size = 1} = opts;
11
- let string = '[';
12
- for (let i = 0; i < v.length && i < maxElts; ++i) {
13
- if (i > 0) {
14
- string += `,${i % size === 0 ? ' ' : ''}`;
15
- }
16
- string += formatValue(v[i], opts);
17
- }
18
- const terminator = v.length > maxElts ? '...' : ']';
19
- return `${string}${terminator}`;
20
- }
21
-
22
- /** TODO @deprecated - delete when confident that probe.gl logging implements all opts */
23
- export function formatValue(
24
- v: number | NumberArray | unknown,
25
- opts: {isInteger?: boolean; size?: number} = {}
26
- ): string {
27
- const EPSILON = 1e-16;
28
- const {isInteger = false} = opts;
29
- if (Array.isArray(v) || ArrayBuffer.isView(v)) {
30
- return formatArrayValue(v as NumberArray, opts);
31
- }
32
- if (typeof v !== 'number') {
33
- return String(v);
34
- }
35
- if (Math.abs(v) < EPSILON) {
36
- return isInteger ? '0' : '0.';
37
- }
38
- if (isInteger) {
39
- return v.toFixed(0);
40
- }
41
- if (Math.abs(v) > 100 && Math.abs(v) < 10000) {
42
- return v.toFixed(0);
43
- }
44
- const string = v.toPrecision(2);
45
- const decimal = string.indexOf('.0');
46
- return decimal === string.length - 2 ? string.slice(0, -1) : string;
47
- }
@@ -1,91 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- let pathPrefix = '';
6
-
7
- /**
8
- * Set a relative path prefix
9
- */
10
- export function setPathPrefix(prefix: string) {
11
- pathPrefix = prefix;
12
- }
13
-
14
- /**
15
- * Reads raw file data. Respects setPathPrefix.
16
- */
17
- export async function loadFile(
18
- url: string,
19
- options?: {dataType?: 'text' | 'arrayBuffer'} & RequestInit
20
- ): Promise<any> {
21
- url = url.startsWith('http') ? url : pathPrefix + url;
22
- const dataType = options?.dataType || 'text';
23
- const response = await fetch(url, options);
24
- return await response[dataType]();
25
- }
26
-
27
- /**
28
- * Loads ImageBitmap asynchronously. Respects setPathPrefix.
29
- * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'
30
- * @returns a promise tracking the load
31
- */
32
- export async function loadImageBitmap(
33
- url: string,
34
- opts?: {crossOrigin?: string}
35
- ): Promise<ImageBitmap> {
36
- const image = new Image();
37
- image.crossOrigin = opts?.crossOrigin || 'anonymous';
38
- image.src = url.startsWith('http') ? url : pathPrefix + url;
39
- await image.decode();
40
- return await createImageBitmap(image);
41
- }
42
-
43
- /**
44
- * Loads image asynchronously. Respects setPathPrefix.
45
- * image.crossOrigin can be set via opts.crossOrigin, default to 'anonymous'
46
- * @returns a promise tracking the load
47
- * @deprecated Use `loadImageBitmap()` unless you are supporting old versions of Safari.
48
- */
49
- export async function loadImage(
50
- url: string,
51
- opts?: {crossOrigin?: string}
52
- ): Promise<HTMLImageElement> {
53
- return await new Promise((resolve, reject) => {
54
- try {
55
- const image = new Image();
56
- image.onload = () => resolve(image);
57
- image.onerror = () => reject(new Error(`Could not load image ${url}.`));
58
- image.crossOrigin = opts?.crossOrigin || 'anonymous';
59
- image.src = url.startsWith('http') ? url : pathPrefix + url;
60
- } catch (error) {
61
- reject(error);
62
- }
63
- });
64
- }
65
-
66
- /**
67
- * Load a script (identified by an url). When the url returns, the
68
- * content of this file is added into a new script element, attached to the DOM (body element)
69
- * @param scriptUrl defines the url of the script to laod
70
- * @param scriptId defines the id of the script element
71
- */
72
- export async function loadScript(scriptUrl: string, scriptId?: string): Promise<Event> {
73
- const head = document.getElementsByTagName('head')[0];
74
- if (!head) {
75
- throw new Error('loadScript');
76
- }
77
-
78
- const script = document.createElement('script');
79
- script.setAttribute('type', 'text/javascript');
80
- script.setAttribute('src', scriptUrl);
81
- if (scriptId) {
82
- script.id = scriptId;
83
- }
84
-
85
- return new Promise((resolve, reject) => {
86
- script.onload = resolve;
87
- script.onerror = error =>
88
- reject(new Error(`Unable to load script '${scriptUrl}': ${error as string}`));
89
- head.appendChild(script);
90
- });
91
- }
@@ -1,21 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /** Creates a deterministic pseudorandom number generator */
6
- export function makeRandomNumberGenerator(): () => number {
7
- let s = 1;
8
- let c = 1;
9
- return () => {
10
- s = Math.sin(c * 17.23);
11
- c = Math.cos(s * 27.92);
12
- return fract(Math.abs(s * c) * 1432.71);
13
- };
14
- }
15
-
16
- function fract(n: number): number {
17
- return n - Math.floor(n);
18
- }
19
-
20
- /** Generates a deterministic pseudorandom number */
21
- export const random = makeRandomNumberGenerator();
@@ -1,19 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- // Node.js polyfills for requestAnimationFrame and cancelAnimationFrame
6
- /* global window, setTimeout, clearTimeout */
7
-
8
- // / <reference types="@types/node" />
9
- export function requestAnimationFrame(callback: (time?: any) => void): any {
10
- return typeof window !== 'undefined' && window.requestAnimationFrame
11
- ? window.requestAnimationFrame(callback)
12
- : setTimeout(callback, 1000 / 60);
13
- }
14
-
15
- export function cancelAnimationFrame(timerId: any): void {
16
- return typeof window !== 'undefined' && window.cancelAnimationFrame
17
- ? window.cancelAnimationFrame(timerId)
18
- : clearTimeout(timerId);
19
- }
@@ -1,29 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {log} from './log';
6
-
7
- // Install stubs for removed methods
8
- export function stubRemovedMethods(
9
- instance: any,
10
- className: string,
11
- version: string,
12
- methodNames: string[]
13
- ) {
14
- const upgradeMessage = `See luma.gl ${version} Upgrade Guide at \
15
- https://luma.gl/docs/upgrade-guide`;
16
-
17
- const prototype = Object.getPrototypeOf(instance);
18
-
19
- methodNames.forEach((methodName: string): void => {
20
- if (prototype.methodName) {
21
- return;
22
- }
23
-
24
- prototype[methodName] = () => {
25
- log.removed(`Calling removed method ${className}.${methodName}: `, upgradeMessage)();
26
- throw new Error(methodName);
27
- };
28
- });
29
- }