summaryrefslogtreecommitdiff
path: root/tests/unit
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2024-09-22 09:10:54 +0530
committerGitHub <noreply@github.com>2024-09-22 09:10:54 +0530
commit0cb00a6e89d83d4e16e6616f7af8819bd894b0da (patch)
treeceb2411d41cd36fd9c13488b7bbfc31ecef0e0a8 /tests/unit
parent9be8dce0c7f8deaeff5523735e0867194ec04c59 (diff)
BREAKING(webgpu/unstable): move `width` and `height` options to `UnsafeWindowSurface` constructor (#24200)
Fixes https://github.com/denoland/deno/issues/23508 `width` and `height` are required to configure the wgpu surface because Deno is headless and depends on user to create a window. The options were non-standard extension of `GPUCanvasConfiguration#configure`. This PR adds a required options parameter with the `width` and `height` options to `Deno.UnsafeWindowSurface` constructor. ```typescript // Old, non-standard extension of GPUCanvasConfiguration const surface = new Deno.UnsafeWindowSurface("x11", displayHandle, windowHandle); const context = surface.getContext(); context.configure({ width: 600, height: 800, /* ... */ }); ``` ```typescript // New const surface = new Deno.UnsafeWindowSurface({ system: "x11", windowHandle, displayHandle, width: 600, height: 800, }); const context = surface.getContext(); context.configure({ /* ... */ }); ```
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/webgpu_test.ts21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/unit/webgpu_test.ts b/tests/unit/webgpu_test.ts
index ae584a587..6c91abe4a 100644
--- a/tests/unit/webgpu_test.ts
+++ b/tests/unit/webgpu_test.ts
@@ -236,13 +236,32 @@ Deno.test({
assertThrows(
() => {
- new Deno.UnsafeWindowSurface("cocoa", null, null);
+ new Deno.UnsafeWindowSurface({
+ system: "cocoa",
+ windowHandle: null,
+ displayHandle: null,
+ width: 0,
+ height: 0,
+ });
},
);
device.destroy();
});
+Deno.test(function webgpuWindowSurfaceNoWidthHeight() {
+ assertThrows(
+ () => {
+ // @ts-expect-error width and height are required
+ new Deno.UnsafeWindowSurface({
+ system: "x11",
+ windowHandle: null,
+ displayHandle: null,
+ });
+ },
+ );
+});
+
Deno.test(function getPreferredCanvasFormat() {
const preferredFormat = navigator.gpu.getPreferredCanvasFormat();
assert(preferredFormat === "bgra8unorm" || preferredFormat === "rgba8unorm");