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:     onUpdate.add(upd0);
  
      if (showNormals) {
        var mdNormal = mdt.extractNormals(geometry.meshDef);
        var meshNormal = new glf.Mesh()..setData(ctx.gl, mdNormal);
        var programCtxN = glf.loadProgramContext(ctx.gl, Uri.parse("packages/glf/shaders/default.vert"), Uri.parse("packages/glf/shaders/default.frag"));
  
  