@luma.gl/test-utils 9.3.0-alpha.6 → 9.3.0-alpha.9

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 (43) 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 +83 -14
  4. package/dist/create-test-device.js.map +1 -1
  5. package/dist/deprecated/sync-test-device.d.ts +0 -5
  6. package/dist/deprecated/sync-test-device.d.ts.map +1 -1
  7. package/dist/deprecated/sync-test-device.js +11 -1
  8. package/dist/deprecated/sync-test-device.js.map +1 -1
  9. package/dist/index.cjs +145 -53
  10. package/dist/index.cjs.map +4 -4
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/null-device/null-device.d.ts +1 -1
  16. package/dist/null-device/null-device.d.ts.map +1 -1
  17. package/dist/null-device/null-device.js +2 -2
  18. package/dist/null-device/null-device.js.map +1 -1
  19. package/dist/null-device/resources/null-command-buffer.d.ts +6 -6
  20. package/dist/null-device/resources/null-command-buffer.d.ts.map +1 -1
  21. package/dist/null-device/resources/null-command-buffer.js +16 -6
  22. package/dist/null-device/resources/null-command-buffer.js.map +1 -1
  23. package/dist/null-device/resources/null-command-encoder.d.ts +6 -6
  24. package/dist/null-device/resources/null-command-encoder.d.ts.map +1 -1
  25. package/dist/null-device/resources/null-command-encoder.js +18 -8
  26. package/dist/null-device/resources/null-command-encoder.js.map +1 -1
  27. package/dist/null-device/resources/null-texture.d.ts +2 -2
  28. package/dist/null-device/resources/null-texture.d.ts.map +1 -1
  29. package/dist/null-device/resources/null-texture.js +7 -4
  30. package/dist/null-device/resources/null-texture.js.map +1 -1
  31. package/dist/test-runner.d.ts +1 -1
  32. package/dist/test-runner.d.ts.map +1 -1
  33. package/dist/test-runner.js +2 -1
  34. package/dist/test-runner.js.map +1 -1
  35. package/package.json +7 -7
  36. package/src/create-test-device.ts +113 -14
  37. package/src/deprecated/sync-test-device.ts +16 -1
  38. package/src/index.ts +1 -0
  39. package/src/null-device/null-device.ts +2 -2
  40. package/src/null-device/resources/null-command-buffer.ts +16 -6
  41. package/src/null-device/resources/null-command-encoder.ts +17 -7
  42. package/src/null-device/resources/null-texture.ts +9 -4
  43. package/src/test-runner.ts +2 -1
@@ -5,13 +5,13 @@ export declare class NullCommandBuffer extends CommandBuffer {
5
5
  readonly device: NullDevice;
6
6
  readonly handle: null;
7
7
  constructor(device: NullDevice, props: CommandBufferProps);
8
- copyBufferToBuffer(options: CopyBufferToBufferOptions): void;
9
- copyBufferToTexture(options: CopyBufferToTextureOptions): void;
10
- copyTextureToBuffer(options: CopyTextureToBufferOptions): void;
11
- copyTextureToTexture(options: CopyTextureToTextureOptions): void;
8
+ copyBufferToBuffer(_options: CopyBufferToBufferOptions): void;
9
+ copyBufferToTexture(_options: CopyBufferToTextureOptions): void;
10
+ copyTextureToBuffer(_options: CopyTextureToBufferOptions): void;
11
+ copyTextureToTexture(_options: CopyTextureToTextureOptions): void;
12
12
  pushDebugGroup(groupLabel: string): void;
13
13
  popDebugGroup(): void;
14
- insertDebugMarker(markerLabel: string): void;
15
- resolveQuerySet(querySet: QuerySet): void;
14
+ insertDebugMarker(_markerLabel: string): void;
15
+ resolveQuerySet(_querySet: QuerySet): void;
16
16
  }
17
17
  //# sourceMappingURL=null-command-buffer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-command-buffer.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,QAAQ,EACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAE/C,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAQ;gBAEjB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAKzD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAE5D,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;IAEvD,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAE9D,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI;IAEhE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa;IAEb,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAC5C,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAC1C"}
1
+ {"version":3,"file":"null-command-buffer.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,QAAQ,EACT,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAE/C,qBAAa,iBAAkB,SAAQ,aAAa;IAClD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAQ;gBAEjB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB;IAKzD,kBAAkB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAI7D,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B;IAIxD,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAI/D,oBAAoB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAIjE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa;IAEb,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAC7C,eAAe,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;CAG3C"}
@@ -9,13 +9,23 @@ export class NullCommandBuffer extends CommandBuffer {
9
9
  super(device, props);
10
10
  this.device = device;
11
11
  }
12
- copyBufferToBuffer(options) { }
13
- copyBufferToTexture(options) { }
14
- copyTextureToBuffer(options) { }
15
- copyTextureToTexture(options) { }
12
+ copyBufferToBuffer(_options) {
13
+ throw new Error('copyBufferToBuffer is not supported on NullDevice');
14
+ }
15
+ copyBufferToTexture(_options) {
16
+ throw new Error('copyBufferToTexture is not supported on NullDevice');
17
+ }
18
+ copyTextureToBuffer(_options) {
19
+ throw new Error('copyTextureToBuffer is not supported on NullDevice');
20
+ }
21
+ copyTextureToTexture(_options) {
22
+ throw new Error('copyTextureToTexture is not supported on NullDevice');
23
+ }
16
24
  pushDebugGroup(groupLabel) { }
