lib/Core/supportsWebGL.js
function supportsWebGL() {
  if (defined(result)) {
    return result;
  }

  //Check for webgl support and if not, then fall back to leaflet
  if (!window.WebGLRenderingContext) {
    // Browser has no idea what WebGL is. Suggest they
    // get a new browser by presenting the user with link to
    // http://get.webgl.org
    result = false;
    return result;
  }
  var canvas = document.createElement("canvas");

  var webglOptions = {
    alpha: false,
    stencil: false,
    failIfMajorPerformanceCaveat: true
  };

  var gl =
    canvas.getContext("webgl", webglOptions) ||
    canvas.getContext("experimental-webgl", webglOptions);
  if (!gl) {
    // We couldn't get a WebGL context without a major performance caveat.  Let's see if we can get one at all.
    webglOptions.failIfMajorPerformanceCaveat = false;
    gl =
      canvas.getContext("webgl", webglOptions) ||
      canvas.getContext("experimental-webgl", webglOptions);
    if (!gl) {
      // No WebGL at all.
      result = false;
    } else {
      // We can do WebGL, but only with software rendering (or similar).
      result = "slow";
    }
  } else {
    // WebGL is good to go!
    result = true;
  }

  return result;
}
function supportsWebGL() {
  if (defined(result)) {
    return result;
  }

  //Check for webgl support and if not, then fall back to leaflet
  if (!window.WebGLRenderingContext) {
    // Browser has no idea what WebGL is. Suggest they
    // get a new browser by presenting the user with link to
    // http://get.webgl.org
    result = false;
    return result;
  }
  var canvas = document.createElement("canvas");

  var webglOptions = {
    alpha: false,
    stencil: false,
    failIfMajorPerformanceCaveat: true
  };

  var gl =
    canvas.getContext("webgl", webglOptions) ||
    canvas.getContext("experimental-webgl", webglOptions);
  if (!gl) {
    // We couldn't get a WebGL context without a major performance caveat.  Let's see if we can get one at all.
    webglOptions.failIfMajorPerformanceCaveat = false;
    gl =
      canvas.getContext("webgl", webglOptions) ||
      canvas.getContext("experimental-webgl", webglOptions);
    if (!gl) {
      // No WebGL at all.
      result = false;
    } else {
      // We can do WebGL, but only with software rendering (or similar).
      result = "slow";
    }
  } else {
    // WebGL is good to go!
    result = true;
  }

  return result;
}
function supportsWebGL ( ) { if ( defined ( result ) ) { return result ; } //Check for webgl support and if not, then fall back to leaflet if ( ! window . WebGLRenderingContext ) { // Browser has no idea what WebGL is. Suggest they // get a new browser by presenting the user with link to // http://get.webgl.org result = false ; return result ; } var canvas = document . createElement ( "canvas" ) ; var webglOptions = { alpha : false , stencil : false , failIfMajorPerformanceCaveat : true } ; var gl = canvas . getContext ( "webgl" , webglOptions ) || canvas . getContext ( "experimental-webgl" , webglOptions ) ; if ( ! gl ) { // We couldn't get a WebGL context without a major performance caveat.  Let's see if we can get one at all. webglOptions . failIfMajorPerformanceCaveat = false ; gl = canvas . getContext ( "webgl" , webglOptions ) || canvas . getContext ( "experimental-webgl" , webglOptions ) ; if ( ! gl ) { // No WebGL at all. result = false ; } else { // We can do WebGL, but only with software rendering (or similar). result = "slow" ; } } else { // WebGL is good to go! result = true ; } return result ; }
Determines if the current browser supports WebGL.
@return {Boolean|String} False if WebGL is not supported at all, 'slow' if WebGL is supported
but it has a major performance caveat (e.g. software rendering), and True
if WebGL is available without a major performance caveat.
Determines if the current browser supports WebGL .