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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/deprecated/classic-animation-loop.d.ts.map +1 -1
  2. package/dist/deprecated/classic-animation-loop.js +2 -10
  3. package/dist/deprecated/classic-animation-loop.js.map +1 -1
  4. package/dist/index.cjs +40 -21
  5. package/dist/index.cjs.map +2 -2
  6. package/dist/null-device/null-canvas-context.d.ts.map +1 -1
  7. package/dist/null-device/null-canvas-context.js +1 -0
  8. package/dist/null-device/null-canvas-context.js.map +1 -1
  9. package/dist/null-device/null-device.d.ts +4 -2
  10. package/dist/null-device/null-device.d.ts.map +1 -1
  11. package/dist/null-device/null-device.js +14 -2
  12. package/dist/null-device/null-device.js.map +1 -1
  13. package/dist/null-device/resources/null-command-buffer.d.ts +2 -2
  14. package/dist/null-device/resources/null-command-buffer.d.ts.map +1 -1
  15. package/dist/null-device/resources/null-command-buffer.js.map +1 -1
  16. package/dist/null-device/resources/null-command-encoder.d.ts +2 -1
  17. package/dist/null-device/resources/null-command-encoder.d.ts.map +1 -1
  18. package/dist/null-device/resources/null-command-encoder.js +7 -2
  19. package/dist/null-device/resources/null-command-encoder.js.map +1 -1
  20. package/dist/null-device/resources/null-query-set.d.ts +6 -0
  21. package/dist/null-device/resources/null-query-set.d.ts.map +1 -1
  22. package/dist/null-device/resources/null-query-set.js +11 -0
  23. package/dist/null-device/resources/null-query-set.js.map +1 -1
  24. package/dist/null-device/resources/null-render-pass.d.ts.map +1 -1
  25. package/dist/null-device/resources/null-render-pass.js +6 -1
  26. package/dist/null-device/resources/null-render-pass.js.map +1 -1
  27. package/dist/null-device/resources/null-render-pipeline.d.ts +3 -4
  28. package/dist/null-device/resources/null-render-pipeline.d.ts.map +1 -1
  29. package/dist/null-device/resources/null-render-pipeline.js +0 -5
  30. package/dist/null-device/resources/null-render-pipeline.js.map +1 -1
  31. package/dist/null-device/resources/null-texture.d.ts +1 -1
  32. package/dist/null-device/resources/null-texture.d.ts.map +1 -1
  33. package/dist/null-device/resources/null-texture.js +2 -9
  34. package/dist/null-device/resources/null-texture.js.map +1 -1
  35. package/dist/utils/resource-tracker.js +1 -1
  36. package/dist/utils/resource-tracker.js.map +1 -1
  37. package/package.json +4 -4
  38. package/src/deprecated/classic-animation-loop.ts +2 -10
  39. package/src/null-device/null-canvas-context.ts +1 -0
  40. package/src/null-device/null-device.ts +19 -2
  41. package/src/null-device/resources/null-command-buffer.ts +2 -2
  42. package/src/null-device/resources/null-command-encoder.ts +8 -2
  43. package/src/null-device/resources/null-query-set.ts +14 -0
  44. package/src/null-device/resources/null-render-pass.ts +6 -1
  45. package/src/null-device/resources/null-render-pipeline.ts +3 -14
  46. package/src/null-device/resources/null-texture.ts +8 -13
  47. package/src/utils/resource-tracker.ts +1 -1
