Detector.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @author alteredq / http://alteredqualia.com/
  3. * @author mr.doob / http://mrdoob.com/
  4. */
  5. Detector = {
  6. canvas : !! window.CanvasRenderingContext2D,
  7. webgl : !! window.WebGLRenderingContext,
  8. webglGfxCard : ( function () { try { return !! window.WebGLRenderingContext && !! document.createElement( 'canvas' ).getContext( 'experimental-webgl' ); } catch( e ) { return false; } } )(),
  9. workers : !! window.Worker,
  10. fileapi : window.File && window.FileReader && window.FileList && window.Blob,
  11. getWebGLErrorMessage : function () {
  12. var html;
  13. if ( ! this.webgl ) {
  14. html = [
  15. 'Sorry, your browser doesn\'t support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL</a><br/>',
  16. 'Please try with',
  17. '<a href="http://www.google.com/chrome">Chrome 10</a>, ',
  18. '<a href="http://www.mozilla.com/en-US/firefox/all-beta.html">Firefox 4</a> or',
  19. '<a href="http://nightly.webkit.org/">Safari 6</a>'
  20. ].join( '\n' );
  21. } else if ( ! this.webglGfxCard ) {
  22. html = [
  23. 'Sorry, your browser supports <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL</a><br/> but you may need to upgrade your graphics card.'
  24. ].join( '\n' );
  25. }
  26. var msg = document.createElement( 'div' );
  27. msg.style.fontFamily = 'monospace';
  28. msg.style.fontSize = '13px';
  29. msg.style.textAlign = 'center';
  30. msg.style.background = '#eee';
  31. msg.style.color = '#000';
  32. msg.style.padding = '1em';
  33. msg.style.width = '475px';
  34. msg.style.margin = '5em auto 0';
  35. msg.innerHTML = html;
  36. return msg;
  37. },
  38. addGetWebGLMessage : function ( parameters ) {
  39. var parent, id, domElement;
  40. parameters = parameters || {};
  41. parent = parameters.parent !== undefined ? parameters.parent : document.body;
  42. id = parameters.id !== undefined ? parameters.id : 'oldie';
  43. domElement = Detector.getWebGLErrorMessage();
  44. domElement.id = id;
  45. parent.appendChild( domElement );
  46. }
  47. };