Поделиться через


Структура 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
Все элементы выравнивания допустимы. К ним относятся следующие объекты.
dwAlignVideoPortBoundary,
dwAlignVideoPortPrescaleWidth,
dwAlignVideoPortCropBoundary, и
dwAlignVideoPortCropWidth.
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)

См. также раздел

DDCORECAPS

DD_DIRECTDRAW_GLOBAL

DdGetDriverInfo