"use strict";

var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.WEBGL = exports["default"] = void 0;

var THREE = _interopRequireWildcard(require("three"));

// This file has been added and patched after installing the NPM modules (via NPM script 'prepare')
var threeExamples = {};
/**
 * @author alteredq / http://alteredqualia.com/
 * @author mrdoob / http://mrdoob.com/
 */

var WEBGL = {
  isWebGLAvailable: function isWebGLAvailable() {
    try {
      var canvas = document.createElement('canvas');
      return !!(window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl')));
    } catch (e) {
      return false;
    }
  },
  isWebGL2Available: function isWebGL2Available() {
    try {
      var canvas = document.createElement('canvas');
      return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2'));
    } catch (e) {
      return false;
    }
  },
  getWebGLErrorMessage: function getWebGLErrorMessage() {
    return this.getErrorMessage(1);
  },
  getWebGL2ErrorMessage: function getWebGL2ErrorMessage() {
    return this.getErrorMessage(2);
  },
  getErrorMessage: function getErrorMessage(version) {
    var contexts = {
      1: window.WebGLRenderingContext,
      2: window.WebGL2RenderingContext
    };
    var message = 'Your $0 does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">$1</a>';
    var element = document.createElement('div');
    element.id = 'webglmessage';
    element.style.fontFamily = 'monospace';
    element.style.fontSize = '13px';
    element.style.fontWeight = 'normal';
    element.style.textAlign = 'center';
    element.style.background = '#fff';
    element.style.color = '#000';
    element.style.padding = '1.5em';
    element.style.width = '400px';
    element.style.margin = '5em auto 0';

    if (contexts[version]) {
      message = message.replace('$0', 'graphics card');
    } else {
      message = message.replace('$0', 'browser');
    }

    message = message.replace('$1', {
      1: 'WebGL',
      2: 'WebGL 2'
    }[version]);
    element.innerHTML = message;
    return element;
  }
};
exports.WEBGL = WEBGL;
var _default = threeExamples.WebGL;
exports["default"] = _default;