@luma.gl/test-utils 9.2.6 → 9.3.0-alpha.11

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 (74) hide show
  1. package/dist/create-test-device.d.ts +19 -0
  2. package/dist/create-test-device.d.ts.map +1 -1
  3. package/dist/create-test-device.js +85 -18
  4. package/dist/create-test-device.js.map +1 -1
  5. package/dist/deprecated/classic-animation-loop.d.ts.map +1 -1
  6. package/dist/deprecated/classic-animation-loop.js +2 -10
  7. package/dist/deprecated/classic-animation-loop.js.map +1 -1
  8. package/dist/deprecated/sync-test-device.d.ts +0 -5
  9. package/dist/deprecated/sync-test-device.d.ts.map +1 -1
  10. package/dist/deprecated/sync-test-device.js +13 -2
  11. package/dist/deprecated/sync-test-device.js.map +1 -1
  12. package/dist/index.cjs +232 -103
  13. package/dist/index.cjs.map +4 -4
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/null-device/null-canvas-context.d.ts +2 -2
  19. package/dist/null-device/null-canvas-context.d.ts.map +1 -1
  20. package/dist/null-device/null-canvas-context.js +4 -3
  21. package/dist/null-device/null-canvas-context.js.map +1 -1
  22. package/dist/null-device/null-device.d.ts +7 -4
  23. package/dist/null-device/null-device.d.ts.map +1 -1
  24. package/dist/null-device/null-device.js +20 -7
  25. package/dist/null-device/null-device.js.map +1 -1
  26. package/dist/null-device/resources/null-command-buffer.d.ts +8 -8
  27. package/dist/null-device/resources/null-command-buffer.d.ts.map +1 -1
  28. package/dist/null-device/resources/null-command-buffer.js +16 -6
  29. package/dist/null-device/resources/null-command-buffer.js.map +1 -1
  30. package/dist/null-device/resources/null-command-encoder.d.ts +8 -7
  31. package/dist/null-device/resources/null-command-encoder.d.ts.map +1 -1
  32. package/dist/null-device/resources/null-command-encoder.js +24 -9
  33. package/dist/null-device/resources/null-command-encoder.js.map +1 -1
  34. package/dist/null-device/resources/null-fence.d.ts +12 -0
  35. package/dist/null-device/resources/null-fence.d.ts.map +1 -0
  36. package/dist/null-device/resources/null-fence.js +19 -0
  37. package/dist/null-device/resources/null-fence.js.map +1 -0
  38. package/dist/null-device/resources/null-query-set.d.ts +6 -0
  39. package/dist/null-device/resources/null-query-set.d.ts.map +1 -1
  40. package/dist/null-device/resources/null-query-set.js +11 -0
  41. package/dist/null-device/resources/null-query-set.js.map +1 -1
  42. package/dist/null-device/resources/null-render-pass.d.ts.map +1 -1
  43. package/dist/null-device/resources/null-render-pass.js +6 -1
  44. package/dist/null-device/resources/null-render-pass.js.map +1 -1
  45. package/dist/null-device/resources/null-render-pipeline.d.ts +3 -4
  46. package/dist/null-device/resources/null-render-pipeline.d.ts.map +1 -1
  47. package/dist/null-device/resources/null-render-pipeline.js +0 -5
  48. package/dist/null-device/resources/null-render-pipeline.js.map +1 -1
  49. package/dist/null-device/resources/null-texture.d.ts +5 -3
  50. package/dist/null-device/resources/null-texture.d.ts.map +1 -1
  51. package/dist/null-device/resources/null-texture.js +16 -15
  52. package/dist/null-device/resources/null-texture.js.map +1 -1
  53. package/dist/test-runner.d.ts +1 -1
  54. package/dist/test-runner.d.ts.map +1 -1
  55. package/dist/test-runner.js +2 -1
  56. package/dist/test-runner.js.map +1 -1
  57. package/dist/utils/resource-tracker.js +1 -1
  58. package/dist/utils/resource-tracker.js.map +1 -1
  59. package/package.json +9 -9
  60. package/src/create-test-device.ts +115 -18
  61. package/src/deprecated/classic-animation-loop.ts +2 -10
  62. package/src/deprecated/sync-test-device.ts +18 -2
  63. package/src/index.ts +1 -0
  64. package/src/null-device/null-canvas-context.ts +4 -3
  65. package/src/null-device/null-device.ts +26 -8
  66. package/src/null-device/resources/null-command-buffer.ts +18 -8
  67. package/src/null-device/resources/null-command-encoder.ts +25 -9
  68. package/src/null-device/resources/null-fence.ts +24 -0
  69. package/src/null-device/resources/null-query-set.ts +14 -0
  70. package/src/null-device/resources/null-render-pass.ts +6 -1
  71. package/src/null-device/resources/null-render-pipeline.ts +3 -14
  72. package/src/null-device/resources/null-texture.ts +36 -29
  73. package/src/test-runner.ts +2 -1
  74. package/src/utils/resource-tracker.ts +1 -1
