docs: function WebGLRenderer(width, height, options)
  {
      options = options || {};
  
      SystemRenderer.call(this, 'WebGL', width, height, options);
  
      /**
       * The type of this renderer as a standardised const
       *
       * @member {number}
       *
       */
      this.type = CONST.RENDERER_TYPE.WEBGL;
  
      this.handleContextLost = this.handleContextLost.bind(this);
      this.handleContextRestored = this.handleContextRestored.bind(this);
  
      this.view.addEventListener('webglcontextlost', this.handleContextLost, false);
      this.view.addEventListener('webglcontextrestored', this.handleContextRestored, false);
  
      //TODO possibility to force FXAA as it may offer better performance?
      /**
       * Does it use FXAA ?
       *
       * @member {boolean}
       * @private
       */
      this._useFXAA = !!options.forceFXAA && options.antialias;
  
      /**
       * The fxaa filter
       *
       * @member {FXAAFilter}
       * @private
       */
      this._FXAAFilter = null;
  
      /**
       * The options passed in to create a new webgl context.
       *
       * @member {object}
       * @private
       */
      this._contextOptions = {
          alpha: this.transparent,
          antialias: options.antialias,
          premultipliedAlpha: this.transparent && this.transparent !== 'notMultiplied',
          stencil: true,
          preserveDrawingBuffer: options.preserveDrawingBuffer
      };
  
      /**
       * Counter for the number of draws made each frame
       *
       * @member {number}
       */
      this.drawCount = 0;
  
      /**
       * Deals with managing the shader programs and their attribs.
       *
       * @member {ShaderManager}
       */
      this.shaderManager = new ShaderManager(this);
  
      /**
       * Manages the masks using the stencil buffer.
       *
       * @member {MaskManager}
       */
      this.maskManager = new MaskManager(this);
  
      /**
       * Manages the stencil buffer.
       *
       * @member {StencilManager}
       */
      this.stencilManager = new StencilManager(this);
  
      /**
       * Manages the filters.
       *
       * @member {FilterManager}
       */
      this.filterManager = new FilterManager(this);
  
  
      /**
       * Manages the blendModes
       * @member {BlendModeManager}
       */
      this.blendModeManager = new BlendModeManager(this);
  
      /**
       * Holds the current render target
       * @member {Object}
       */
      this.currentRenderTarget = null;
  
      /**
       * object renderer @alvin
       * @member {ObjectRenderer}
       */
      this.currentRenderer = new ObjectRenderer(this);
  
      this.initPlugins();
  
       // initialize the context so it is ready for the managers.
      this._initContext();
  
      // map some webGL blend modes..
      this._mapBlendModes();
  
      /**
       * An array of render targets
       * @member {Array}
       * @private
       */
      this._renderTargetStack = [];
  }