summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/canvas/element/manual/imagebitmap/imageBitmapRendering-transferFromImageBitmap-webgl.html
blob: 049a3822cd69f8223c955fcc6995d204416f51ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE html>
<link rel="match" href="imageBitmapRendering-transferFromImageBitmap-webgl-expected.html" />

<body>
  <p>
    Test creating an ImageBitmap from the transferToImageBitmap of a webgl OffscreenCanvas, and then
    transferred to an ImageBitmapRenderingContext.
  </p>
  <canvas id="canvas" width="300" height="300"></canvas>
</body>
<script>

  function drawSquares(ctx) {
    ctx.enable(ctx.SCISSOR_TEST);
    ctx.scissor(0, 150, 150, 150);
    ctx.clearColor(1, 0, 0, 1);
    ctx.clear(ctx.COLOR_BUFFER_BIT);
    ctx.scissor(150, 150, 300, 150);
    ctx.clearColor(0, 1, 0, 1);
    ctx.clear(ctx.COLOR_BUFFER_BIT);
    ctx.scissor(0, 0, 150, 150);
    ctx.clearColor(0, 0, 1, 1);
    ctx.clear(ctx.COLOR_BUFFER_BIT);
  }

  async function runTest() {
    const offscreen = new OffscreenCanvas(300, 300);
    const ctxOffscreen = offscreen.getContext('webgl');
    drawSquares(ctxOffscreen);
    const image = offscreen.transferToImageBitmap();
    const canvas = document.getElementById('canvas');
    const ctx = canvas.getContext('bitmaprenderer');
    ctx.transferFromImageBitmap(image);
  }

  runTest();

</script>