@@ -2,16 +2,18 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {
6
- TextureProps,
7
- TextureViewProps,
8
- CopyExternalImageOptions,
9
- CopyImageDataOptions,
10
- Sampler,
11
- SamplerProps
5
+ import {
6
+ type TextureProps,
7
+ type TextureViewProps,
8
+ type CopyExternalImageOptions,
9
+ type CopyImageDataOptions,
10
+ type TextureReadOptions,
11
+ type TextureWriteOptions,
12
+ type Sampler,
13
+ type SamplerProps,
14
+ Buffer,
15
+ Texture
12
16
  } from '@luma.gl/core';
13
-
14
- import {Texture} from '@luma.gl/core';
15
17
  import {NullDevice} from '../null-device';
16
18
  import {NullSampler} from './null-sampler';
17
19
  import {NullTextureView} from './null-texture-view';
@@ -44,6 +46,8 @@ export class NullTexture extends Texture {
44
46
  arrayLayerCount: 1
45
47
  });
46
48
 
49
+ this.trackAllocatedMemory(this.getAllocatedByteLength(), 'Texture');
50
+
47
51
  Object.seal(this);
48
52
  }
49
53
 
@@ -59,35 +63,38 @@ export class NullTexture extends Texture {
59
63
  }
60
64
 
61
65
  copyExternalImage(options: CopyExternalImageOptions): {width: number; height: number} {
62
- this.trackDeallocatedMemory('Texture');
63
-
64
- const {image: data} = options;
65
-
66
- // if (data && data.byteLength) {
67
- // this.trackAllocatedMemory(data.byteLength, 'Texture');
68
- // } else {
69
- const bytesPerPixel = 4;
70
- this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
71
- // }
66
+ return {width: this.width, height: this.height};
67
+ }
72
68
 
73
- const width = options.width ?? (data as ImageBitmap).width;
74
- const height = options.height ?? (data as ImageBitmap).height;
69
+ override setSampler(sampler?: Sampler | SamplerProps): void {
70
+ // ignore
71
+ }
75
72
 
76
- this.width = width;
77
- this.height = height;
73
+ override copyImageData(options: CopyImageDataOptions): void {
74
+ super.copyImageData(options);
75
+ }
78
76
 
79
- return {width, height};
77
+ override readBuffer(_options: TextureReadOptions = {}, buffer?: Buffer): Buffer {
78
+ if (!buffer) {
79
+ throw new Error('buffer required');
80
+ }
81
+ return buffer;
80
82
  }
81
83
 
82
- override setSampler(sampler?: Sampler | SamplerProps): void {
83
- // ignore
84
+ override async readDataAsync(_options: TextureReadOptions = {}): Promise<ArrayBuffer> {
85
+ throw new Error(
86
+ `${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`
87
+ );
84
88
  }
85
89
 
86
- copyImageData(options: CopyImageDataOptions): void {
87
- throw new Error('copyImageData not implemented');
90
+ override writeBuffer(buffer: Buffer, options: TextureWriteOptions = {}) {
91
+ // ignore
88
92
  }
89
93
 
90
- generateMipmapsWebGL(): void {
94
+ override writeData(
95
+ data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView,
96
+ options: TextureWriteOptions = {}
97
+ ): void {
91
98
  // ignore
92
99
  }
93
100
  }
@@ -7,6 +7,7 @@
7
7
 
8
8
  import {AnimationProps} from '@luma.gl/engine';
9
9
  import {getWebGLTestDevice} from './create-test-device';
10
+ import {createTestDevice} from './deprecated/sync-test-device';
10
11
 
11
12
  // TODO - Replace with new AnimationLoop from `@luma.gl/engine`
12
13
  import {ClassicAnimationLoop as AnimationLoop} from './deprecated/classic-animation-loop';
@@ -65,7 +66,7 @@ const DEFAULT_TEST_PROPS: Required<TestRunnerProps> = {
65
66
 
66
67
  /** Runs an array of test cases */
67
68
  export class TestRunner {
68
- device = webglDevice;
69
+ device = createTestDevice();
69
70
  props: Record<string, any>;
70
71
  isRunning: boolean = false;
71
72
  testOptions: Required<TestRunnerProps> = {...DEFAULT_TEST_PROPS};
@@ -1,7 +1,7 @@
1
1
  /* global luma */
2
2
  export function getResourceCounts() {
3
3
  // @ts-ignore
4
- const resourceStats = luma.stats.get('Resource Counts');
4
+ const resourceStats = luma.stats.get('GPU Resource Counts');
5
5
  return {
6
6
  Texture2D: resourceStats.get('Texture2Ds Active').count,
7
7
  Buffer: resourceStats.get('Buffers Active').count