Export (0) Print
Expand All

RenderTarget2D Class

Represents a 2D texture resource that will be written to at the end of a render pass.

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

public class RenderTarget2D : RenderTarget

After a render pass the render target contains the color information of a rendered image.

Render targets represent a linear area of display memory and usually reside in the display memory of the display card. Because of this, RenderTarget2D objects must be recreated when the device is reset.

To use a RenderTarget2D, you must:

  1. Create the RenderTarget2D.
    shadowRenderTarget = GfxComponent.CreateRenderTarget(GraphicsDevice,
        1, SurfaceFormat.Single);
    
    public static RenderTarget2D CreateRenderTarget(GraphicsDevice device, int numberLevels, 
        SurfaceFormat surface)
    {
    
        if (!GraphicsAdapter.DefaultAdapter.CheckDeviceFormat(DeviceType.Hardware,
            GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Format, TextureUsage.None,
            QueryUsages.None, ResourceType.RenderTarget, surface))
        {
            // Fall back to current display format
            surface = device.DisplayMode.Format;
        }
        return new RenderTarget2D(device,
            device.PresentationParameters.BackBufferWidth,
            device.PresentationParameters.BackBufferHeight,
            numberLevels, surface,
            device.PresentationParameters.MultiSampleType,
            device.PresentationParameters.MultiSampleQuality);
    
    }
    
  2. Set the RenderTarget2D.
    GraphicsDevice.SetRenderTarget(0, shadowRenderTarget);
    
  3. Draw into the RenderTarget2D.
    // Render the shadow map
    GraphicsDevice.Clear(Color.Black);
    DrawScene(MyEffect.shadowMap);
    
  4. Reset the original RenderTarget2D. null as the default render target - i.e. the back buffer.
    // Set render target back to the back buffer
    GraphicsDevice.SetRenderTarget(0, null);
    
  5. Call GetTexture to retrieve the contents of the RenderTarget2D.
    // Return the shadow map as a texture
    return shadowRenderTarget.GetTexture();
    

Xbox 360, Windows XP SP2, Windows Vista

Community Additions

ADD
Show:
© 2015 Microsoft