Device.UpdateSurface Method ()

Copies rectangular subsets of pixels from one surface to another.

Overload List

public void UpdateSurface(Surface, Rectangle, Surface);
public void UpdateSurface(Surface, Rectangle, Surface, Point);
public void UpdateSurface(Surface, Surface);
public void UpdateSurface(Surface, Surface, Point);


This method has the following restrictions.

  • The source surface must have been created with Pool.SystemMemory.
  • The destination surface must have been created with Pool.Default.
  • Neither surface can be locked or hold an outstanding device context.
  • Neither surface can be created with multisampling. The only valid flag for both surfaces is MultiSampleType.None.
  • The surface format cannot be a depth stencil format.
  • The source and destination rectangles must fit within the surface.
  • No stretching or shrinking is allowed; that is, the rectangles must be the same size.
  • The source format must match the destination format.

The following table shows the supported format combinations.

Destination format
Source format Texture RT texture RT Off-screen plain
Texture Yes Yes Yes* Yes
RT texture No No No No
RT No No No No
Off-screen plain Yes Yes Yes Yes

* If the driver does not support the requested copy, it is emulated using locking and copying.

If the application needs to copy data from a Pool.Default render target to a Pool.SystemMemory surface, it can use Device.GetRenderTargetData.



The method call is invalid. For example, a method's parameter might contain an invalid value.