Microsoft DirectX 9.0

IDirect3DDevice9::GetFrontBufferData Method

Generates a copy of the device's front buffer and places that copy in a system memory buffer provided by the application.


HRESULT GetFrontBufferData(      

    UINT iSwapChain,     IDirect3DSurface9 *pDestSurface );


[in] An unsigned integer specifying the swap chain.
[in] Pointer to an IDirect3DSurface9 interface that will receive a copy of the contents of the front buffer. The data is returned in successive rows with no intervening space, starting from the vertically highest row on the device's output to the lowest.

For windowed mode, the size of the destination surface should be the size of the desktop. For full-screen mode, the size of the destination surface should be the screen size.

Return Value

If the method succeeds, the return value is D3D_OK.

If the method fails, the return value can be one of the following values.

D3DERR_DEVICELOSTThe device has been lost but cannot be reset at this time. Therefore, rendering is not possible.
D3DERR_INVALIDCALLThe method call is invalid. For example, a method's parameter may have an invalid value.


The buffer pointed to by pDestSurface will be filled with a representation of the front buffer, converted to the standard 32 bits per pixel format D3DFMT_A8R8G8B8.

This method is the only way to capture an antialiased screen shot.

This function is very slow, by design, and should not be used in any performance-critical path.

For more information, see Lost Devices and Retrieved Data.

© 2002 Microsoft Corporation. All rights reserved.