code: func (i *Image) DrawImage(img *Image, options *DrawImageOptions) error {
  	i.drawImage(img, options)
  	return nil
  }
docs: // DrawImage draws the given image on the image i.
  //
  // DrawImage accepts the options. For details, see the document of
  // DrawImageOptions.
  //
  // For drawing, the pixels of the argument image at the time of this call is
  // adopted. Even if the argument image is mutated after this call, the drawing
  // result is never affected.
  //
  // When the image i is disposed, DrawImage does nothing.
  // When the given image img is disposed, DrawImage panics.
  //
  // When the given image is as same as i, DrawImage panics.
  //
  // DrawImage works more efficiently as batches
  // when the successive calls of DrawImages satisfy the below conditions:
  //
  //   * All render targets are same (A in A.DrawImage(B, op))
  //   * Either all ColorM element values are same or all the ColorM have only
  //      diagonal ('scale') elements
  //     * If only (*ColorM).Scale is applied to a ColorM, the ColorM has only
  //       diagonal elements. The other ColorM functions might modify the other
  //       elements.
  //   * All CompositeMode values are same
  //   * All Filter values are same
  //
  // Even when all the above conditions are satisfied, multiple draw commands can
  // be used in really rare cases. Ebiten images usually share an internal
  // automatic texture atlas, but when you consume the atlas, or you create a huge
  // image, those images cannot be on the same texture atlas. In this case, draw
  // commands are separated. The texture atlas size is 4096x4096 so far. Another
  // case is when you use an offscreen as a render source. An offscreen doesn't
  // share the texture atlas with high probability.
  //
  // For more performance tips, see https://github.com/hajimehoshi/ebiten/wiki/Performance-Tips.
  //
  // DrawImage always returns nil as of 1.5.0-alpha.