anchor.diff:    }
   
     void processEntity(Entity entity) {
  +    _g.translate(translateX, translateY);
  +    if (_scale != 1.0) _g.scale(_scale, _scale);
  +
       var d = _drawMapper.get(entity);
       var tf = _transformMapper.getSafe(entity);
       if (tf != null) {
  
positive.code:   ComponentMapper<Drawable> _drawMapper;
    var _w = 0;
    var _h = 0;
    /// [_areaEntity] temp variable use fill by [Drawable.draw] to give the modified
    /// area, it is an area with center at (0.0, 0.0)
    Vector2 _areaEntity = new Vector2(0.0, 0.0);
  
negative.code:     _areaEntity.y = 0.0;
      d.draw(_g, entity, _areaEntity);
      if (tf != null) {
        _g.scale(1/tf.scale3d.x, 1/tf.scale3d.y);
        _g.rotate(-tf.rotation3d.z);
        _g.translate(-tf.position3d.x.toInt(), -tf.position3d.y.toInt());
      }
  
      if (_scale != 1.0) _g.scale(_scaleI, _scaleI);
      _g.translate(- translateX, - translateY);
      _g.restore();
    }
  
    void end() {
      _g.restore();
      _gVisible.clearRect(0, 0, _w, _h);
      _gVisible.drawImage(_g.canvas, 0, 0);
      _g.clearRect(0, 0, _w, _h);
    }
  }
  
  