You can retrieve information about the supported overlay features by calling the IDirectDraw4::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 |
dwAlignStrideAlign | DDCAPS_ALIGNSTRIDE |
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.