D3DMSWAPEFFECT (Windows Embedded CE 6.0)

1/6/2010

This enumeration provides values to identify the possible ways to present a scene. This enumeration is used in the SwapEffect member of the D3DMPRESENT_PARAMETERS structure.

Syntax

typedef enum _D3DMSWAPEFFECT {
  D3DMSWAPEFFECT_DISCARD     = 1,
  D3DMSWAPEFFECT_FLIP        = 2,
  D3DMSWAPEFFECT_COPY        = 3,
  D3DMSWAPEFFECT_COPY_VSYNC  = 4,
  D3DMSWAPEFFECT_FORCE_ULONG = 0x7fffffff,
} D3DMSWAPEFFECT;

Elements

  • D3DMSWAPEFFECT_DISCARD
    Indicates a presentation method used as a performance mechanism because it makes no assumptions regarding the contents of the discarded back buffer. After the back buffer is copied to the screen its contents is undefined. This presentation method is only evident in debug builds of Direct3D Mobile. The copy operation is synchronized with the vertical retrace.
  • D3DMSWAPEFFECT_FLIP
    Indicates that the front and back buffers are swapped. This operation is performed during the vertical retrace period. Also, this operation requires that the front and back buffers have the same dimensions and pixel formats. This presentation method is not allowed if the application specifies multisampling antialiasing.
  • D3DMSWAPEFFECT_COPY
    Indicates that the back buffer is copied to the front buffer. The source and destination rectangle parameters to the IDirect3DMobileDevice::Present call can be used to specify rectangles to move. If the rectangles are not the same size, the back buffer image is shrunk or stretched to fit. The copy operation is performed as soon as possible, and not synchronized with the vertical sync.
  • D3DMSWAPEFFECT_COPY_VSYNC
    Indicates a presentation method identical to D3DMSWAPEFFECT_COPY, except the copy operation is performed during the vertical retrace period.
  • D3DMSWAPEFFECT_FORCE_ULONG
    Forces the compiler to interpret the enumeration as a ULONG value. This value is not used directly in Direct3D Mobile programming.

Remarks

All operations that are synced with the vertical retrace period respect the FullScreen_PresentationInterval member of the D3DMPRESENT_PARAMETERS structure. If that structure member is set to 0, then an interval of 1 is assumed.

The state of the back buffer after a call to IDirect3DMobileDevice::Present is well-defined by each of these swap effects, and whether the Microsoft® Direct3D Mobile® device was created with a full-screen swap chain or a windowed swap chain has no effect on this state.

In particular, the D3DMSWAPEFFECT_FLIP swap effect operates the same whether windowed or full-screen, and the Direct3D Mobile middleware guarantees this by creating extra buffers. As a result, it is recommended that applications use D3DMSWAPEFFECT_DISCARD whenever possible to avoid any such penalties. This is because this swap effect will always be the most efficient in terms of memory consumption and performance.

Requirements

Header d3dmtypes.h
Windows Embedded CE Windows CE 5.0 and later

See Also

Reference

Direct3D Mobile Enumerations
D3DMPRESENT_PARAMETERS
IDirect3DMobileDevice::Present

Concepts

Scene Presentation