17
25
  popDebugGroup() { }
18
- insertDebugMarker(markerLabel) { }
19
- resolveQuerySet(querySet) { }
26
+ insertDebugMarker(_markerLabel) { }
27
+ resolveQuerySet(_querySet) {
28
+ throw new Error('resolveQuerySet is not supported on NullDevice');
29
+ }
20
30
  }
21
31
  //# sourceMappingURL=null-command-buffer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-command-buffer.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-buffer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAUpC,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAG5C,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IACzC,MAAM,CAAa;IACnB,MAAM,GAAS,IAAI,CAAC;IAE7B,YAAY,MAAkB,EAAE,KAAyB;QACvD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,OAAkC,IAAS,CAAC;IAE/D,mBAAmB,CAAC,OAAmC,IAAG,CAAC;IAE3D,mBAAmB,CAAC,OAAmC,IAAS,CAAC;IAEjE,oBAAoB,CAAC,OAAoC,IAAS,CAAC;IAEnE,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAI,CAAC;IAElB,iBAAiB,CAAC,WAAmB,IAAS,CAAC;IAC/C,eAAe,CAAC,QAAkB,IAAS,CAAC;CAC7C"}
1
+ {"version":3,"file":"null-command-buffer.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-buffer.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAUpC,OAAO,EAAC,aAAa,EAAC,MAAM,eAAe,CAAC;AAG5C,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IACzC,MAAM,CAAa;IACnB,MAAM,GAAS,IAAI,CAAC;IAE7B,YAAY,MAAkB,EAAE,KAAyB;QACvD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kBAAkB,CAAC,QAAmC;QACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,mBAAmB,CAAC,QAAoC;QACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,mBAAmB,CAAC,QAAoC;QACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,oBAAoB,CAAC,QAAqC;QACxD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAI,CAAC;IAElB,iBAAiB,CAAC,YAAoB,IAAS,CAAC;IAChD,eAAe,CAAC,SAAmB;QACjC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -10,12 +10,12 @@ export declare class NullCommandEncoder extends CommandEncoder {
10
10
  destroy(): void;
11
11
  finish(props?: CommandBufferProps): NullCommandBuffer;
12
12
  beginRenderPass(props: RenderPassProps): NullRenderPass;
13
- beginComputePass(props: ComputePassProps): ComputePass;
14
- copyBufferToBuffer(options: CopyBufferToBufferOptions): void;
15
- copyBufferToTexture(options: CopyBufferToTextureOptions): void;
16
- copyTextureToBuffer(options: CopyTextureToBufferOptions): void;
17
- copyTextureToTexture(options: CopyTextureToTextureOptions): void;
18
- resolveQuerySet(querySet: QuerySet): void;
13
+ beginComputePass(_props: ComputePassProps): ComputePass;
14
+ copyBufferToBuffer(_options: CopyBufferToBufferOptions): void;
15
+ copyBufferToTexture(_options: CopyBufferToTextureOptions): void;
16
+ copyTextureToBuffer(_options: CopyTextureToBufferOptions): void;
17
+ copyTextureToTexture(_options: CopyTextureToTextureOptions): void;
18
+ resolveQuerySet(_querySet: QuerySet): void;
19
19
  pushDebugGroup(groupLabel: string): void;
20
20
  popDebugGroup(): void;
21
21
  insertDebugMarker(markerLabel: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"null-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AACxD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAQ;gBAEjB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB;IAKjD,OAAO,IAAI,IAAI;IAIxB,MAAM,CAAC,KAAK,GAAE,kBAAuB,GAAG,iBAAiB;IAMzD,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc;IAIvD,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW;IAItD,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,IAAI;IAE5D,mBAAmB,CAAC,OAAO,EAAE,0BAA0B;IAEvD,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI;IAE9D,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI;IAEhE,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAEzC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa;IACb,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAC7C"}
1
+ {"version":3,"file":"null-command-encoder.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-encoder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAC/C,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AACxD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAQ;gBAEjB,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB;IAKjD,OAAO,IAAI,IAAI;IAIxB,MAAM,CAAC,KAAK,GAAE,kBAAuB,GAAG,iBAAiB;IAMzD,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc;IAIvD,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAIvD,kBAAkB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAI7D,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B;IAIxD,mBAAmB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAI/D,oBAAoB,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI;IAIjE,eAAe,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAI1C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa;IACb,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAC7C"}
@@ -22,14 +22,24 @@ export class NullCommandEncoder extends CommandEncoder {
22
22
  beginRenderPass(props) {
23
23
  return new NullRenderPass(this.device, props);
24
24
  }
25
- beginComputePass(props) {
26
- throw new Error('ComputePass not supported in WebGL');
27
- }
28
- copyBufferToBuffer(options) { }
29
- copyBufferToTexture(options) { }
30
- copyTextureToBuffer(options) { }
31
- copyTextureToTexture(options) { }
32
- resolveQuerySet(querySet) { }
25
+ beginComputePass(_props) {
26
+ throw new Error('ComputePass is not supported on NullDevice');
27
+ }
28
+ copyBufferToBuffer(_options) {
29
+ throw new Error('copyBufferToBuffer is not supported on NullDevice');
30
+ }
31
+ copyBufferToTexture(_options) {
32
+ throw new Error('copyBufferToTexture is not supported on NullDevice');
33
+ }
34
+ copyTextureToBuffer(_options) {
35
+ throw new Error('copyTextureToBuffer is not supported on NullDevice');
36
+ }
37
+ copyTextureToTexture(_options) {
38
+ throw new Error('copyTextureToTexture is not supported on NullDevice');
39
+ }
40
+ resolveQuerySet(_querySet) {
41
+ throw new Error('resolveQuerySet is not supported on NullDevice');
42
+ }
33
43
  pushDebugGroup(groupLabel) { }
34
44
  popDebugGroup() { }
35
45
  insertDebugMarker(markerLabel) { }
@@ -1 +1 @@
1
- {"version":3,"file":"null-command-encoder.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-encoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAAsB,MAAM,eAAe,CAAC;AAalE,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AACxD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAC3C,MAAM,CAAa;IACnB,MAAM,GAAS,IAAI,CAAC;IAE7B,YAAY,MAAkB,EAAE,KAA0B;QACxD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,QAA4B,EAAE;QACnC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,KAAsB;QACpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAC,KAAuB;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB,CAAC,OAAkC,IAAS,CAAC;IAE/D,mBAAmB,CAAC,OAAmC,IAAG,CAAC;IAE3D,mBAAmB,CAAC,OAAmC,IAAS,CAAC;IAEjE,oBAAoB,CAAC,OAAoC,IAAS,CAAC;IAEnE,eAAe,CAAC,QAAkB,IAAS,CAAC;IAE5C,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAI,CAAC;IAClB,iBAAiB,CAAC,WAAmB,IAAS,CAAC;CAChD"}
1
+ {"version":3,"file":"null-command-encoder.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-command-encoder.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAAsB,MAAM,eAAe,CAAC;AAalE,OAAO,EAAC,iBAAiB,EAAC,iCAA8B;AACxD,OAAO,EAAC,cAAc,EAAC,8BAA2B;AAElD,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAC3C,MAAM,CAAa;IACnB,MAAM,GAAS,IAAI,CAAC;IAE7B,YAAY,MAAkB,EAAE,KAA0B;QACxD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,QAA4B,EAAE;QACnC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,eAAe,CAAC,KAAsB;QACpC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAC,MAAwB;QACvC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB,CAAC,QAAmC;QACpD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,mBAAmB,CAAC,QAAoC;QACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,mBAAmB,CAAC,QAAoC;QACtD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,oBAAoB,CAAC,QAAqC;QACxD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,SAAmB;QACjC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAI,CAAC;IAClB,iBAAiB,CAAC,WAAmB,IAAS,CAAC;CAChD"}
@@ -16,8 +16,8 @@ export declare class NullTexture extends Texture {
16
16
  };
17
17
  setSampler(sampler?: Sampler | SamplerProps): void;
18
18
  copyImageData(options: CopyImageDataOptions): void;
19
- readBuffer(options?: TextureReadOptions, buffer?: Buffer): Buffer;
20
- readDataAsync(options?: TextureReadOptions): Promise<ArrayBuffer>;
19
+ readBuffer(_options?: TextureReadOptions, buffer?: Buffer): Buffer;
20
+ readDataAsync(_options?: TextureReadOptions): Promise<ArrayBuffer>;
21
21
  writeBuffer(buffer: Buffer, options?: TextureWriteOptions): void;
22
22
  writeData(data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView, options?: TextureWriteOptions): void;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"null-texture.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-texture.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAC1C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAEpD,qBAAa,WAAY,SAAQ,OAAO;IACtC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,OAAQ;IAEvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,eAAe,CAAC;gBAEV,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IA0B1C,OAAO,IAAI,IAAI;IAOxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe;IAIpD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAI5E,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAIlD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAIlD,UAAU,CAAC,OAAO,GAAE,kBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAI/D,aAAa,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAI3E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAI7D,SAAS,CAChB,IAAI,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,EACvD,OAAO,GAAE,mBAAwB,GAChC,IAAI;CAGR"}
1
+ {"version":3,"file":"null-texture.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-texture.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,YAAY,EACjB,MAAM,EACN,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAC1C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAEpD,qBAAa,WAAY,SAAQ,OAAO;IACtC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,OAAQ;IAEvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,eAAe,CAAC;gBAEV,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY;IA0B1C,OAAO,IAAI,IAAI;IAOxB,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,eAAe;IAIpD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC;IAI5E,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAIlD,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAIlD,UAAU,CAAC,QAAQ,GAAE,kBAAuB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAOhE,aAAa,CAAC,QAAQ,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB;IAI7D,SAAS,CAChB,IAAI,EAAE,WAAW,GAAG,iBAAiB,GAAG,eAAe,EACvD,OAAO,GAAE,mBAAwB,GAChC,IAAI;CAGR"}
@@ -45,11 +45,14 @@ export class NullTexture extends Texture {
45
45
  copyImageData(options) {
46
46
  super.copyImageData(options);
47
47
  }
48
- readBuffer(options = {}, buffer) {
49
- return this.device.createBuffer({});
48
+ readBuffer(_options = {}, buffer) {
49
+ if (!buffer) {
50
+ throw new Error('buffer required');
51
+ }
52
+ return buffer;
50
53
  }
51
- async readDataAsync(options = {}) {
52
- return new ArrayBuffer(0);
54
+ async readDataAsync(_options = {}) {
55
+ throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`);
53
56
  }
54
57
  writeBuffer(buffer, options = {}) {
55
58
  // ignore
@@ -1 +1 @@
1
- {"version":3,"file":"null-texture.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-texture.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAUL,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAEpD,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC7B,MAAM,CAAa;IACnB,MAAM,GAAG,IAAI,CAAC;IAEvB,OAAO,CAAc;IACrB,IAAI,CAAkB;IAEtB,YAAY,MAAkB,EAAE,KAAmB;QACjD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,2BAA2B;QAC3B,4BAA4B;QAE5B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3C,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QAEpE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAuB;QAChC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IACrE,CAAC;IAED,iBAAiB,CAAC,OAAiC;QACjD,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;IAClD,CAAC;IAEQ,UAAU,CAAC,OAAgC;QAClD,SAAS;IACX,CAAC;IAEQ,aAAa,CAAC,OAA6B;QAClD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEQ,UAAU,CAAC,UAA8B,EAAE,EAAE,MAAe;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAEQ,KAAK,CAAC,aAAa,CAAC,UAA8B,EAAE;QAC3D,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAEQ,WAAW,CAAC,MAAc,EAAE,UAA+B,EAAE;QACpE,SAAS;IACX,CAAC;IAEQ,SAAS,CAChB,IAAuD,EACvD,UAA+B,EAAE;QAEjC,SAAS;IACX,CAAC;CACF"}
1
+ {"version":3,"file":"null-texture.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-texture.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAUL,OAAO,EACR,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,eAAe,EAAC,+BAA4B;AAEpD,MAAM,OAAO,WAAY,SAAQ,OAAO;IAC7B,MAAM,CAAa;IACnB,MAAM,GAAG,IAAI,CAAC;IAEvB,OAAO,CAAc;IACrB,IAAI,CAAkB;IAEtB,YAAY,MAAkB,EAAE,KAAmB;QACjD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAErB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,2BAA2B;QAC3B,4BAA4B;QAE5B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3C,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;SACnB,CAAC,CAAC;QAEH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QAEpE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAuB;QAChC,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IACrE,CAAC;IAED,iBAAiB,CAAC,OAAiC;QACjD,OAAO,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;IAClD,CAAC;IAEQ,UAAU,CAAC,OAAgC;QAClD,SAAS;IACX,CAAC;IAEQ,aAAa,CAAC,OAA6B;QAClD,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEQ,UAAU,CAAC,WAA+B,EAAE,EAAE,MAAe;QACpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,KAAK,CAAC,aAAa,CAAC,WAA+B,EAAE;QAC5D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kHAAkH,CAC1H,CAAC;IACJ,CAAC;IAEQ,WAAW,CAAC,MAAc,EAAE,UAA+B,EAAE;QACpE,SAAS;IACX,CAAC;IAEQ,SAAS,CAChB,IAAuD,EACvD,UAA+B,EAAE;QAEjC,SAAS;IACX,CAAC;CACF"}
@@ -28,7 +28,7 @@ export type TestRunnerProps = {
28
28
  };
29
29
  /** Runs an array of test cases */
30
30
  export declare class TestRunner {
31
- device: any;
31
+ device: import("@luma.gl/webgl").WebGLDevice | null;
32
32
  props: Record<string, any>;
33
33
  isRunning: boolean;
34
34
  testOptions: Required<TestRunnerProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAI/C,OAAO,EAAC,oBAAoB,IAAI,aAAa,EAAC,+CAA4C;AAE1F,4BAA4B;AAC5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC5D,wBAAwB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG;QAAC,IAAI,MAAA;KAAC,KAAK,IAAI,CAAC;IACnD,mCAAmC;IACnC,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AASF,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrE,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB,CAAC;AAmBF,kCAAkC;AAClC,qBAAa,UAAU;IACrB,MAAM,MAAe;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAS;IAC3B,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,CAA2B;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC1C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,yBAAyB,CAAS;IAG1C,SAAS,EAAE,OAAO,CAAS;IAG3B,UAAU,EAAE,OAAO,CAAgD;IAEnE;;;OAGG;gBACS,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI3C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAU1C;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9C,YAAY,CAAC,QAAQ,EAAE,kBAAkB;IAYzC,YAAY,CAAC,cAAc,KAAA,GAAG,OAAO;IAIrC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO1C,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5B,KAAK,IAAI,IAAI;IAMb,SAAS,CAAC,cAAc,KAAA,GAAG,IAAI;IA2C/B,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAuD7C"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAK/C,OAAO,EAAC,oBAAoB,IAAI,aAAa,EAAC,+CAA4C;AAE1F,4BAA4B;AAC5B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAC5D,wBAAwB;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,GAAG;QAAC,IAAI,MAAA;KAAC,KAAK,IAAI,CAAC;IACnD,mCAAmC;IACnC,UAAU,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AASF,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACtE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACrE,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB,CAAC;AAmBF,kCAAkC;AAClC,qBAAa,UAAU;IACrB,MAAM,8CAAsB;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAS;IAC3B,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,CAA2B;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC1C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,yBAAyB,CAAS;IAC1C,OAAO,CAAC,yBAAyB,CAAS;IAG1C,SAAS,EAAE,OAAO,CAAS;IAG3B,UAAU,EAAE,OAAO,CAAgD;IAEnE;;;OAGG;gBACS,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM;IAI3C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAU1C;;OAEG;IACG,GAAG,CAAC,OAAO,GAAE,MAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9C,YAAY,CAAC,QAAQ,EAAE,kBAAkB;IAYzC,YAAY,CAAC,cAAc,KAAA,GAAG,OAAO;IAIrC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO1C,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5B,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5B,KAAK,IAAI,IAAI;IAMb,SAAS,CAAC,cAAc,KAAA,GAAG,IAAI;IA2C/B,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAuD7C"}
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { getWebGLTestDevice } from "./create-test-device.js";
5
+ import { createTestDevice } from "./deprecated/sync-test-device.js";
5
6
  // TODO - Replace with new AnimationLoop from `@luma.gl/engine`
6
7
  import { ClassicAnimationLoop as AnimationLoop } from "./deprecated/classic-animation-loop.js";
7
8
  const DEFAULT_TEST_CASE = {
@@ -24,7 +25,7 @@ const DEFAULT_TEST_PROPS = {
24
25
  };
25
26
  /** Runs an array of test cases */
26
27
  export class TestRunner {
27
- device = webglDevice;
28
+ device = createTestDevice();
28
29
  props;
29
30
  isRunning = false;
30
31
  testOptions = { ...DEFAULT_TEST_PROPS };
@@ -1 +1 @@
1
- {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-runner.js","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/test-utils",
3
- "version": "9.3.0-alpha.6",
3
+ "version": "9.3.0-alpha.9",
4
4
  "description": "Automated WebGL testing utilities with Puppeteer and image diffing",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -36,15 +36,15 @@
36
36
  "pre-build": "echo test utils has no bundle"
37
37
  },
38
38
  "peerDependencies": {
39
- "@luma.gl/core": "9.2.0-alpha.6",
40
- "@luma.gl/engine": "9.2.0-alpha.6",
41
- "@luma.gl/shadertools": "9.2.0-alpha.6",
42
- "@luma.gl/webgl": "9.2.0-alpha.6",
43
- "@luma.gl/webgpu": "9.2.0-alpha.6"
39
+ "@luma.gl/core": "9.3.0-alpha.6",
40
+ "@luma.gl/engine": "9.3.0-alpha.6",
41
+ "@luma.gl/shadertools": "9.3.0-alpha.6",
42
+ "@luma.gl/webgl": "9.3.0-alpha.6",
43
+ "@luma.gl/webgpu": "9.3.0-alpha.6"
44
44
  },
45
45
  "dependencies": {
46
46
  "@probe.gl/env": "^4.1.1",
47
47
  "@probe.gl/stats": "^4.1.1"
48
48
  },
49
- "gitHead": "59fda5480c4d0bb3d64545d4621175221f2b6c7c"
49
+ "gitHead": "737b0f752b3f8a6ae920b394d5ca028427275b37"
50
50
  }
@@ -10,13 +10,26 @@ import {nullAdapter} from './null-device/null-adapter';
10
10
  import {NullDevice} from './null-device/null-device';
11
11
 
12
12
  const DEFAULT_CANVAS_CONTEXT_PROPS: CanvasContextProps = {width: 1, height: 1};
13
+ const TEST_DEVICE_CACHE_KEY = '__lumaTestDeviceCache';
13
14
 
14
- /** A null device intended for testing - @note Only available after getTestDevices() has completed */
15
- let nullDevicePromise = makeNullTestDevice();
16
- /** This WebGL Device can be used directly but will not have WebGL debugging initialized */
17
- const webglDevicePromise = makeWebGLTestDevice();
18
- /** A WebGL 2 Device intended for testing - @note Only available after getTestDevices() has completed */
19
- const webgpuDevicePromise = makeWebGPUTestDevice();
15
+ type TestDeviceCache = {
16
+ /** A null device intended for testing - @note Only available after getTestDevices() has completed */
17
+ nullDevicePromise: Promise<NullDevice> | null;
18
+ /** This WebGL Device can be used directly but will not have WebGL debugging initialized */
19
+ webglDevicePromise: Promise<WebGLDevice> | null;
20
+ /** A shared offscreen WebGL device for presentation-context tests */
21
+ presentationWebglDevicePromise: Promise<WebGLDevice | null> | null;
22
+ /** A WebGL 2 Device intended for testing - @note Only available after getTestDevices() has completed */
23
+ webgpuDevicePromise: Promise<WebGPUDevice | null> | null;
24
+ };
25
+
26
+ declare global {
27
+ interface Window {
28
+ [TEST_DEVICE_CACHE_KEY]?: TestDeviceCache;
29
+ }
30
+ }
31
+
32
+ const testDeviceCache = getOrCreateTestDeviceCache();
20
33
 
21
34
  /** Includes WebGPU device if available */
22
35
  export async function getTestDevices(
@@ -32,29 +45,61 @@ export async function getTestDevice(
32
45
  ): Promise<Device | null> {
33
46
  switch (type) {
34
47
  case 'webgl':
35
- return webglDevicePromise;
48
+ return getOrCreateWebGLTestDevicePromise();
36
49
  case 'webgpu':
37
- return webgpuDevicePromise;
50
+ return getWebGPUTestDevice();
38
51
  case 'null':
39
- return nullDevicePromise;
52
+ return getOrCreateNullTestDevicePromise();
40
53
  case 'unknown':
41
54
  return null;
42
55
  }
43
56
  }
44
57
 
45
58
  /** returns WebGPU device promise, if available */
46
- export function getWebGPUTestDevice(): Promise<WebGPUDevice | null> {
47
- return webgpuDevicePromise;
59
+ export async function getWebGPUTestDevice(): Promise<WebGPUDevice | null> {
60
+ const webgpuDevice = await getOrCreateWebGPUTestDevicePromise();
61
+ if (webgpuDevice?.isLost) {
62
+ if (testDeviceCache.webgpuDevicePromise) {
63
+ testDeviceCache.webgpuDevicePromise = null;
64
+ }
65
+ return getOrCreateWebGPUTestDevicePromise();
66
+ }
67
+ return webgpuDevice;
48
68
  }
49
69
 
50
70
  /** returns WebGL device promise, if available */
51
71
  export async function getWebGLTestDevice(): Promise<WebGLDevice> {
52
- return webglDevicePromise;
72
+ return getOrCreateWebGLTestDevicePromise();
73
+ }
74
+
75
+ /** returns an offscreen WebGL device promise for presentation-context tests, if available */
76
+ export async function getPresentationWebGLTestDevice(): Promise<WebGLDevice | null> {
77
+ return getOrCreatePresentationWebGLTestDevicePromise();
53
78
  }
54
79
 
55
80
  /** returns null device promise, if available */
56
81
  export async function getNullTestDevice(): Promise<NullDevice> {
57
- return nullDevicePromise;
82
+ return getOrCreateNullTestDevicePromise();
83
+ }
84
+
85
+ function getOrCreateWebGPUTestDevicePromise(): Promise<WebGPUDevice | null> {
86
+ testDeviceCache.webgpuDevicePromise ||= makeWebGPUTestDevice();
87
+ return testDeviceCache.webgpuDevicePromise;
88
+ }
89
+
90
+ function getOrCreateWebGLTestDevicePromise(): Promise<WebGLDevice> {
91
+ testDeviceCache.webglDevicePromise ||= makeWebGLTestDevice();
92
+ return testDeviceCache.webglDevicePromise;
93
+ }
94
+
95
+ function getOrCreatePresentationWebGLTestDevicePromise(): Promise<WebGLDevice | null> {
96
+ testDeviceCache.presentationWebglDevicePromise ||= makePresentationWebGLTestDevice();
97
+ return testDeviceCache.presentationWebglDevicePromise;
98
+ }
99
+
100
+ function getOrCreateNullTestDevicePromise(): Promise<NullDevice> {
101
+ testDeviceCache.nullDevicePromise ||= makeNullTestDevice();
102
+ return testDeviceCache.nullDevicePromise;
58
103
  }
59
104
 
60
105
  async function makeWebGPUTestDevice(): Promise<WebGPUDevice | null> {
@@ -67,6 +112,11 @@ async function makeWebGPUTestDevice(): Promise<WebGPUDevice | null> {
67
112
  createCanvasContext: DEFAULT_CANVAS_CONTEXT_PROPS,
68
113
  debug: true
69
114
  })) as unknown as WebGPUDevice;
115
+ webgpuDevice.lost.finally(() => {
116
+ if (testDeviceCache.webgpuDevicePromise === webgpuDeviceResolvers.promise) {
117
+ testDeviceCache.webgpuDevicePromise = null;
118
+ }
119
+ });
70
120
  webgpuDeviceResolvers.resolve(webgpuDevice);
71
121
  } catch (error) {
72
122
  log.error(String(error))();
@@ -87,6 +137,11 @@ async function makeWebGLTestDevice(): Promise<WebGLDevice> {
87
137
  createCanvasContext: DEFAULT_CANVAS_CONTEXT_PROPS,
88
138
  debug: true
89
139
  })) as unknown as WebGLDevice;
140
+ webglDevice.lost.finally(() => {
141
+ if (testDeviceCache.webglDevicePromise === webglDeviceResolvers.promise) {
142
+ testDeviceCache.webglDevicePromise = null;
143
+ }
144
+ });
90
145
  webglDeviceResolvers.resolve(webglDevice);
91
146
  } catch (error) {
92
147
  log.error(String(error))();
@@ -96,6 +151,35 @@ async function makeWebGLTestDevice(): Promise<WebGLDevice> {
96
151
  return webglDeviceResolvers.promise;
97
152
  }
98
153
 
154
+ async function makePresentationWebGLTestDevice(): Promise<WebGLDevice | null> {
155
+ if (typeof OffscreenCanvas === 'undefined') {
156
+ return null;
157
+ }
158
+
159
+ const presentationWebGLDeviceResolvers = withResolvers<WebGLDevice | null>();
160
+ try {
161
+ const webglDevice = (await luma.createDevice({
162
+ id: 'webgl-presentation-context-test-device',
163
+ type: 'webgl',
164
+ adapters: [webgl2Adapter],
165
+ createCanvasContext: {canvas: new OffscreenCanvas(4, 4)},
166
+ debug: true
167
+ })) as unknown as WebGLDevice;
168
+ webglDevice.lost.finally(() => {
169
+ if (
170
+ testDeviceCache.presentationWebglDevicePromise === presentationWebGLDeviceResolvers.promise
171
+ ) {
172
+ testDeviceCache.presentationWebglDevicePromise = null;
173
+ }
174
+ });
175
+ presentationWebGLDeviceResolvers.resolve(webglDevice);
176
+ } catch (error) {
177
+ log.error(String(error))();
178
+ presentationWebGLDeviceResolvers.resolve(null);
179
+ }
180
+ return presentationWebGLDeviceResolvers.promise;
181
+ }
182
+
99
183
  /** returns null device promise, if available */
100
184
  async function makeNullTestDevice(): Promise<NullDevice> {
101
185
  const nullDeviceResolvers = withResolvers<NullDevice>();
@@ -111,13 +195,28 @@ async function makeNullTestDevice(): Promise<NullDevice> {
111
195
  } catch (error) {
112
196
  log.error(String(error))();
113
197
  // @ts-ignore TODO
114
- nullDevicePromise = Promise.resolve(null);
198
+ testDeviceCache.nullDevicePromise = Promise.resolve(null);
115
199
  }
116
200
  return nullDeviceResolvers.promise;
117
201
  }
118
202
 
119
203
  // HELPERS
120
204
 
205
+ function getOrCreateTestDeviceCache(): TestDeviceCache {
206
+ const rootObject = globalThis as typeof globalThis & {
207
+ [TEST_DEVICE_CACHE_KEY]?: TestDeviceCache;
208
+ };
209
+
210
+ rootObject[TEST_DEVICE_CACHE_KEY] ||= {
211
+ nullDevicePromise: null,
212
+ webglDevicePromise: null,
213
+ presentationWebglDevicePromise: null,
214
+ webgpuDevicePromise: null
215
+ };
216
+
217
+ return rootObject[TEST_DEVICE_CACHE_KEY];
218
+ }
219
+
121
220
  // TODO - replace with Promise.withResolvers once we upgrade TS baseline
122
221
  function withResolvers<T>(): {
123
222
  promise: Promise<T>;
@@ -16,9 +16,22 @@ const DEFAULT_CANVAS_CONTEXT_PROPS: CanvasContextProps = {
16
16
  * @deprecated Use getWebGLTestDevice().
17
17
  */
18
18
  export function createTestDevice(): WebGLDevice | null {
19
+ if (cachedWebglDevice) {
20
+ return cachedWebglDevice;
21
+ }
22
+
23
+ if (
24
+ typeof navigator === 'undefined' ||
25
+ typeof document === 'undefined' ||
26
+ typeof HTMLCanvasElement === 'undefined'
27
+ ) {
28
+ return null;
29
+ }
30
+
19
31
  try {
20
32
  // TODO - We do not use luma.createDevice since createTestDevice currently expect WebGL context to be created synchronously
21
- return new WebGLDevice({createCanvasContext: DEFAULT_CANVAS_CONTEXT_PROPS});
33
+ cachedWebglDevice = new WebGLDevice({createCanvasContext: DEFAULT_CANVAS_CONTEXT_PROPS});
34
+ return cachedWebglDevice;
22
35
  } catch (error) {
23
36
  // eslint-disable-next-line no-console
24
37
  console.error(`Failed to created device: ${(error as Error).message}`);
@@ -32,4 +45,6 @@ export function createTestDevice(): WebGLDevice | null {
32
45
  * @note This WebGL Device is create synchronously and can be used directly but will not have WebGL debugging initialized
33
46
  * @deprecated Use getWebGLTestDevice().
34
47
  */
48
+ let cachedWebglDevice: WebGLDevice | null = null;
49
+
35
50
  export const webglDevice = createTestDevice();
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export {
12
12
  getTestDevices,
13
13
  getTestDevice,
14
14
  getWebGLTestDevice,
15
+ getPresentationWebGLTestDevice,
15
16
  getWebGPUTestDevice,
16
17
  getNullTestDevice
17
18
  } from './create-test-device';
@@ -142,8 +142,8 @@ export class NullDevice extends Device {
142
142
  return new NullRenderPipeline(this, props);
143
143
  }
144
144
 
145
- createComputePipeline(props?: ComputePipelineProps): ComputePipeline {
146
- throw new Error('ComputePipeline not supported in WebGL');
145
+ createComputePipeline(_props?: ComputePipelineProps): ComputePipeline {
146
+ throw new Error('ComputePipeline is not supported on NullDevice');
147
147
  }
148
148
 
149
149
  override createCommandEncoder(props: CommandEncoderProps = {}): NullCommandEncoder {
@@ -22,17 +22,27 @@ export class NullCommandBuffer extends CommandBuffer {
22
22
  this.device = device;
23
23
  }
24
24
 
25
- copyBufferToBuffer(options: CopyBufferToBufferOptions): void {}
25
+ copyBufferToBuffer(_options: CopyBufferToBufferOptions): void {
26
+ throw new Error('copyBufferToBuffer is not supported on NullDevice');
27
+ }
26
28
 
27
- copyBufferToTexture(options: CopyBufferToTextureOptions) {}
29
+ copyBufferToTexture(_options: CopyBufferToTextureOptions) {
30
+ throw new Error('copyBufferToTexture is not supported on NullDevice');
31
+ }
28
32
 
29
- copyTextureToBuffer(options: CopyTextureToBufferOptions): void {}
33
+ copyTextureToBuffer(_options: CopyTextureToBufferOptions): void {
34
+ throw new Error('copyTextureToBuffer is not supported on NullDevice');
35
+ }
30
36
 
31
- copyTextureToTexture(options: CopyTextureToTextureOptions): void {}
37
+ copyTextureToTexture(_options: CopyTextureToTextureOptions): void {
38
+ throw new Error('copyTextureToTexture is not supported on NullDevice');
39
+ }
32
40
 
33
41
  pushDebugGroup(groupLabel: string): void {}
34
42
  popDebugGroup() {}
35
43
 
36
- insertDebugMarker(markerLabel: string): void {}
37
- resolveQuerySet(querySet: QuerySet): void {}
44
+ insertDebugMarker(_markerLabel: string): void {}
45
+ resolveQuerySet(_querySet: QuerySet): void {
46
+ throw new Error('resolveQuerySet is not supported on NullDevice');
47
+ }
38
48
  }
@@ -41,19 +41,29 @@ export class NullCommandEncoder extends CommandEncoder {
41
41
  return new NullRenderPass(this.device, props);
42
42
  }
43
43
 
44
- beginComputePass(props: ComputePassProps): ComputePass {
45
- throw new Error('ComputePass not supported in WebGL');
44
+ beginComputePass(_props: ComputePassProps): ComputePass {
45
+ throw new Error('ComputePass is not supported on NullDevice');
46
46
  }
47
47
 
48
- copyBufferToBuffer(options: CopyBufferToBufferOptions): void {}
48
+ copyBufferToBuffer(_options: CopyBufferToBufferOptions): void {
49
+ throw new Error('copyBufferToBuffer is not supported on NullDevice');
50
+ }
49
51
 
50
- copyBufferToTexture(options: CopyBufferToTextureOptions) {}
52
+ copyBufferToTexture(_options: CopyBufferToTextureOptions) {
53
+ throw new Error('copyBufferToTexture is not supported on NullDevice');
54
+ }
51
55
 
52
- copyTextureToBuffer(options: CopyTextureToBufferOptions): void {}
56
+ copyTextureToBuffer(_options: CopyTextureToBufferOptions): void {
57
+ throw new Error('copyTextureToBuffer is not supported on NullDevice');
58
+ }
53
59
 
54
- copyTextureToTexture(options: CopyTextureToTextureOptions): void {}
60
+ copyTextureToTexture(_options: CopyTextureToTextureOptions): void {
61
+ throw new Error('copyTextureToTexture is not supported on NullDevice');
62
+ }
55
63
 
56
- resolveQuerySet(querySet: QuerySet): void {}
64
+ resolveQuerySet(_querySet: QuerySet): void {
65
+ throw new Error('resolveQuerySet is not supported on NullDevice');
66
+ }
57
67
 
58
68
  pushDebugGroup(groupLabel: string): void {}
59
69
  popDebugGroup() {}
@@ -74,12 +74,17 @@ export class NullTexture extends Texture {
74
74
  super.copyImageData(options);
75
75
  }
76
76
 
77
- override readBuffer(options: TextureReadOptions = {}, buffer?: Buffer): Buffer {
78
- return this.device.createBuffer({});
77
+ override readBuffer(_options: TextureReadOptions = {}, buffer?: Buffer): Buffer {
78
+ if (!buffer) {
79
+ throw new Error('buffer required');
80
+ }
81
+ return buffer;
79
82
  }
80
83
 
81
- override async readDataAsync(options: TextureReadOptions = {}): Promise<ArrayBuffer> {
82
- return new ArrayBuffer(0);
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
+ );
83
88
  }
84
89
 
85
90
  override writeBuffer(buffer: Buffer, options: TextureWriteOptions = {}) {