##### Significant DDCAPS Members and Flags

You can retrieve information about the supported overlay features by calling the IDirectDraw2::GetCaps method. The method fills a DDCAPS structure with information describing all features.

When reporting hardware features, the device driver sets flags in the dwCaps structure member to indicate when a given type of restriction is enforced by the hardware. After retrieving the driver capabilities, examine the flags in the dwCaps member for information about which restrictions apply. The DDCAPS structure contains nine members that carry information describing hardware restrictions for overlay surfaces. The following table lists the overlay related members and their corresponding flags:

Member | Flag
dwMaxVisibleOverlays | This member is always valid
dwCurrVisibleOverlays | This member is always valid
dwAlignBoundarySrc | DDCAPS_ALIGNBOUNDARYSRC
dwAlignSizeSrc | DDCAPS_ALIGNSIZESRC
dwAlignBoundaryDest | DDCAPS_ALIGNBOUNDARYDEST
dwAlignSizeDest | DDCAPS_ALIGNSIZEDEST
dwMinOverlayStretch | DDCAPS_OVERLAYSTRETCH
dwMaxOverlayStretch | DDCAPS_OVERLAYSTRETCH

The dwMaxVisibleOverlays and dwCurrVisibleOverlays members carry information about the maximum number of overlays the hardware can display, and how many of them are currently visible.

Additionally, the hardware reports rectangle position and size alignment restrictions in the dwAlignBoundarySrc, dwAlignSizeSrc, dwAlignBoundaryDest, dwAlignSizeDest, and dwAlignStrideAlign members. The values in these members dictate how you must size and position source and destination rectangles when displaying overlay surfaces. For more information, see Source and Destination Rectangles and Boundary and Size Alignment.

Also, the hardware reports information about stretch factors in the dwMinOverlayStretch and dwMaxOverlayStretch members. For more information, see Minimum and Maximum Stretch Factors.