Bug 1915045 Ensure decode tasks are scheduled on BufferingState::Enter() r=media...
[gecko.git] / dom / canvas / test / reftest / webgl-utils.js
blob798e7fee0ff1ce35e156006d18a086b262f08f36
1 "use strict";\r
2 \r
3 function parseArgs() {\r
4   var query = window.location.search.substring(1);\r
5 \r
6   var split = query.split("&");\r
7 \r
8   var args = {}\r
9   for (var i = 0; i < split.length; i++) {\r
10     var pair = split[i].split("=");\r
12     var key = pair[0];\r
13     var value = true;\r
14     if (pair.length >= 2) {\r
15       eval("value = " + decodeURIComponent(pair[1]) + ";");\r
16     }\r
18     args[key] = value;\r
19   }\r
21   return args;\r
22 }\r
24 var gArgs = null;\r
25 function arg(key, defaultVal) {\r
26   if (gArgs === null) {\r
27     gArgs = parseArgs();\r
28   }\r
30   if (!(key in gArgs))\r
31     return defaultVal;\r
33   return gArgs[key];\r
34 }\r
36 function initGL(canvas) {\r
37   if (arg("nogl"))\r
38     return null;\r
40   var gl = null;\r
42   var withAA = arg("aa", false);\r
43   var withAlpha = arg("alpha", false);\r
44   var withDepth = arg("depth", false);\r
45   var withPremult = arg("premult", false);\r
46   var withPreserve = arg("preserve", false);\r
47   var withStencil = arg("stencil", false);\r
49   try {\r
50     var argDict = {\r
51       alpha: withAlpha,\r
52       depth: withDepth,\r
53       stencil: withStencil,\r
54       antialias: withAA,\r
55       premultipliedAlpha: withPremult,\r
56       preserveDrawingBuffer: withPreserve,\r
57     };\r
58     gl = canvas.getContext("webgl", argDict);\r
59   } catch(e) {}\r
61   return gl;\r
62 }\r
64 function rAF(func) {\r
65   var raf = window.requestAnimationFrame;\r
66   raf(func);\r
67 }\r
69 var MAX_WAIT_FOR_COMPOSITE_DELAY_MS = 500;\r
71 function waitForComposite(func) {\r
72   var isDone = false;\r
73   var doneFunc = function () {\r
74     if (isDone)\r
75       return;\r
76     isDone = true;\r
77     func();\r
78   };\r
80   rAF(doneFunc);\r
81   setTimeout(doneFunc, MAX_WAIT_FOR_COMPOSITE_DELAY_MS);\r
82 }\r