@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.
- package/dist/deprecated/classic-animation-loop.d.ts.map +1 -1
- package/dist/deprecated/classic-animation-loop.js +2 -10
- package/dist/deprecated/classic-animation-loop.js.map +1 -1
- package/dist/index.cjs +40 -21
- package/dist/index.cjs.map +2 -2
- package/dist/null-device/null-canvas-context.d.ts.map +1 -1
- package/dist/null-device/null-canvas-context.js +1 -0
- package/dist/null-device/null-canvas-context.js.map +1 -1
- package/dist/null-device/null-device.d.ts +4 -2
- package/dist/null-device/null-device.d.ts.map +1 -1
- package/dist/null-device/null-device.js +14 -2
- package/dist/null-device/null-device.js.map +1 -1
- package/dist/null-device/resources/null-command-buffer.d.ts +2 -2
- package/dist/null-device/resources/null-command-buffer.d.ts.map +1 -1
- package/dist/null-device/resources/null-command-buffer.js.map +1 -1
- package/dist/null-device/resources/null-command-encoder.d.ts +2 -1
- package/dist/null-device/resources/null-command-encoder.d.ts.map +1 -1
- package/dist/null-device/resources/null-command-encoder.js +7 -2
- package/dist/null-device/resources/null-command-encoder.js.map +1 -1
- package/dist/null-device/resources/null-query-set.d.ts +6 -0
- package/dist/null-device/resources/null-query-set.d.ts.map +1 -1
- package/dist/null-device/resources/null-query-set.js +11 -0
- package/dist/null-device/resources/null-query-set.js.map +1 -1
- package/dist/null-device/resources/null-render-pass.d.ts.map +1 -1
- package/dist/null-device/resources/null-render-pass.js +6 -1
- package/dist/null-device/resources/null-render-pass.js.map +1 -1
- package/dist/null-device/resources/null-render-pipeline.d.ts +3 -4
- package/dist/null-device/resources/null-render-pipeline.d.ts.map +1 -1
- package/dist/null-device/resources/null-render-pipeline.js +0 -5
- package/dist/null-device/resources/null-render-pipeline.js.map +1 -1
- package/dist/null-device/resources/null-texture.d.ts +1 -1
- package/dist/null-device/resources/null-texture.d.ts.map +1 -1
- package/dist/null-device/resources/null-texture.js +2 -9
- package/dist/null-device/resources/null-texture.js.map +1 -1
- package/dist/utils/resource-tracker.js +1 -1
- package/dist/utils/resource-tracker.js.map +1 -1
- package/package.json +4 -4
- package/src/deprecated/classic-animation-loop.ts +2 -10
- package/src/null-device/null-canvas-context.ts +1 -0
- package/src/null-device/null-device.ts +19 -2
- package/src/null-device/resources/null-command-buffer.ts +2 -2
- package/src/null-device/resources/null-command-encoder.ts +8 -2
- package/src/null-device/resources/null-query-set.ts +14 -0
- package/src/null-device/resources/null-render-pass.ts +6 -1
- package/src/null-device/resources/null-render-pipeline.ts +3 -14
- package/src/null-device/resources/null-texture.ts +8 -13
- 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;
|
|
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;
|
|
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
|
-
|
|
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;
|
|
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
|
-
|
|
15
|
-
|
|
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,
|
|
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;
|
|
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;
|
|
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,
|
|
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 {
|
|
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,
|
|
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;
|
|
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;
|
|
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
|
-
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|
|
47
|
-
"@probe.gl/stats": "^4.
|
|
46
|
+
"@probe.gl/env": "^4.1.1",
|
|
47
|
+
"@probe.gl/stats": "^4.1.1"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
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
|
-
|
|
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
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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(
|
|
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
|