DirectX SDK

Creating Wide Surfaces

DirectDraw allows you to create off-screen surfaces in video memory that are wider that the primary surface. This is only possible when display device support for wide surfaces is present.

[C++]

To check for wide surface support, call IDirectDraw7::GetCaps and look for the DDCAPS2_WIDESURFACES flag in the dwCaps2 member of the first DDCAPS structure you send with the call. If the flag is present, you can create video memory off-screen surfaces that are wider that the primary surface.

If you attempt to create a wide surface in video memory when the DDCAPS2_WIDESURFACES flag isn't present, the attempt will fail and return DDERR_INVALIDPARAMS. Note that attempting to create extremely large surfaces might still fail, even if the driver exposes the DDCAPS2_WIDESURFACES flag.

Wide surfaces are always supported for system memory surfaces, video port surfaces, and execute buffers.

[Visual Basic]

To check for wide surface support, call DirectDraw7.GetCaps and look for the DDCAPS2_WIDESURFACES flag in the lCaps2 member of the first DDCAPS type you send with the call. If the flag is present, you can create video memory off-screen surfaces that are wider that the primary surface.

If you attempt to create a wide surface in video memory when the DDCAPS2_WIDESURFACES flag isn't present, the attempt will fail and raise a DDERR_INVALIDPARAMS error. Note that attempting to create extremely large surfaces might still fail, even if the driver exposes the DDCAPS2_WIDESURFACES flag.

Wide surfaces are always supported for system memory surfaces.