File: webgl-hanging-fb-test.html

package info (click to toggle)
thunderbird 1%3A68.10.0-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,754,812 kB
  • sloc: cpp: 5,411,679; javascript: 4,161,772; ansic: 2,639,702; python: 763,064; java: 346,606; xml: 266,623; asm: 265,884; sh: 117,270; lisp: 41,340; makefile: 23,560; perl: 18,042; objc: 5,277; yacc: 1,778; ada: 1,681; pascal: 1,673; lex: 1,417; cs: 879; exp: 527; awk: 495; php: 436; ruby: 221; sed: 69; csh: 27
file content (58 lines) | stat: -rw-r--r-- 1,332 bytes parent folder | download | duplicates (42)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="UTF-8">

<script type="text/javascript" src="webgl-utils.js"></script>
<script type="text/javascript">
/* Hanging Framebuffer Test
 *
 * Clear the canvas to green, but create and bind a new framebuffer
 * before returning. This will fail if we blindly read from the bound
 * framebuffer, instead of binding to the screen and reading from that.
 *
 * How failure looks isn't well defined, since this is an empty framebuffer,
 * thus is incomplete, and should cause errors if it's read from.
 */

"use strict";

function renderGL(gl) {
  gl.clearColor(0.0, 1.0, 0.0, 1.0);
  gl.clear(gl.COLOR_BUFFER_BIT);

  var fb = gl.createFramebuffer();
  gl.bindFramebuffer(gl.FRAMEBUFFER, fb);

  gl.finish();
}

function renderFailure(canvas) {
  // This will also trigger RAF for us.
  var context = canvas.getContext("2d");
  context.fillText('WebGL failed.', 64, 64);
}

function runTest() {
  var canvas = document.getElementById("canvas");
  var gl = initGL(canvas);

  if (gl)
    renderGL(gl);
  else
    renderFailure(canvas);

  waitForComposite(testComplete);
}

function testComplete() {
  document.documentElement.removeAttribute("class");
}
</script>
</head>

<body onload="rAF(runTest);">
  <canvas id="canvas" width="256" height="256"></canvas>
</body>

</html>