Bagikan melalui


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

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

Syntax

'Declaration
Public Sub GetData(Of T As ValueType) ( _
         data As T(), _
         startIndex As Integer, _
         elementCount As Integer _
)
public void GetData<T> (
         T[] data,
         int startIndex,
         int elementCount
) where T : ValueType
public:
generic<typename T> where T : ValueType
void GetData(
         T data[],
         int startIndex,
         int elementCount
)

Type Parameters

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.

Exceptions

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.

Remarks

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.

Example

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);
}

Requirements

Namespace: Microsoft.Xna.Framework.Graphics

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

See Also

Reference

Texture2D Class
Texture2D Members
Microsoft.Xna.Framework.Graphics Namespace

Platforms

Windows Phone