content/canvas/test/reftest/webgl-utils.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 "use strict";
     3 function parseArgs() {
     4   var query = window.location.search.substring(1);
     6   var split = query.split("&");
     8   var args = {}
     9   for (var i = 0; i < split.length; i++) {
    10     var pair = split[i].split("=");
    12     var key = pair[0];
    13     var value = true;
    14     if (pair.length >= 2) {
    15       eval("value = " + decodeURIComponent(pair[1]) + ";");
    16     }
    18     args[key] = value;
    19   }
    21   return args;
    22 }
    24 var gArgs = null;
    25 function arg(key) {
    26   if (gArgs === null) {
    27     gArgs = parseArgs();
    28   }
    30   var ret = gArgs[key];
    31   if (ret === undefined)
    32     ret = false;
    34   return ret;
    35 }
    37 function initGL(canvas) {
    38   if (arg("nogl"))
    39     return null;
    41   var gl = null;
    43   var withAA = arg("aa");
    44   var withAlpha = arg("alpha");
    45   var withDepth = arg("depth");
    46   var withPremult = arg("premult");
    47   var withPreserve = arg("preserve");
    48   var withStencil = arg("stencil");
    50   try {
    51     var argDict = {
    52       alpha: withAlpha,
    53       depth: withDepth,
    54       stencil: withStencil,
    55       antialias: withAA,
    56       premultipliedAlpha: withPremult,
    57       preserveDrawingBuffer: withPreserve,
    58     };
    59     gl = canvas.getContext("experimental-webgl", argDict);
    60   } catch(e) {}
    62   return gl;
    63 }
    65 function rAF(func) {
    66   var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame;
    67   raf(func);
    68 }
    70 var MAX_WAIT_FOR_COMPOSITE_DELAY_MS = 500;
    72 function waitForComposite(func) {
    73   var isDone = false;
    74   var doneFunc = function () {
    75     if (isDone)
    76       return;
    77     isDone = true;
    78     func();
    79   };
    81   rAF(doneFunc);
    82   setTimeout(doneFunc, MAX_WAIT_FOR_COMPOSITE_DELAY_MS);
    83 }

mercurial