anchor.diff:  
       return _data;
     }
  +
  +  Future<CanvasElementImage> asFuture() => new Future.value(this);
   }
   
   class VideoElementImage implements TextureImage {
  
positive.code:       : image = image,
          internalFormat = image.format;
  
    factory Texture2D.fromURL(String url, {internalFormat: PixelFormat.RGBA}) =>
        new Texture2D.fromImageElement(new ImageElement(src: url),
            internalFormat: internalFormat);
  
    Texture2D.fromImageData(ImageData imageData,
  
negative.code:   int get height => image.height;
  
    bool get isReady => image.isReady;
  
    Future<Texture2D> asFuture() => image.asFuture().then((_) => this);
  }
  
  abstract class TextureImage {
  