@luma.gl/test-utils 9.0.0-beta.4 → 9.0.0-beta.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/check-type.js +5 -2
- package/dist/create-test-device.d.ts +2 -6
- package/dist/create-test-device.d.ts.map +1 -1
- package/dist/create-test-device.js +47 -54
- package/dist/engine/classic-animation-loop.d.ts +5 -5
- package/dist/engine/classic-animation-loop.d.ts.map +1 -1
- package/dist/engine/classic-animation-loop.js +518 -422
- package/dist/index.cjs +63 -41
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/performance-test-runner.d.ts +1 -1
- package/dist/performance-test-runner.d.ts.map +1 -1
- package/dist/performance-test-runner.js +36 -42
- package/dist/register-devices.js +4 -4
- package/dist/snapshot-test-runner.d.ts +1 -1
- package/dist/snapshot-test-runner.d.ts.map +1 -1
- package/dist/snapshot-test-runner.js +44 -36
- package/dist/test-runner.d.ts +3 -3
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +180 -152
- package/dist/utils/check-type.d.ts +6 -0
- package/dist/utils/check-type.d.ts.map +1 -0
- package/dist/utils/check-type.js +5 -0
- package/dist/utils/deep-copy.d.ts +3 -0
- package/dist/utils/deep-copy.d.ts.map +1 -0
- package/dist/utils/deep-copy.js +14 -0
- package/dist/utils/get-bounding-box.d.ts +7 -0
- package/dist/utils/get-bounding-box.d.ts.map +1 -0
- package/dist/utils/get-bounding-box.js +10 -0
- package/dist/utils/resource-tracker.d.ts +6 -0
- package/dist/utils/resource-tracker.d.ts.map +1 -0
- package/dist/utils/resource-tracker.js +23 -0
- package/dist/utils.js +8 -8
- package/package.json +17 -25
- package/src/create-test-device.ts +11 -16
- package/src/engine/classic-animation-loop.ts +20 -20
- package/src/index.ts +9 -2
- package/src/performance-test-runner.ts +2 -1
- package/src/register-devices.ts +3 -5
- package/src/snapshot-test-runner.ts +7 -3
- package/src/test-runner.ts +14 -8
- package/src/{check-type.ts → utils/check-type.ts} +0 -1
- package/src/utils/deep-copy.ts +16 -0
- package/src/{utils.ts → utils/get-bounding-box.ts} +6 -1
- package/src/utils/resource-tracker.ts +27 -0
- package/dist/check-type.js.map +0 -1
- package/dist/create-test-device.js.map +0 -1
- package/dist/engine/classic-animation-loop.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/performance-test-runner.js.map +0 -1
- package/dist/register-devices.js.map +0 -1
- package/dist/snapshot-test-runner.js.map +0 -1
- package/dist/test-runner.js.map +0 -1
- package/dist/utils.js.map +0 -1
package/dist/check-type.js
CHANGED
|
@@ -2,14 +2,10 @@ import type { Device, DeviceProps } from '@luma.gl/core';
|
|
|
2
2
|
import { WebGLDevice } from '@luma.gl/webgl';
|
|
3
3
|
import { WebGPUDevice } from '@luma.gl/webgpu';
|
|
4
4
|
/** Create a test WebGL context */
|
|
5
|
-
export declare function createTestContext(opts?: Record<string, any>):
|
|
5
|
+
export declare function createTestContext(opts?: Record<string, any>): WebGL2RenderingContext | null;
|
|
6
6
|
/** Create a test WebGLDevice */
|
|
7
7
|
export declare function createTestDevice(props?: DeviceProps): WebGLDevice | null;
|
|
8
|
-
/** A WebGL
|
|
9
|
-
export declare const webgl1Device: WebGLDevice;
|
|
10
|
-
/** A WebGL 2 Device intended for testing. Can be null */
|
|
11
|
-
export declare const webgl2Device: WebGLDevice;
|
|
12
|
-
/** A WebGL 2 or WebGL 1 Device intended for testing. Best available. */
|
|
8
|
+
/** A WebGL 2 Device intended for testing */
|
|
13
9
|
export declare const webglDevice: WebGLDevice;
|
|
14
10
|
/** Only available after getTestDevices() has completed */
|
|
15
11
|
export declare let webgpuDevice: WebGPUDevice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-test-device.d.ts","sourceRoot":"","sources":["../src/create-test-device.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-test-device.d.ts","sourceRoot":"","sources":["../src/create-test-device.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAQ7C,kCAAkC;AAClC,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,sBAAsB,GAAG,IAAI,CAG/F;AAED,gCAAgC;AAChC,wBAAgB,gBAAgB,CAAC,KAAK,GAAE,WAAgB,GAAG,WAAW,GAAG,IAAI,CAU5E;AAED,4CAA4C;AAC5C,eAAO,MAAM,WAAW,EAAE,WAA0D,CAAC;AAErF,0DAA0D;AAC1D,eAAO,IAAI,YAAY,EAAE,YAAY,CAAC;AAItC,yDAAyD;AACzD,wBAAgB,mBAAmB,IAAI,WAAW,EAAE,CAInD;AAED,0CAA0C;AAC1C,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAkBxD"}
|
|
@@ -1,66 +1,59 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { luma } from '@luma.gl/core';
|
|
2
5
|
import { WebGLDevice } from '@luma.gl/webgl';
|
|
3
6
|
const CONTEXT_DEFAULTS = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
width: 1,
|
|
8
|
+
height: 1,
|
|
9
|
+
debug: true
|
|
7
10
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
/** Create a test WebGL context */
|
|
12
|
+
export function createTestContext(opts = {}) {
|
|
13
|
+
const device = createTestDevice(opts);
|
|
14
|
+
return device && device.gl;
|
|
12
15
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
16
|
+
/** Create a test WebGLDevice */
|
|
17
|
+
export function createTestDevice(props = {}) {
|
|
18
|
+
try {
|
|
19
|
+
props = { ...CONTEXT_DEFAULTS, ...props, debug: true };
|
|
20
|
+
// We dont use luma.createDevice since this tests current expect this context to be created synchronously
|
|
21
|
+
return new WebGLDevice(props);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
// eslint-disable-next-line no-console
|
|
25
|
+
console.error(`Failed to created device '${props.id}': ${error.message}`);
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
webgl2: false
|
|
31
|
-
});
|
|
32
|
-
export const webgl2Device = createTestDevice({
|
|
33
|
-
id: 'webgl2-test-device',
|
|
34
|
-
webgl1: false,
|
|
35
|
-
webgl2: true
|
|
36
|
-
});
|
|
37
|
-
export const webglDevice = webgl2Device || webgl1Device;
|
|
29
|
+
/** A WebGL 2 Device intended for testing */
|
|
30
|
+
export const webglDevice = createTestDevice({ id: 'webgl2-test-device' });
|
|
31
|
+
/** Only available after getTestDevices() has completed */
|
|
38
32
|
export let webgpuDevice;
|
|
39
33
|
let webgpuCreated = false;
|
|
34
|
+
/** Synchronously get test devices (only WebGLDevices) */
|
|
40
35
|
export function getWebGLTestDevices() {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
devices
|
|
44
|
-
}
|
|
45
|
-
if (webgl1Device) {
|
|
46
|
-
devices.push(webgl1Device);
|
|
47
|
-
}
|
|
48
|
-
return devices;
|
|
36
|
+
const devices = [];
|
|
37
|
+
devices.push(webglDevice);
|
|
38
|
+
return devices;
|
|
49
39
|
}
|
|
40
|
+
/** Includes WebGPU device if available */
|
|
50
41
|
export async function getTestDevices() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
42
|
+
if (!webgpuCreated) {
|
|
43
|
+
webgpuCreated = true;
|
|
44
|
+
try {
|
|
45
|
+
webgpuDevice = (await luma.createDevice({
|
|
46
|
+
id: 'webgpu-test-device',
|
|
47
|
+
type: 'webgpu'
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// ignore (assume WebGPU was not available)
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const devices = getWebGLTestDevices();
|
|
55
|
+
if (webgpuDevice) {
|
|
56
|
+
devices.unshift(webgpuDevice);
|
|
57
|
+
}
|
|
58
|
+
return devices;
|
|
65
59
|
}
|
|
66
|
-
//# sourceMappingURL=create-test-device.js.map
|
|
@@ -12,7 +12,7 @@ export type ClassicAnimationProps = AnimationProps & {
|
|
|
12
12
|
/** @deprecated Use .device */
|
|
13
13
|
stop: () => ClassicAnimationLoop;
|
|
14
14
|
/** @deprecated Use .device */
|
|
15
|
-
gl:
|
|
15
|
+
gl: WebGL2RenderingContext;
|
|
16
16
|
/** @deprecated Will be removed */
|
|
17
17
|
framebuffer: unknown;
|
|
18
18
|
/** @deprecated Use .timeline */
|
|
@@ -25,7 +25,7 @@ export type ClassicAnimationProps = AnimationProps & {
|
|
|
25
25
|
/** ClassicAnimationLoop properties */
|
|
26
26
|
export type ClassicAnimationLoopProps = {
|
|
27
27
|
onCreateDevice?: (props: DeviceProps) => Promise<Device>;
|
|
28
|
-
onCreateContext?: (props: ContextProps) =>
|
|
28
|
+
onCreateContext?: (props: ContextProps) => WebGL2RenderingContext;
|
|
29
29
|
onAddHTML?: (div: HTMLDivElement) => string;
|
|
30
30
|
onInitialize?: (animationProps: ClassicAnimationProps) => {} | void | Promise<{} | void>;
|
|
31
31
|
onRender?: (animationProps: ClassicAnimationProps) => void;
|
|
@@ -38,7 +38,7 @@ export type ClassicAnimationLoopProps = {
|
|
|
38
38
|
autoResizeDrawingBuffer?: boolean;
|
|
39
39
|
useDevicePixels?: number | boolean;
|
|
40
40
|
/** @deprecated Use .device */
|
|
41
|
-
gl?:
|
|
41
|
+
gl?: WebGL2RenderingContext | null;
|
|
42
42
|
/** @deprecated Will be removed */
|
|
43
43
|
createFramebuffer?: boolean;
|
|
44
44
|
};
|
|
@@ -66,7 +66,7 @@ export declare class ClassicAnimationLoop {
|
|
|
66
66
|
_resolveNextFrame: ((loop: ClassicAnimationLoop) => void) | null;
|
|
67
67
|
_cpuStartTime: number;
|
|
68
68
|
/** @deprecated */
|
|
69
|
-
gl:
|
|
69
|
+
gl: WebGL2RenderingContext;
|
|
70
70
|
constructor(props?: ClassicAnimationLoopProps);
|
|
71
71
|
destroy(): void;
|
|
72
72
|
/** @deprecated Use .destroy() */
|
|
@@ -89,7 +89,7 @@ export declare class ClassicAnimationLoop {
|
|
|
89
89
|
onRender(animationProps: ClassicAnimationProps): void;
|
|
90
90
|
onFinalize(animationProps: ClassicAnimationProps): void;
|
|
91
91
|
/** @deprecated Use .onCreateDevice() */
|
|
92
|
-
onCreateContext(props: ContextProps):
|
|
92
|
+
onCreateContext(props: ContextProps): WebGL2RenderingContext;
|
|
93
93
|
/** @deprecated */
|
|
94
94
|
getHTMLControlValue(id: any, defaultValue?: number): number;
|
|
95
95
|
_initialize(props: ClassicAnimationLoopProps): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classic-animation-loop.d.ts","sourceRoot":"","sources":["../../src/engine/classic-animation-loop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"classic-animation-loop.d.ts","sourceRoot":"","sources":["../../src/engine/classic-animation-loop.ts"],"names":[],"mappings":"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"}
|