@quake2ts/test-utils 0.0.799 → 0.0.802
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/index.cjs +35 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +35 -14
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- package/src/engine/helpers/webgl-playwright.ts +49 -22
package/dist/index.cjs
CHANGED
|
@@ -13874,24 +13874,45 @@ async function createWebGLPlaywrightSetup(options = {}) {
|
|
|
13874
13874
|
cleanup
|
|
13875
13875
|
};
|
|
13876
13876
|
}
|
|
13877
|
-
async function renderAndCaptureWebGLPlaywright(page, renderFn) {
|
|
13878
|
-
|
|
13879
|
-
const
|
|
13880
|
-
|
|
13881
|
-
|
|
13882
|
-
|
|
13883
|
-
|
|
13884
|
-
|
|
13885
|
-
|
|
13886
|
-
|
|
13887
|
-
|
|
13888
|
-
|
|
13889
|
-
|
|
13877
|
+
async function renderAndCaptureWebGLPlaywright(page, renderFn, width, height) {
|
|
13878
|
+
try {
|
|
13879
|
+
const pixelData = await page.evaluate(({ code, width: width2, height: height2 }) => {
|
|
13880
|
+
const renderer = window.testRenderer;
|
|
13881
|
+
const gl = window.testGl;
|
|
13882
|
+
const canvas = window.testCanvas;
|
|
13883
|
+
if (!renderer || !gl || !canvas) {
|
|
13884
|
+
throw new Error("Renderer not initialized");
|
|
13885
|
+
}
|
|
13886
|
+
if (width2 !== void 0 && height2 !== void 0) {
|
|
13887
|
+
canvas.width = width2;
|
|
13888
|
+
canvas.height = height2;
|
|
13889
|
+
gl.viewport(0, 0, width2, height2);
|
|
13890
|
+
}
|
|
13891
|
+
try {
|
|
13892
|
+
const fn = new Function("renderer", "gl", code);
|
|
13893
|
+
fn(renderer, gl);
|
|
13894
|
+
} catch (err) {
|
|
13895
|
+
throw new Error(`Renderer Execution Error: ${err.message}
|
|
13896
|
+
Code:
|
|
13897
|
+
${code}`);
|
|
13898
|
+
}
|
|
13899
|
+
gl.finish();
|
|
13900
|
+
return window.captureCanvas();
|
|
13901
|
+
}, { code: renderFn, width, height });
|
|
13902
|
+
return new Uint8ClampedArray(pixelData);
|
|
13903
|
+
} catch (err) {
|
|
13904
|
+
throw new Error(`Browser Test Error: ${err.message}`);
|
|
13905
|
+
}
|
|
13890
13906
|
}
|
|
13891
13907
|
async function testWebGLRenderer(renderCode, options) {
|
|
13892
13908
|
const setup = await createWebGLPlaywrightSetup(options);
|
|
13893
13909
|
try {
|
|
13894
|
-
const pixels = await renderAndCaptureWebGLPlaywright(
|
|
13910
|
+
const pixels = await renderAndCaptureWebGLPlaywright(
|
|
13911
|
+
setup.page,
|
|
13912
|
+
renderCode,
|
|
13913
|
+
options.width,
|
|
13914
|
+
options.height
|
|
13915
|
+
);
|
|
13895
13916
|
await expectSnapshot(pixels, {
|
|
13896
13917
|
name: options.name,
|
|
13897
13918
|
description: options.description,
|