code: function setMask(mask) {
           var gl = this.gl; // flush the compositor
  
           this.flush(); // Enable and setup GL state to write to stencil buffer
  
           gl.enable(gl.STENCIL_TEST);
           gl.clear(gl.STENCIL_BUFFER_BIT);
           gl.colorMask(false, false, false, false);
           gl.stencilFunc(gl.NOTEQUAL, 1, 1);
           gl.stencilOp(gl.REPLACE, gl.REPLACE, gl.REPLACE);
           this.fill(mask); // flush the compositor
  
           this.flush(); // Use stencil buffer to affect next rendering object
  
           gl.colorMask(true, true, true, true);
           gl.stencilFunc(gl.EQUAL, 1, 1);
           gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);
         }
docs: A mask limits rendering elements to the shape and position of the given mask object.
  So, if the renderable is larger than the mask, only the intersecting part of the renderable will be visible.
  Mask are not preserved through renderer context save and restore.
  @name setMask
  @memberOf me.WebGLRenderer.prototype
  @function
  @param {me.Rect|me.Polygon|me.Line|me.Ellipse} [mask] the shape defining the mask to be applied