The DDVIDEOPORTCAPS structure describes the capabilities and alignment restrictions of a video port. This structure is used with the IDDVideoPortContainer::EnumVideoPorts method.
typedef struct _DDVIDEOPORTCAPS {
DWORD dwSize; // Size of the DDVIDEOPORTCAPS structure
DWORD dwFlags; // Indicates which fields contain data
DWORD dwMaxWidth; // Max width of the video port field
DWORD dwMaxVBIWidth; // Max width of the VBI data
DWORD dwMaxHeight; // Max height of the video port field
DWORD dwVideoPortID; // Video port ID (0 - (dwMaxVideoPorts -1))
DWORD dwCaps; // Video port capabilities
DWORD dwFX; // More video port capabilities
DWORD dwNumAutoFlipSurfaces; // Number of autoflippable surfaces
DWORD dwAlignVideoPortBoundary; // Byte restriction of placement within the surface
DWORD dwAlignVideoPortPrescaleWidth; // Byte restriction of width after prescaling
DWORD dwAlignVideoPortCropBoundary; // Byte restriction of left cropping
DWORD dwAlignVideoPortCropWidth; // Byte restriction of cropping width
DWORD dwPreshrinkXStep; // Width can be shrunk in steps of 1/x
DWORD dwPreshrinkYStep; // Height can be shrunk in steps of 1/x
DWORD dwNumVBIAutoFlipSurfaces; // Number of VBI autoflippable surfaces
DWORD dwReserved1; // Reserved for future use
DWORD dwReserved2; // Reserved for future use
} DDVIDEOPORTCAPS, *LPDDVIDEOPORTCAPS;
DDVPD_WIDTH | The dwMaxWidth member is valid. |
DDVPD_HEIGHT | The dwMaxHeight member is valid. |
DDVPD_ID | The dwVideoPortID member is valid. |
DDVPD_CAPS | The dwCaps member is valid. |
DDVPD_FX | The dwFX member is valid. |
DDVPD_AUTOFLIP | The dwNumAutoFlipSurfaces member is valid. |
DDVPD_ALIGN | The dwAlignVideoPortBoundary, dwAlignVideoPortPrescaleWidth, dwAlignVideoPortCropBoundary, and dwAlignVideoPortCropWidth are valid. |
DDVPCAPS_AUTOFLIP | Flip can be performed automatically to avoid tearing when a VREF occurs. If the data is being interleaved in memory, it will flip on every other VREF. |
DDVPCAPS_INTERLACED | Supports interlaced video. |
DDVPCAPS_NONINTERLACED | Supports non-interlaced video. |
DDVPCAPS_READBACKFIELD | Supports the IDirectDrawVideoPort::GetFieldPolarity method. |
DDVPCAPS_READBACKLINE | Supports the IDirectDrawVideoPort::GetVideoLine method. |
DDVPCAPS_SHAREABLE | Supports two genlocked video streams that share the video port, where one stream uses the even fields and the other uses the odd fields. Separate parameters (including address, scaling, cropping, etc.) are maintained for both fields. |
DDVPCAPS_SKIPEVENFIELDS | Even fields of video can be automatically discarded. |
DDVPCAPS_SKIPODDFIELDS | Odd fields of video can be automatically discarded. |
DDVPCAPS_SYNCMASTER | Can drive the graphics sync (refresh rate) based on the video port sync. |
DDVPCAPS_SYSTEMMEMORY | Capable of writing to surfaces created in system memory. |
DDVPCAPS_VBISURFACE | Data within the VBI can be written to a different surface. |
DDVPCAPS_COLORCONTROL | Can perform color control operations on incoming data before writing to the frame buffer. |
DDVPCAPS_OVERSAMPLEDVBI | Can accept VBI data in a different format or width than the regular video data. |
DDVPCAPS_VBIANDVIDEOINDEPENDENT | Indicates that the VBI and video portions of the video stream can be controlled by independent processes. |
DDVPFX_CROPTOPDATA | Limited cropping is available to crop VBI data. |
DDVPFX_CROPX | Incoming data can be cropped in the x direction before it is written to the surface. |
DDVPFX_CROPY | Incoming data can be cropped in the y direction before it is written to the surface. |
DDVPFX_INTERLEAVE | Supports interleaving interlaced fields in memory. |
DDVPFX_MIRRORLEFTRIGHT | Supports mirroring left to right as the video data is written into the frame buffer. |
DDVPFX_MIRRORUPDOWN | Supports mirroring top to bottom as the video data is written into the frame buffer. |
DDVPFX_PRESHRINKX | Data can be arbitrarily shrunk in the x direction before it is written to the surface. |
DDVPFX_PRESHRINKY | Data can be arbitrarily shrunk in the y direction before it is written to the surface. |
DDVPFX_PRESHRINKXB | Data can be binary shrunk (1/2, 1/4, 1/8, etc.) in the x direction before it is written to the surface. |
DDVPFX_PRESHRINKYB | Data can be binary shrunk (1/2, 1/4, 1/8, etc.) in the y direction before it is written to the surface. |
DDVPCAPS_PRESHRINKXS | Data can be shrunk in the x direction by increments of 1/x, where x is specified in the dwShrinkXStep member. |
DDVPCAPS_PRESHRINKYS | Data can be shrunk in the y direction by increments of 1/y, where y is specified in the dwShrinkYStep |
DDVPFX_PRESTRETCHX | Data can be arbitrarily stretched in the x direction before it is written to the surface. |
DDVPFX_PRESTRETCHY | Data can be arbitrarily stretched in the y direction before it is written to the surface. |
DDVPFX_PRESTRETCHXN | Data can be integer stretched in the x direction before it is written to the surface. (1x, 2x, 3x, etc.) |
DDVPFX_PRESTRETCHYN | Data can be integer stretched in the y direction before it is written to the surface. (1x, 2x, 3x, etc.) |
DDVPFX_VBICONVERT | Data within the VBI can be converted independently of the remaining video data. |
DDVPFX_VBINOINTERLEAVE | Interleaving can be disabled for data within the VBI. |
DDVPFX_VBINOSCALE | Scaling can be disabled for data within the VBI. |
DDVPFX_IGNOREVBIXCROP | The video port can ignore the left and right cropping coordinates when cropping oversampled VBI data. |
Windows NT: Use version 5.0 or later.
Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
Windows CE: Unsupported.
Header: Declared in dvp.h.