Share via


About Display Modes

A version of this page is also available for

Windows Embedded CE 6.0 R3

4/8/2010

A display mode is a hardware setting that describes the dimensions and bit-depth of graphics that the display hardware sends to the monitor from the primary surface. Display modes are described by their defining characteristics: width, height, and bit-depth.

For instance, most display adapters can display graphics 640 pixels wide and 480 pixels tall, where each pixel is 8 bits of data. In shorthand, this display mode is called 640×480×8. As the dimensions of a display mode get larger or as the bit-depth increases, more display memory is required.

There are two types of display modes: palettized and non-palettized. For palettized display modes, each pixel is a value representing an index into an associated palette.

The bit depth of the display mode determines the number of colors that can be in the palette. For instance, in an 8-bit palettized display mode, each pixel is a value from 0 to 255. In such a display mode, the palette can contain 256 entries.

Non-palettized display modes, as their name states, do not use palettes. The bit depth of a non-palettized display mode indicates the total number of bits that are used to describe a pixel.

The primary surface and any surfaces in the primary flipping chain match the display mode's dimensions, bit depth and pixel format. For more information, see Pixel Formats.

Special Considerations

The following list highlights some special cases that you should consider when developing DirectDraw applications in Windows Mobile. These behaviors are different from DirectDraw on Windows desktop systems.

  • DirectDraw cannot change the display mode. All display mode related methods are for information retrieval purposes only. **
  • DirectDraw now supports screen rotation, if rotation is supported by the display driver. When the screen rotates, any surfaces that change will be lost, and can be restored using IDirectDrawSurface::Restore. If a surface is locked, the surface pointer (lpSurface) will always point to the (0,0) coordinate of the surface, but the lPitch (vertical pitch) and lXPitch (horizontal pitch) can vary depending on the orientation of the surface.