Copies texture data into an array.
Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework (in microsoft.xna.framework.dll)
public void GetData<T> (
T[] data
) where T : ValueType
Type Parameters
Parameters
- data
- The array to receive texture data.
| 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. |
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);
}
Reference
Xbox 360, Windows XP SP2, Windows Vista, Zune