browser/devtools/shadereditor/test/browser_webgl-actor-test-14.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:694ce800eea2
1 /* Any copyright is dedicated to the Public Domain.
2 http://creativecommons.org/publicdomain/zero/1.0/ */
3
4 /**
5 * Tests that the rendering is updated when a uniform variable is
6 * changed in one shader of a page with multiple WebGL contexts.
7 */
8
9 function ifWebGLSupported() {
10 let [target, debuggee, front] = yield initBackend(MULTIPLE_CONTEXTS_URL);
11 front.setup({ reload: true });
12
13 let [firstProgramActor, secondProgramActor] = yield getPrograms(front, 2);
14
15 let firstFragmentShader = yield firstProgramActor.getFragmentShader();
16 let secondFragmentShader = yield secondProgramActor.getFragmentShader();
17
18 let oldFragSource = yield firstFragmentShader.getText();
19 let newFragSource = oldFragSource.replace("vec4(uColor", "vec4(0.25, 0.25, 0.25");
20 let status = yield firstFragmentShader.compile(newFragSource);
21 ok(!status,
22 "The first new fragment shader source was compiled without errors.");
23
24 yield waitForFrame(debuggee);
25 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
26 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
27 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
28 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 0, g: 255, b: 255, a: 255 }, true, "#canvas2");
29 ok(true, "The first fragment shader was changed.");
30
31 let oldFragSource = yield secondFragmentShader.getText();
32 let newFragSource = oldFragSource.replace("vec4(uColor", "vec4(0.75, 0.75, 0.75");
33 let status = yield secondFragmentShader.compile(newFragSource);
34 ok(!status,
35 "The second new fragment shader source was compiled without errors.");
36
37 yield waitForFrame(debuggee);
38 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
39 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 64, g: 64, b: 64, a: 255 }, true, "#canvas1");
40 yield ensurePixelIs(debuggee, { x: 0, y: 0 }, { r: 191, g: 191, b: 191, a: 255 }, true, "#canvas2");
41 yield ensurePixelIs(debuggee, { x: 127, y: 127 }, { r: 191, g: 191, b: 191, a: 255 }, true, "#canvas2");
42 ok(true, "The second fragment shader was changed.");
43
44 yield removeTab(target.tab);
45 finish();
46 }

mercurial