Структура DDVIDEOPORTCAPS (dvp.h)
Структура DDVIDEOPORTCAPS описывает возможности и ограничения выравнивания аппаратного видеопорта.
Синтаксис
typedef struct _DDVIDEOPORTCAPS {
DWORD dwSize;
DWORD dwFlags;
DWORD dwMaxWidth;
DWORD dwMaxVBIWidth;
DWORD dwMaxHeight;
DWORD dwVideoPortID;
DWORD dwCaps;
DWORD dwFX;
DWORD dwNumAutoFlipSurfaces;
DWORD dwAlignVideoPortBoundary;
DWORD dwAlignVideoPortPrescaleWidth;
DWORD dwAlignVideoPortCropBoundary;
DWORD dwAlignVideoPortCropWidth;
DWORD dwPreshrinkXStep;
DWORD dwPreshrinkYStep;
DWORD dwNumVBIAutoFlipSurfaces;
DWORD dwNumPreferredAutoflip;
WORD wNumFilterTapsX;
WORD wNumFilterTapsY;
} *LPDDVIDEOPORTCAPS, DDVIDEOPORTCAPS;
Члены
dwSize
Задает размер структуры в байтах.
dwFlags
Укажите, какие элементы в этой структуре содержат допустимые данные. Этот элемент может быть побитовой или любого из следующих значений:
Flag | Значение |
---|---|
DDVPD_ALIGN |
|
DDVPD_AUTOFLIP | DwNumAutoFlipSurfaces является допустимым. |
DDVPD_CAPS | Член dwCaps является допустимым. |
DDVPD_FX | Член dwFX является допустимым. |
DDVPD_HEIGHT | Член dwMaxHeight является допустимым. |
DDVPD_ID | Член dwVideoPortID является допустимым. |
DDVPD_WIDTH | Допустимы члены dwMaxWidth и dwMaxVBIWidth . |
dwMaxWidth
Указывает максимальную ширину поля в пикселях, поддерживаемую аппаратным видеопортом. Обычно это значение определяется количеством битов в регистре ширины.
dwMaxVBIWidth
Указывает максимальную ширину (в количестве выборок) в строке данных VBI , поддерживаемой аппаратным видеопортом. Это значение может быть больше обычной ширины поля, если аппаратный видеопорт поддерживает избыточные данные VBI.
dwMaxHeight
Задает максимальную высоту поля в пикселях, поддерживаемую аппаратным видеопортом. Обычно это значение определяется количеством битов в регистре высоты.
dwVideoPortID
Указывает идентификатор аппаратного видеопорта для этой записи. Этот член должен быть номером индекса данной структуры DDVIDEOPORTCAPS в массиве, на который указывает элемент lpDDVideoPortCapsструктуры DD_DIRECTDRAW_GLOBAL . Это значение в диапазоне от 0 до (dwMaxVideoPorts – 1). (dwMaxVideoPorts является членом структуры DDCORECAPS .) Если устройство поддерживает только один аппаратный видеопорт, этот элемент должен быть равен нулю.
dwCaps
Указывает набор флагов, указывающих возможности, поддерживаемые этим аппаратным видеопортом. Этот элемент может быть побитовой или любого из следующих значений:
Flag | Значение |
---|---|
DDVPCAPS_AUTOFLIP | Чтобы избежать разрыва, можно выполнить переворачивание автоматически. |
DDVPCAPS_COLORCONTROL | Аппаратный видеопорт может выполнять цветовые операции с входящими данными перед их записью в буфер кадра. |
DDVPCAPS_INTERLACED | Аппаратный видеопорт поддерживает чередование видео. |
DDVPCAPS_NONINTERLACED | Аппаратный видеопорт поддерживает неинтерлейсированные видео. |
DDVPCAPS_OVERSAMPLEDVBI | Аппаратный видеопорт может принимать данные VBI в другой ширине или формате, чем обычные видеоданные. |
DDVPCAPS_READBACKFIELD | Устройство может возвращать значение, указывающее, является ли текущее поле сигнала с чередованием четным или нечетным. |
DDVPCAPS_READBACKLINE | Устройство может возвращать количество записываемых в буфер кадров текущей строки видео. |
DDVPCAPS_SHAREABLE | Игнорируется Microsoft DirectDraw. |
DDVPCAPS_SKIPEVENFIELDS | Аппаратный видеопорт может автоматически удалять даже поля видео. |
DDVPCAPS_SKIPODDFIELDS | Аппаратный видеопорт может автоматически удалять нечетные поля видео. |
DDVPCAPS_SYNCMASTER | Устройство может управлять графической V-sync с аппаратным драйвером видеопорта V-sync. |
DDVPCAPS_SYSTEMMEMORY | Аппаратный видеопорт может записывать данные непосредственно в системную память. |
DDVPCAPS_VBISURFACE | Данные в пределах интервала вертикального пробела можно записать на другую поверхность. |
dwFX
Указывает набор флагов, указывающих эффекты, поддерживаемые этим аппаратным видеопортом. Этот член является побитовой или любого из следующих значений:
Flag | Значение |
---|---|
DDVPFX_CROPTOPDATA | Аппаратный видеопорт поддерживает ограниченную обрезку для обрезки данных вертикального интервала. |
DDVPFX_CROPX | Аппаратный видеопорт может обрезать входящие данные в направлении X перед их записью на поверхность. |
DDVPFX_CROPY | Аппаратный видеопорт может обрезать входящие данные в направлении y перед их записью на поверхность. |
DDVPFX_IGNOREVBIXCROP | Аппаратный видеопорт может игнорировать координаты обрезки слева и справа для видеоданных при обрезке данных VBI с избыточной выборкой. |
DDVPFX_INTERLEAVE | Аппаратный видеопорт поддерживает чередование чередующихся полей в памяти. |
DDVPFX_MIRRORLEFTRIGHT | Аппаратный видеопорт поддерживает зеркальное отображение слева направо при записи видеоданных в буфер кадров. |
DDVPFX_MIRRORUPDOWN | Аппаратный видеопорт поддерживает зеркальное отображение сверху вниз, когда видеоданные записываются в буфер кадров. |
DDVPFX_PRESHRINKX | Данные можно произвольно сжать в направлении x, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESHRINKXB | Данные могут быть сжаты отрицательными силами 2 (1/2, 1/4, 1/8 и т. д.) в направлении x, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESHRINKXS | Данные можно сжать с шагом 1/dwPreshrinkXStep в направлении x, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESHRINKY | Данные можно произвольно сжать в направлении y, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESHRINKYB | Данные могут быть сжаты отрицательными силами 2 (1/2, 1/4, 1/8 и т. д.) в направлении y, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESHRINKYS | Данные можно сжать с шагом в 1/dwPreshrinkYStep в направлении y, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESTRETCHX | Данные можно произвольно растягивать в направлении x, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESTRETCHXN | Данные могут быть растянуты целыми числами в направлении x, прежде чем они будут записаны на поверхность. |
DDVPFX_PRESTRETCHY | Данные могут быть произвольно растянуты в направлении y перед записью на поверхность. |
DDVPFX_PRESTRETCHYN | Данные могут быть растянуты целыми числами в направлении y перед записью на поверхность. |
DDVPFX_VBICONVERT | Данные в пределах интервала вертикального пробела можно преобразовать независимо от оставшихся видеоданных. |
DDVPFX_VBINOSCALE | Масштабирование можно отключить для данных в пределах интервала вертикального пробела. |
dwNumAutoFlipSurfaces
Указывает максимальное количество поверхностей, поддерживаемых в цепочке автофлипов, если аппаратный видеопорт поддерживает автоподбор. Если аппаратный видеопорт не поддерживает автоподбор, драйвер должен задать для этого элемента значение 0.
dwAlignVideoPortBoundary
Указывает ограничение на выравнивание байтов (в байтах), в котором аппаратный видеопорт может быть ориентирован относительно источника поверхности в направлении x.
dwAlignVideoPortPrescaleWidth
Указывает ограничение на выравнивание байтов (в байтах) для ширины данных аппаратного видеопорта при выполнении предварительного масштабирования.
dwAlignVideoPortCropBoundary
Задает ограничение выравнивания байтов (в байтах) для левой координаты обрезки.
dwAlignVideoPortCropWidth
Задает ограничение на выравнивание байтов (в байтах) для ширины прямоугольника обрезки.
dwPreshrinkXStep
Указывает, что аппаратный видеопорт может сжать ширину видеоданных в шагах 1/dwPreshrinkXStep. Этот член действителен, только если указана возможность DDVPFX_PRESHRINKXS.
dwPreshrinkYStep
Указывает, что аппаратный видеопорт может сжать высоту видеоданных в шаге 1/dwPreshrinkYStep. Этот член действителен, только если указана возможность DDVPFX_PRESHRINKYS.
dwNumVBIAutoFlipSurfaces
Указывает максимальное количество поверхностей, поддерживаемых в цепочке автофлипов, если аппаратный видеопорт поддерживает автоподбор. Если аппаратный видеопорт не поддерживает автоподбор, драйвер должен задать для этого элемента значение 0. Этот элемент работает так же, как dwNumAutoFlipSurfaces , за исключением того, что он относится только к устройствам, которые могут отправлять данные VBI на поверхность, отличную от поверхности, на которую записывается обычное видео.
dwNumPreferredAutoflip
Задает оптимальное количество поверхностей, поддерживаемых оборудованием.
wNumFilterTapsX
Указывает количество касаний, которые использует средство предварительного масштабирования в направлении x. Значение 0 означает отсутствие предварительного масштабирования, значение 1 означает репликацию и т. д.
wNumFilterTapsY
Указывает количество касаний, которые использует средство предварительного масштабирования в направлении y. Значение 0 означает отсутствие предварительного масштабирования, значение 1 означает репликацию и т. д.
Комментарии
Драйвер сообщает о возможностях, описанных в структуре DDVIDEOPORTCAPS, при вызове функции DdGetDriverInfo с GUID_VideoPortCaps GUID.
Требования
Верхняя часть | dvp.h (включая Dvp.h) |