anchor.diff:      var pre = new glf.RequestRunOn()
         ..ctx = ctx
         ..before =(ctx) {
  -        ctx.gl.bindFramebuffer(WebGL.FRAMEBUFFER, fbo.buffer);
  -        ctx.gl.viewport(vp.x, vp.y, vp.viewWidth, vp.viewHeight);
  -        ctx.gl.clearColor(1.0, 1.0, 1.0, 1.0);
  -        ctx.gl.clear(WebGL.COLOR_BUFFER_BIT | WebGL.DEPTH_BUFFER_BIT);
  +        var gl = ctx.gl;
  +        gl.bindFramebuffer(WebGL.FRAMEBUFFER, fbo.buffer);
  +        gl.viewport(vp.x, vp.y, vp.viewWidth, vp.viewHeight);
  +        gl.clearColor(1.0, 1.0, 1.0, 1.0);
  +        gl.clear(WebGL.COLOR_BUFFER_BIT | WebGL.DEPTH_BUFFER_BIT);
           vp.injectUniforms(ctx);
         }
       ;
  
positive.code: 
  
    _add(renderer, ctx) {
      geometry.meshDef = glf.makeMeshDef_plane(dx: 3.0, dy: 3.0);
      glf.makeNormalMatrix(geometry.transforms, geometry.normalMatrix);
      var material = new Material()
      ..ctx = ctx
      ..cfg = (ctx) {
        ctx.gl.uniform3f(ctx.getUniformLocation(glf.SFNAME_COLORS), 0.0, 0.5, 0.5);
  
negative.code:     var md = null;
      switch(_selectMeshUI.value) {
        case 'box24' :
          md = mdt.makeBox24Vertices(dx: 2.0, dy: 1.0, dz: 0.5, ty: 1.0);
          break;
        case 'box24-t' :
          md = mdt.makeBox24Vertices(dx: 2.0, dy: 1.0, dz: 0.5, tx: 2.0, ty: 1.0, tz: 0.5);
          break;
        case 'cube8' :
          md = mdt.makeBox8Vertices(dx: 0.5, dy: 0.5, dz: 0.5);
          break;
        case 'sphereL':
          md = mdt.makeSphere(subdivisionsAxis : sub, subdivisionsHeight : sub);
          break;
        default:
          md = mdt.makeBox24Vertices(dx: 0.5, dy: 0.5, dz: 0.5);
      }
      if (_showWireframeUI.checked) {
        md.lines = mdt.extractWireframe(md.triangles);
        md.triangles = null;
      }
      return md;
  