public extern void DrawImage(CanvasElement image, double sx, double sy, double sw, double sh, double dx, double dy, double dw, double dh);
 public extern void DrawImage(CanvasElement image, double dx, double dy);
 public extern void TexImage2D(TextureTarget target, int level, PixelFormat internalFormat, PixelFormat format, DataType type, CanvasElement image);
 public extern CanvasPattern CreatePattern(CanvasElement image, string repetition);
 public static void TexImage2D(this WebGLRenderingContext gl, CanvasElement image) {
     gl.TexImage2D(TextureTarget.Texture2D, 0, PixelFormat.Rgba, PixelFormat.Rgba, DataType.UnsignedByte, image);
 }