Extended Surface Capability Flags
The extended surface capabilities added to the latest versions of DirectDraw are made visible to the driver when the application sets the appropriate flags in the dwCaps2 member of the DDSCAPS2 structure.
Applications can only set the DDSCAPS2_HARDWAREDEINTERLACE flag in conjunction with the DDSCAPS_OVERLAY flag. If a driver sees this flag set at CreateSurface time, it means that DirectDraw expects that the driver will do whatever is necessary to match the hardware video port frame rate with the device frame rate.
The DDSCAPS2_HINTDYNAMIC, DDSCAPS2_HINTSTATIC, and DDSCAPS2_OPAQUE flags are hints set by the application at CreateSurface time that inform the driver what the application plans to do with the surface. The DDSCAPS2_HINTDYNAMIC flag means that the application will update the surface frequently. The DDSCAPS2_HINTSTATIC flag means that the application will update the surface rarely, but still requires access. This means the driver must be able to allow locks on the surface, which may involve some hidden decompression and compression steps. The DDSCAPS2_OPAQUE flag means that the application will never lock, blt, or update the surface for the rest of that surface's lifetime. The driver is free to compress or reorder the surface without having to ever decompress it.
Note The driver does not need to set these flags to enable them. DirectDraw merely passes these bits to the driver when DdCreateSurface is called.
Driver writers might want to use the extended heap restriction features (described in Extended Heap Restrictions) of DirectDraw to automatically place DDSCAPS2_OPAQUE textures in optimized heaps. This is entirely up to the driver developer.
The DDSCAPS2_HINTDYNAMIC, DDSCAPS2_HINTSTATIC, and DDSCAPS2_OPAQUE flags are described in more detail in the Microsoft DirectX Driver Development Kit (DDK) documentation.
The DDSCAPS2_TEXTUREMANAGE flag is not relevant to drivers. This flag informs the DirectX runtime that it is responsible for moving the surface from a backing surface to display memory, as appropriate, to enable accelerated 3D texturing.
Build date: 11/16/2013