# Texture2D

### Introduction

A Texture2D is a 2D array of pixel information which can be used by FlatRedBall [Sprites](https://github.com/flatredball/FlatRedBallDocs/blob/main/frb/docs/index.php), as well as other types of visual objects such as Tiled maps and Gum elements. All FlatRedBall platforms support textures up to a max size of 2048x2048, and as of 2024 most hardware supports texture sizes of 4096x4096.

### Displaying a Texture

A Texture2D by itself cannot be displayed in FlatRedBall. The Texutre2D must be drawn by a FlatRedBall object. The most common object for displaying Texture2Ds are [Sprite](https://github.com/flatredball/FlatRedBallDocs/blob/main/frb/docs/index.php). The following code shows how to render a Texture2D using a Sprite.

```csharp
Texture2D texture2D = FlatRedBallServices.Load<Texture2D>("redball.png");
// AddSprite will both instantiate a Sprite and add it so it is rendered by FlatRedBall
Sprite sprite = SpriteManager.AddSprite(texture2D);
sprite.PixelScale = 1;
```

### Creating a Texture2D

The following code loads a Texture2D from a file:&#x20;

Add the following using statement:

```csharp
using Microsoft.Xna.Framework.Graphics;
```

Call the following sometime after FlatRedBall is initialized

```csharp
 // If loading from file, use the extension:
 Texture2D loadedTexture = FlatRedBallServices.Load<Texture2D>("someGraphic.png");
 // otherwise, if loading through content pipeline, exclude the extension:
 Texture2D loadedTexture = FlatRedBallServices.Load<Texture2D>("someGraphic");
```

For more information on the Texture2D class, see [the MSDN entry](http://msdn2.microsoft.com/en-us/library/microsoft.xna.framework.graphics.texture2d.aspx).

### Transparency

Each pixel in a Texture2D can be fully opaque, completely transparent, or have partial transparency. Typically textures are loaded from .PNG files which can include transparency.

### Power of 2

When a texture is loaded into FlatRedBall, the source image width and height should be a power of two. Non-power of two image can be loaded, but they may be up-scaled which can result in blurry textures and wasted memory. The following lists common powers of 2:

* 8
* 16
* 32
* 64
* 128
* 256
* 512
* 1024
* 2048
* 4096


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flatredball.com/flatredball/api/microsoft-xna-framework/graphics/texture2d.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
