Export (0) Print
Expand All

Texture2D.GetData Generic Method (T[], Int32, Int32)

Gets a copy of 2D texture data, specifying a start index and number of elements.

Namespace: Microsoft.Xna.Framework.Graphics
Assembly: Microsoft.Xna.Framework.Graphics (in microsoft.xna.framework.graphics.dll)

public void GetData<T> (
         T[] data,
         int startIndex,
         int elementCount
) where T : ValueType

Type Parameters

T
The type of the elements in the array. This is usually a Microsoft.Xna.Framework.Graphics.PackedVector type but it can be any fundamental type that matches the bit size of the surface format.

Parameters

data
Type: T
Array of data.
startIndex
Type: Int32
Index of the first element to get.
elementCount
Type: Int32
Number of elements to get.

Exception typeCondition
ArgumentNullException data must be of sufficient length to receive the data.
InvalidOperationExceptionThe 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.

sourceTexture.SetData<Color>(sourceColorData);

// Initialize a texture with texture data from another texture
sourceTexture.GetData<Color>(destinationColorData);
destinationTexture.SetData<Color>(destinationColorData);
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 Texture2D(
        GraphicsDevice,
        GraphicsDevice.PresentationParameters.BackBufferWidth,
        GraphicsDevice.PresentationParameters.BackBufferHeight);

    Rectangle sourceRectangle =
        new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1);

    Color[] retrievedColor = new Color[1];

    backBufferData.GetData<Color>(
        0,
        sourceRectangle,
        retrievedColor,
        0,
        1);
}

Xbox 360, Windows 7, Windows Vista, Windows XP

Community Additions

ADD
Show:
© 2014 Microsoft