topical media & game development

talk show tell print

mobile-query-three-vendor-threex-examples-threex.domevent-vendor-threex-THREEx.glCapability.js / js



  
Define namespace

  
  if(typeof THREEx === "undefined")        var THREEx        = {};
  
  
return the capability of a WebGl context TODO to rewrite - heavily wased on webglreport on sourceforge - is there other/better properties - should i get a more readable output ? - another function ?
parameter: {WebGLRenderingContext} webgl context
returns: {Object} capabilities

  
  THREEx.glCapability        = function(gl)
  {
          // sanity check - gl context MUST BE WebGLRenderingContext
          console.assert(gl instanceof WebGLRenderingContext)
          // TODO find better names
          var prout        = ['VERSION', 'SHADING_LANGUAGE_VERSION', 'VENDOR', 'RENDERER'];
          var pixDepth        = ['RED_BITS', 'GREEN_BITS', 'BLUE_BITS', 'ALPHA_BITS', 'DEPTH_BITS', 'STENCIL_BITS'];
          var slota        = ['MAX_RENDERBUFFER_SIZE', 'MAX_COMBINED_TEXTURE_IMAGE_UNITS', 'MAX_CUBE_MAP_TEXTURE_SIZE'
                                  , 'MAX_FRAGMENT_UNIFORM_VECTORS', 'MAX_TEXTURE_IMAGE_UNITS'
                                  , 'MAX_TEXTURE_SIZE', 'MAX_VERTEX_ATTRIBS'
                                  , 'MAX_VERTEX_ATTRIBS', 'MAX_VERTEX_TEXTURE_IMAGE_UNITS'
                                  , 'MAX_VERTEX_UNIFORM_VECTORS'];        
          var sloti        = ['ALIASED_LINE_WIDTH_RANGE', 'ALIASED_POINT_SIZE_RANGE', 'MAX_VIEWPORT_DIMS'];
          
          var info        = {};
          var collect        = function(arr){
                  arr.forEach(function(parameter){
                          //console.log('parameter', parameter)
                          info[parameter]        = gl.getParameter(gl[parameter])
                  })
          }
          
          collect(prout);
          collect(pixDepth);
          collect(slota);
          collect(sloti)
          
          // special case to get the extensions
          info['SUPPORTED_EXTENSIONS']        = gl.getSupportedExtensions()
          
          //console.log("info");
          //console.dir(info)
          return info;
  }
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.