Texture2D.GetData Generic Method (T[], Int32, Int32)
XNA Game Studio 3.1
Copies texture data into an array.
Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework (in microsoft.xna.framework.dll)
Type Parameters
- T
- The type of the elements in the array. This is usually a Microsoft.Xna.Framework.Graphics.PackedVector type that matches the Format of the texture, but it can be any fundamental type that matches the bit size of the surface format.
Parameters
- data
- The array to receive texture data.
- startIndex
- The index of the element in the array at which to start copying.
- elementCount
- The number of elements to copy.
| Exception type | Condition |
|---|---|
| ArgumentNullException | data must be of sufficient length to receive the data. |
| InvalidOperationException | The vertex stride is larger than the vertex buffer, or the vertex stride is too small for the type of data requested. |
An InvalidOperationException is thrown if an attempt is made to modify (for example, calls to the SetData method) a resource that is currently set on a graphics device.
In this example, the color of the pixel beneath the mouse is retrieved from the back buffer.
if (Mouse.GetState().LeftButton == ButtonState.Pressed && // If the left button is pressed Mouse.GetState().X > 0 && Mouse.GetState().Y > 0 && // and we are inside the game window (Mouse.GetState().X < GraphicsDevice.PresentationParameters.BackBufferWidth) && (Mouse.GetState().Y < GraphicsDevice.PresentationParameters.BackBufferHeight)) { backBufferData = new ResolveTexture2D( GraphicsDevice, GraphicsDevice.PresentationParameters.BackBufferWidth, GraphicsDevice.PresentationParameters.BackBufferHeight, 1, GraphicsDevice.PresentationParameters.BackBufferFormat); Rectangle sourceRectangle = new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1); Color[] retrievedColor = new Color[1]; GraphicsDevice.ResolveBackBuffer(backBufferData); backBufferData.GetData<Color>( 0, sourceRectangle, retrievedColor, 0, 1); }