anchor.diff:    void updateMatrix() {
       canvas.setMatrix(this.getMatrix().storage);
     }
  +  Matrix4 cacheMatrix = new Matrix4.identity();
  +  Matrix4 calcMat() {
  +    cacheMatrix.setIdentity();
  +    //cacheMatrix = cacheMatrix.translate(-1.0, 1.0, 0.0);
  +    //cacheMatrix = cacheMatrix.scale(2.0 / glContext.widht, -2.0 / glContext.height, 1.0);
  +    cacheMatrix = cacheMatrix * getMatrix();
  +    return cacheMatrix;
  +  }
   }
  
positive.code:   }
  
    void drawRect(TinyStage stage, TinyRect rect, TinyPaint paint) {
    }
  
    void clipRect(TinyStage stage, TinyRect rect) {
      canvas.clipRect(new Rect.fromLTWH(rect.x, rect.y, rect.w, rect.h));
    }
  
    List<Point> vertices = [];
    List<Point> textureCoordinates = [];
    List<Color> colors = [];
    List<int> indicies = [];
    flush() {
      Paint p = new Paint()..style = sky.PaintingStyle.fill;
      if(curImage != null){
  
negative.code:   PaintingCanvas canvas;
    TinyFlutterNCanvas(this.canvas) {}
  
    List<Point> vertices = [];
    List<Point> textureCoordinates = [];
    List<Color> colors = [];
    List<int> indicies = [];
    void drawOval(TinyStage stage, TinyRect rect, TinyPaint paint) {
    }
  
  