@@ -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,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,IAAI,CAAQ;gBAER,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,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 +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;IAClD,MAAM,CAAa;IACnB,MAAM,GAAS,IAAI,CAAC;IAEpB,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,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"}
@@ -7,7 +7,8 @@ export declare class NullCommandEncoder extends CommandEncoder {
7
7
  readonly device: NullDevice;
8
8
  readonly handle: null;
9
9
  constructor(device: NullDevice, props: CommandEncoderProps);
10
- finish(props: CommandBufferProps): NullCommandBuffer;
10
+ destroy(): void;
11
+ finish(props?: CommandBufferProps): NullCommandBuffer;
11
12
  beginRenderPass(props: RenderPassProps): NullRenderPass;
12
13
  beginComputePass(props: ComputePassProps): ComputePass;
13
14
  copyBufferToBuffer(options: CopyBufferToBufferOptions): 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;IAK1D,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,iBAAiB;IAIpD,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,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"}
@@ -11,8 +11,13 @@ export class NullCommandEncoder extends CommandEncoder {
11
11
  super(device, props);
12
12
  this.device = device;
13
13
  }
14
- finish(props) {
15
- return new NullCommandBuffer(this.device, props);
14
+ destroy() {
15
+ this.destroyResource();
16
+ }
17
+ finish(props = {}) {
18
+ const commandBuffer = new NullCommandBuffer(this.device, props);
19
+ this.destroy();
20
+ return commandBuffer;
16
21
  }
17
22
  beginRenderPass(props) {
18
23
  return new NullRenderPass(this.device, props);
@@ -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;IAED,MAAM,CAAC,KAAyB;QAC9B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnD,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,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"}
@@ -4,5 +4,11 @@ export declare class NullQuerySet extends QuerySet {
4
4
  device: NullDevice;
5
5
  readonly handle: null;
6
6
  constructor(device: NullDevice, props: QuerySetProps);
7
+ isResultAvailable(_queryIndex?: number): boolean;
8
+ readResults(options?: {
9
+ firstQuery?: number;
10
+ queryCount?: number;
11
+ }): Promise<bigint[]>;
12
+ readTimestampDuration(_beginIndex: number, _endIndex: number): Promise<number>;
7
13
  }
8
14
  //# sourceMappingURL=null-query-set.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-query-set.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-query-set.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAE1C,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,MAAM,OAAQ;gBAEX,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa;CAIrD"}
1
+ {"version":3,"file":"null-query-set.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-query-set.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAE1C,qBAAa,YAAa,SAAQ,QAAQ;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,MAAM,OAAQ;gBAEX,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa;IAKpD,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAI1C,WAAW,CAAC,OAAO,CAAC,EAAE;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMpF,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrF"}
@@ -9,5 +9,16 @@ export class NullQuerySet extends QuerySet {
9
9
  super(device, props);
10
10
  this.device = device;
11
11
  }
12
+ isResultAvailable(_queryIndex) {
13
+ return false;
14
+ }
15
+ async readResults(options) {
16
+ const firstQuery = options?.firstQuery || 0;
17
+ const queryCount = options?.queryCount || this.props.count - firstQuery;
18
+ return new Array(queryCount).fill(0n);
19
+ }
20
+ async readTimestampDuration(_beginIndex, _endIndex) {
21
+ return 0;
22
+ }
12
23
  }
13
24
  //# sourceMappingURL=null-query-set.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-query-set.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-query-set.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,QAAQ,EAAgB,MAAM,eAAe,CAAC;AAGtD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAa;IACV,MAAM,GAAG,IAAI,CAAC;IAEvB,YAAY,MAAkB,EAAE,KAAoB;QAClD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF"}
1
+ {"version":3,"file":"null-query-set.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-query-set.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,QAAQ,EAAgB,MAAM,eAAe,CAAC;AAGtD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,MAAM,CAAa;IACV,MAAM,GAAG,IAAI,CAAC;IAEvB,YAAY,MAAkB,EAAE,KAAoB;QAClD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,iBAAiB,CAAC,WAAoB;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAoD;QACpE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QACxE,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,WAAmB,EAAE,SAAiB;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"null-render-pass.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAE1C,qBAAa,cAAe,SAAQ,UAAU;IAC5C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,OAAQ;gBAEX,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe;IAKtD,GAAG,IAAI,IAAI;IAEX,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa,IAAI,IAAI;IACrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAE5C,aAAa,CAAC,UAAU,GAAE,oBAAyB,GAAG,IAAI;IAE1D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAC7C,iBAAiB,IAAI,IAAI;CAC1B"}
1
+ {"version":3,"file":"null-render-pass.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,UAAU,EAAC,0BAAuB;AAE1C,qBAAa,cAAe,SAAQ,UAAU;IAC5C,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,OAAQ;gBAEX,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe;IAKtD,GAAG,IAAI,IAAI;IAOX,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa,IAAI,IAAI;IACrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAE5C,aAAa,CAAC,UAAU,GAAE,oBAAyB,GAAG,IAAI;IAE1D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAC7C,iBAAiB,IAAI,IAAI;CAC1B"}
@@ -9,7 +9,12 @@ export class NullRenderPass extends RenderPass {
9
9
  super(device, props);
10
10
  this.device = device;
11
11
  }
12
- end() { }
12
+ end() {
13
+ if (this.destroyed) {
14
+ return;
15
+ }
16
+ this.destroy();
17
+ }
13
18
  pushDebugGroup(groupLabel) { }
14
19
  popDebugGroup() { }
15
20
  insertDebugMarker(markerLabel) { }
@@ -1 +1 @@
1
- {"version":3,"file":"null-render-pass.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,UAAU,EAAwC,MAAM,eAAe,CAAC;AAGhF,MAAM,OAAO,cAAe,SAAQ,UAAU;IACnC,MAAM,CAAa;IACnB,MAAM,GAAG,IAAI,CAAC;IAEvB,YAAY,MAAkB,EAAE,KAAsB;QACpD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,KAAU,CAAC;IAEd,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAU,CAAC;IACxB,iBAAiB,CAAC,WAAmB,IAAS,CAAC;IAE/C,aAAa,CAAC,aAAmC,EAAE,IAAS,CAAC;IAE7D,mBAAmB,CAAC,UAAkB,IAAS,CAAC;IAChD,iBAAiB,KAAU,CAAC;CAC7B"}
1
+ {"version":3,"file":"null-render-pass.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,UAAU,EAAwC,MAAM,eAAe,CAAC;AAGhF,MAAM,OAAO,cAAe,SAAQ,UAAU;IACnC,MAAM,CAAa;IACnB,MAAM,GAAG,IAAI,CAAC;IAEvB,YAAY,MAAkB,EAAE,KAAsB;QACpD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,cAAc,CAAC,UAAkB,IAAS,CAAC;IAC3C,aAAa,KAAU,CAAC;IACxB,iBAAiB,CAAC,WAAmB,IAAS,CAAC;IAE/C,aAAa,CAAC,aAAmC,EAAE,IAAS,CAAC;IAE7D,mBAAmB,CAAC,UAAkB,IAAS,CAAC;IAChD,iBAAiB,KAAU,CAAC;CAC7B"}
@@ -1,4 +1,4 @@
1
- import type { UniformValue, RenderPipelineProps, Binding, RenderPass, VertexArray } from '@luma.gl/core';
1
+ import type { RenderPipelineProps, Binding, RenderPass, VertexArray } from '@luma.gl/core';
2
2
  import { RenderPipeline } from '@luma.gl/core';
3
3
  import type { NullDevice } from "../null-device.js";
4
4
  import { NullShader } from "./null-shader.js";
@@ -8,15 +8,14 @@ export declare class NullRenderPipeline extends RenderPipeline {
8
8
  readonly handle: null;
9
9
  vs: NullShader;
10
10
  fs: NullShader;
11
- uniforms: Record<string, UniformValue>;
12
- bindings: Record<string, Binding>;
13
11
  constructor(device: NullDevice, props: RenderPipelineProps);
14
- setBindings(bindings: Record<string, Binding>): void;
15
12
  draw(options: {
16
13
  renderPass: RenderPass;
17
14
  vertexArray: VertexArray;
18
15
  vertexCount?: number;
19
16
  instanceCount?: number;
17
+ bindings?: Record<string, Binding>;
18
+ uniforms?: Record<string, unknown>;
20
19
  }): boolean;
21
20
  }
22
21
  //# sourceMappingURL=null-render-pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"null-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAC/C,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAEzC,oCAAoC;AACpC,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,MAAM,OAAQ;IAEvB,EAAE,EAAE,UAAU,CAAC;IACf,EAAE,EAAE,UAAU,CAAC;IAEf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;gBAE3B,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB;IAc1D,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIpD,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO;CAMZ"}
1
+ {"version":3,"file":"null-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,mBAAmB,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AACzF,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAC,UAAU,EAAC,0BAAuB;AAC/C,OAAO,EAAC,UAAU,EAAC,yBAAsB;AAEzC,oCAAoC;AACpC,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,MAAM,OAAQ;IAEvB,EAAE,EAAE,UAAU,CAAC;IACf,EAAE,EAAE,UAAU,CAAC;gBAEH,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB;IAc1D,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO;CAMZ"}
@@ -8,8 +8,6 @@ export class NullRenderPipeline extends RenderPipeline {
8
8
  handle = null;
9
9
  vs;
10
10
  fs;
11
- uniforms = {};
12
- bindings = {};
13
11
  constructor(device, props) {
14
12
  super(device, props);
15
13
  this.device = device;
@@ -21,9 +19,6 @@ export class NullRenderPipeline extends RenderPipeline {
21
19
  uniforms: []
22
20
  };
23
21
  }
24
- setBindings(bindings) {
25
- Object.assign(this.bindings, bindings);
26
- }
27
22
  draw(options) {
28
23
  const { renderPass, vertexArray } = options;
29
24
  vertexArray.bindBeforeRender(renderPass);
@@ -1 +1 @@
1
- {"version":3,"file":"null-render-pipeline.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pipeline.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AASpC,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAK7C,oCAAoC;AACpC,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,MAAM,CAAa;IACV,MAAM,GAAG,IAAI,CAAC;IAEvB,EAAE,CAAa;IACf,EAAE,CAAa;IAEf,QAAQ,GAAiC,EAAE,CAAC;IAC5C,QAAQ,GAA4B,EAAE,CAAC;IAEvC,YAAY,MAAkB,EAAE,KAA0B;QACxD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAgB,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAgB,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI;YACxC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,QAAiC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,OAKJ;QACC,MAAM,EAAC,UAAU,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;QAC1C,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"null-render-pipeline.js","sourceRoot":"","sources":["../../../src/null-device/resources/null-render-pipeline.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAK7C,oCAAoC;AACpC,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,MAAM,CAAa;IACV,MAAM,GAAG,IAAI,CAAC;IAEvB,EAAE,CAAa;IACf,EAAE,CAAa;IAEf,YAAY,MAAkB,EAAE,KAA0B;QACxD,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAgB,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAgB,CAAC;QAEjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,IAAI;YACxC,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAOJ;QACC,MAAM,EAAC,UAAU,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;QAC1C,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,WAAW,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -19,6 +19,6 @@ export declare class NullTexture extends Texture {
19
19
  readBuffer(options?: TextureReadOptions, buffer?: Buffer): Buffer;
20
20
  readDataAsync(options?: TextureReadOptions): Promise<ArrayBuffer>;
21
21
  writeBuffer(buffer: Buffer, options?: TextureWriteOptions): void;
22
- writeData(data: ArrayBuffer | ArrayBufferView, options?: TextureWriteOptions): void;
22
+ writeData(data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView, options?: TextureWriteOptions): void;
23
23
  }
24
24
  //# sourceMappingURL=null-texture.d.ts.map
@@ -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;IAwB1C,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;IAc5E,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI;IAI3D,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAIzC,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,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI;CAGjG"}
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"}
@@ -24,6 +24,7 @@ export class NullTexture extends Texture {
24
24
  mipLevelCount: 1,
25
25
  arrayLayerCount: 1
26
26
  });
27
+ this.trackAllocatedMemory(this.getAllocatedByteLength(), 'Texture');
27
28
  Object.seal(this);
28
29
  }
29
30
  destroy() {
@@ -36,21 +37,13 @@ export class NullTexture extends Texture {
36
37
  return new NullTextureView(this.device, { ...props, texture: this });
37
38
  }
38
39
  copyExternalImage(options) {
39
- this.trackDeallocatedMemory('Texture');
40
- // const {image: data} = options;
41
- // if (data && data.byteLength) {
42
- // this.trackAllocatedMemory(data.byteLength, 'Texture');
43
- // } else {
44
- const bytesPerPixel = 4;
45
- this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
46
- // }
47
40
  return { width: this.width, height: this.height };
48
41
  }
49
42
  setSampler(sampler) {
50
43
  // ignore
51
44
  }
52
45
  copyImageData(options) {
53
- throw new Error('copyImageData not implemented');
46
+ super.copyImageData(options);
54
47
  }
55
48
  readBuffer(options = {}, buffer) {
56
49
  return this.device.createBuffer({});
@@ -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,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,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEvC,iCAAiC;QACjC,iCAAiC;QACjC,2DAA2D;QAC3D,WAAW;QACX,MAAM,aAAa,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE,SAAS,CAAC,CAAC;QAC/E,IAAI;QAEJ,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;IAED,aAAa,CAAC,OAA6B;QACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,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,CAAC,IAAmC,EAAE,UAA+B,EAAE;QACvF,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,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,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
@@ -1 +1 @@
1
- {"version":3,"file":"resource-tracker.js","sourceRoot":"","sources":["../../src/utils/resource-tracker.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,MAAM,UAAU,iBAAiB;IAC/B,aAAa;IACb,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACxD,OAAO;QACL,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK;QACvD,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAmC,EACnC,SAAiC;IAEjC,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE;gBACnD,CAAC,YAAY,CAAC,EAAE,SAAS;gBACzB,IAAI,EAAE,GAAG,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"resource-tracker.js","sourceRoot":"","sources":["../../src/utils/resource-tracker.ts"],"names":[],"mappings":"AAAA,iBAAiB;AACjB,MAAM,UAAU,iBAAiB;IAC/B,aAAa;IACb,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC5D,OAAO;QACL,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK;QACvD,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK;KAClD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAmC,EACnC,SAAiC;IAEjC,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,MAAM,IAAI,GAAG,WAAW,CAAC;IACzB,KAAK,MAAM,YAAY,IAAI,SAAS,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;QACtE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,eAAe,EAAE;gBACnD,CAAC,YAAY,CAAC,EAAE,SAAS;gBACzB,IAAI,EAAE,GAAG,IAAI,IAAI,YAAY,KAAK,SAAS,IAAI;aAChD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/test-utils",
3
- "version": "9.3.0-alpha.2",
3
+ "version": "9.3.0-alpha.6",
4
4
  "description": "Automated WebGL testing utilities with Puppeteer and image diffing",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,8 +43,8 @@
43
43
  "@luma.gl/webgpu": "9.2.0-alpha.6"
44
44
  },
45
45
  "dependencies": {
46
- "@probe.gl/env": "^4.0.8",
47
- "@probe.gl/stats": "^4.0.8"
46
+ "@probe.gl/env": "^4.1.1",
47
+ "@probe.gl/stats": "^4.1.1"
48
48
  },
49
- "gitHead": "7fedf8d8902f58490a4ffca9a873daee3c732f24"
49
+ "gitHead": "59fda5480c4d0bb3d64545d4621175221f2b6c7c"
50
50
  }
@@ -163,9 +163,9 @@ export class ClassicAnimationLoop {
163
163
  this.gl = (this.device && this.device.gl) || props.gl;
164
164
 
165
165
  this.stats = props.stats;
166
+ this.frameRate = this.stats.get('Frame Rate');
166
167
  this.cpuTime = this.stats.get('CPU Time');
167
168
  this.gpuTime = this.stats.get('GPU Time');
168
- this.frameRate = this.stats.get('Frame Rate');
169
169
 
170
170
  this.setProps({
171
171
  autoResizeViewport: props.autoResizeViewport,
@@ -613,15 +613,7 @@ export class ClassicAnimationLoop {
613
613
  const width = this.gl.drawingBufferWidth;
614
614
  const height = this.gl.drawingBufferHeight;
615
615
 
616
- // https://webglfundamentals.org/webgl/lessons/webgl-anti-patterns.html
617
- let aspect = 1;
618
-
619
- const canvas = getHTMLCanvasElement(this.gl.canvas);
620
- if (canvas && canvas.clientHeight) {
621
- aspect = canvas.clientWidth / canvas.clientHeight;
622
- } else if (width > 0 && height > 0) {
623
- aspect = width / height;
624
- }
616
+ const aspect = width > 0 && height > 0 ? width / height : 1;
625
617
 
626
618
  return {width, height, aspect};
627
619
  }
@@ -29,6 +29,7 @@ export class NullCanvasContext extends CanvasContext {
29
29
  // Base class constructor cannot access derived methods/fields, so we need to call these functions in the subclass constructor
30
30
  this._setAutoCreatedCanvasId(`${this.device.id}-canvas`);
31
31
  this._configureDevice();
32
+ this._startObservers();
32
33
  }
33
34
 
34
35
  _getCurrentFramebuffer(): NullFramebuffer {
@@ -5,6 +5,8 @@
5
5
  import type {
6
6
  DeviceProps,
7
7
  CanvasContextProps,
8
+ PresentationContextProps,
9
+ PresentationContext,
8
10
  VertexArray,
9
11
  VertexArrayProps,
10
12
  BufferProps,
@@ -22,6 +24,7 @@ import type {
22
24
  QuerySetProps
23
25
  } from '@luma.gl/core';
24
26
  import {Device, DeviceFeatures} from '@luma.gl/core';
27
+ import type {NullCommandBuffer} from './resources/null-command-buffer';
25
28
 
26
29
  import {NullDeviceInfo} from './null-device-info';
27
30
  import {NullDeviceLimits} from './null-device-features';
@@ -72,7 +75,9 @@ export class NullDevice extends Device {
72
75
  * Destroys the context
73
76
  * @note Has no effect for null contexts
74
77
  */
75
- destroy(): void {}
78
+ destroy(): void {
79
+ this.commandEncoder?.destroy();
80
+ }
76
81
 
77
82
  get isLost(): boolean {
78
83
  return false;
@@ -84,6 +89,10 @@ export class NullDevice extends Device {
84
89
  return new NullCanvasContext(this, props);
85
90
  }
86
91
 
92
+ createPresentationContext(_props?: PresentationContextProps): PresentationContext {
93
+ throw new Error('PresentationContext is not supported on NullDevice');
94
+ }
95
+
87
96
  createBuffer(props: BufferProps | ArrayBuffer | ArrayBufferView): NullBuffer {
88
97
  const newProps = this._normalizeBufferProps(props);
89
98
  return new NullBuffer(this, newProps);
@@ -141,7 +150,15 @@ export class NullDevice extends Device {
141
150
  return new NullCommandEncoder(this, props);
142
151
  }
143
152
 
144
- submit(): void {}
153
+ submit(commandBuffer?: NullCommandBuffer): void {
154
+ if (!commandBuffer) {
155
+ commandBuffer = this.commandEncoder.finish({id: `${this.id}-default-command-buffer`});
156
+ this.commandEncoder.destroy();
157
+ this.commandEncoder = this.createCommandEncoder({id: `${this.id}-default-command-encoder`});
158
+ }
159
+
160
+ commandBuffer.destroy();
161
+ }
145
162
 
146
163
  override setParametersWebGL(parameters: any): void {}
147
164
 
@@ -14,8 +14,8 @@ import {CommandBuffer} from '@luma.gl/core';
14
14
  import type {NullDevice} from '../null-device';
15
15
 
16
16
  export class NullCommandBuffer extends CommandBuffer {
17
- device: NullDevice;
18
- handle: null = null;
17
+ readonly device: NullDevice;
18
+ readonly handle: null = null;
19
19
 
20
20
  constructor(device: NullDevice, props: CommandBufferProps) {
21
21
  super(device, props);
@@ -27,8 +27,14 @@ export class NullCommandEncoder extends CommandEncoder {
27
27
  this.device = device;
28
28
  }
29
29
 
30
- finish(props: CommandBufferProps): NullCommandBuffer {
31
- return new NullCommandBuffer(this.device, props);
30
+ override destroy(): void {
31
+ this.destroyResource();
32
+ }
33
+
34
+ finish(props: CommandBufferProps = {}): NullCommandBuffer {
35
+ const commandBuffer = new NullCommandBuffer(this.device, props);
36
+ this.destroy();
37
+ return commandBuffer;
32
38
  }
33
39
 
34
40
  beginRenderPass(props: RenderPassProps): NullRenderPass {
@@ -13,4 +13,18 @@ export class NullQuerySet extends QuerySet {
13
13
  super(device, props);
14
14
  this.device = device;
15
15
  }
16
+
17
+ isResultAvailable(_queryIndex?: number): boolean {
18
+ return false;
19
+ }
20
+
21
+ async readResults(options?: {firstQuery?: number; queryCount?: number}): Promise<bigint[]> {
22
+ const firstQuery = options?.firstQuery || 0;
23
+ const queryCount = options?.queryCount || this.props.count - firstQuery;
24
+ return new Array(queryCount).fill(0n);
25
+ }
26
+
27
+ async readTimestampDuration(_beginIndex: number, _endIndex: number): Promise<number> {
28
+ return 0;
29
+ }
16
30
  }
@@ -14,7 +14,12 @@ export class NullRenderPass extends RenderPass {
14
14
  this.device = device;
15
15
  }
16
16
 
17
- end(): void {}
17
+ end(): void {
18
+ if (this.destroyed) {
19
+ return;
20
+ }
21
+ this.destroy();
22
+ }
18
23
 
19
24
  pushDebugGroup(groupLabel: string): void {}
20
25
  popDebugGroup(): void {}
@@ -2,13 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {
6
- UniformValue,
7
- RenderPipelineProps,
8
- Binding,
9
- RenderPass,
10
- VertexArray
11
- } from '@luma.gl/core';
5
+ import type {RenderPipelineProps, Binding, RenderPass, VertexArray} from '@luma.gl/core';
12
6
  import {RenderPipeline} from '@luma.gl/core';
13
7
 
14
8
  import type {NullDevice} from '../null-device';
@@ -22,9 +16,6 @@ export class NullRenderPipeline extends RenderPipeline {
22
16
  vs: NullShader;
23
17
  fs: NullShader;
24
18
 
25
- uniforms: Record<string, UniformValue> = {};
26
- bindings: Record<string, Binding> = {};
27
-
28
19
  constructor(device: NullDevice, props: RenderPipelineProps) {
29
20
  super(device, props);
30
21
  this.device = device;
@@ -39,15 +30,13 @@ export class NullRenderPipeline extends RenderPipeline {
39
30
  };
40
31
  }
41
32
 
42
- setBindings(bindings: Record<string, Binding>): void {
43
- Object.assign(this.bindings, bindings);
44
- }
45
-
46
33
  draw(options: {
47
34
  renderPass: RenderPass;
48
35
  vertexArray: VertexArray;
49
36
  vertexCount?: number;
50
37
  instanceCount?: number;
38
+ bindings?: Record<string, Binding>;
39
+ uniforms?: Record<string, unknown>;
51
40
  }): boolean {
52
41
  const {renderPass, vertexArray} = options;
53
42
  vertexArray.bindBeforeRender(renderPass);
@@ -46,6 +46,8 @@ export class NullTexture extends Texture {
46
46
  arrayLayerCount: 1
47
47
  });
48
48
 
49
+ this.trackAllocatedMemory(this.getAllocatedByteLength(), 'Texture');
50
+
49
51
  Object.seal(this);
50
52
  }
51
53
 
@@ -61,16 +63,6 @@ export class NullTexture extends Texture {
61
63
  }
62
64
 
63
65
  copyExternalImage(options: CopyExternalImageOptions): {width: number; height: number} {
64
- this.trackDeallocatedMemory('Texture');
65
-
66
- // const {image: data} = options;
67
- // if (data && data.byteLength) {
68
- // this.trackAllocatedMemory(data.byteLength, 'Texture');
69
- // } else {
70
- const bytesPerPixel = 4;
71
- this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
72
- // }
73
-
74
66
  return {width: this.width, height: this.height};
75
67
  }
76
68
 
@@ -78,8 +70,8 @@ export class NullTexture extends Texture {
78
70
  // ignore
79
71
  }
80
72
 
81
- copyImageData(options: CopyImageDataOptions): void {
82
- throw new Error('copyImageData not implemented');
73
+ override copyImageData(options: CopyImageDataOptions): void {
74
+ super.copyImageData(options);
83
75
  }
84
76
 
85
77
  override readBuffer(options: TextureReadOptions = {}, buffer?: Buffer): Buffer {
@@ -94,7 +86,10 @@ export class NullTexture extends Texture {
94
86
  // ignore
95
87
  }
96
88
 
97
- override writeData(data: ArrayBuffer | ArrayBufferView, options: TextureWriteOptions = {}): void {
89
+ override writeData(
90
+ data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView,
91
+ options: TextureWriteOptions = {}
92
+ ): void {
98
93
  // ignore
99
94
  }
100
95
  }
@@ -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