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


Структура DDVIDEOPORTINFO (dvp.h)

Структура DDVIDEOPORTINFO описывает, как драйвер должен передавать видеоданные на поверхность (или на поверхности); DDVIDEOPORTINFO является членом структуры DD_VIDEOPORT_LOCAL .

Синтаксис

typedef struct _DDVIDEOPORTINFO {
  DWORD           dwSize;
  DWORD           dwOriginX;
  DWORD           dwOriginY;
  DWORD           dwVPFlags;
  RECT            rCrop;
  DWORD           dwPrescaleWidth;
  DWORD           dwPrescaleHeight;
  LPDDPIXELFORMAT lpddpfInputFormat;
  LPDDPIXELFORMAT lpddpfVBIInputFormat;
  LPDDPIXELFORMAT lpddpfVBIOutputFormat;
  DWORD           dwVBIHeight;
  ULONG_PTR       dwReserved1;
  ULONG_PTR       dwReserved2;
} *LPDDVIDEOPORTINFO, DDVIDEOPORTINFO;

Члены

dwSize

Задает размер структуры в байтах. Этот элемент необходимо инициализировать перед использованием структуры.

dwOriginX

Указывает размещение видеоданных в пределах поверхности (в пикселях). Это смещение применяется ко всем поверхностям при запросе автоподбора.

dwOriginY

Указывает размещение видеоданных в пределах поверхности в пикселях. Это смещение применяется ко всем поверхностям при запросе автоподбора.

dwVPFlags

Указывает набор флагов, указывающих, как драйвер должен передавать видеоданные. Этот член может быть побитовой ИЛИ следующих значений:

Flag Значение
DDVP_AUTOFLIP Выполнение автоматического перелистывания. Автоматическое переворачивание выполняется между поверхностью наложения, подключенной к аппаратному видеопорту, и поверхностями наложения, прикрепленными к поверхности. Порядок переворачивания — это порядок, в котором были прикреплены поверхности наложения.
DDVP_CONVERT Видеоданные и целевая поверхность имеют разные форматы. Драйвер должен преобразовать видеоданные в формат целевой поверхности.
DDVP_CROP Драйвер должен обрезать видео и данные VBI с помощью прямоугольника в элементе rCrop .
DDVP_IGNOREVBIXCROP При обрезки данных VBI драйвер должен игнорировать координаты обрезки слева и справа.
DDVP_INTERLEAVE Чередующиеся поля видео и данных VBI должны чередуться в памяти.
DDVP_MIRRORLEFTRIGHT Видеоданные должны зеркально отображаться слева направо при записи в буфер кадров.
DDVP_MIRRORUPDOWN Видеоданные должны зеркально отображаться сверху вниз, когда они записываются в буфер кадров.
DDVP_NOINTERLEAVE Если установлен флаг DDVP_INTERLEAVE, драйвер должен чередовывать только видеоданные; то есть драйвер не должен чередуть данные VBI.
DDVP_OVERRIDEBOBWEAVE Решения bob и плетения не должны быть переопределены другими интерфейсами. Если этот флаг установлен, Microsoft DirectDraw не разрешает драйверу в режиме ядра использовать функцию передачи видео в режиме ядра для переключения оборудования между режимами bob и плетения.
DDVP_PRESCALE Выполняйте предварительное масштабирование и масштабирование на основе элементов dwPrescaleWidth и dwPrescaleHeight . Драйвер должен предварительно масштабировать только видеоданные, если задано DDVP_VBINOSCALE; В противном случае необходимо предварительно масштабировать данные видео и VBI.
DDVP_SKIPEVENFIELDS Пропускать входные данные четных полей как для видео, так и для данных VBI.
DDVP_SKIPODDFIELDS Пропускать входные данные нечетных полей как для видео, так и для данных VBI.
DDVP_SYNCMASTER Управление графическими VSYNCs с помощью аппаратного видеопорта VSYNCs.
DDVP_VBICONVERT Структура DDPIXELFORMAT , в которую точки-члены lpddpfVBIOutputFormat содержат данные, которые следует использовать для преобразования данных в пределах интервала вертикального пробела.
DDVP_VBINOSCALE Данные в пределах интервала вертикального пробела не следует масштабировать.

rCrop

Задает структуру RECT , задающую прямоугольник обрезки в пикселях. Этот элемент содержит допустимый прямоугольник, если флаг DDVP_CROP установлен в элементе dwVPFlags .

dwPrescaleWidth

Указывает ширину в пикселях, до которой необходимо предварительно масштабировать или масштабировать данные видео и VBI. Например, если ширина видеоданных составляет 720 пикселей, а клиент запрашивает разрезать ширину вдвое, клиент указывает 360 в dwPrescaleWidth. Этот элемент содержит допустимую ширину, если флаг DDVP_PRESCALE установлен в элементе dwVPFlags .

dwPrescaleHeight

Указывает высоту в пикселях, до которой должны быть предварительно масштабированы или увеличены данные видео и VBI. Например, если ширина видеоданных составляет 240 пикселей, а клиент запрашивает разрезать ширину вдвое, клиент указывает 120 в dwPrescaleHeight. Этот элемент содержит допустимую ширину, если флаг DDVP_PRESCALE установлен в элементе dwVPFlags .

lpddpfInputFormat

Указывает на структуру DDPIXELFORMAT, которая задает формат видеоданных, записываемых в объект расширений видеопорта (VPE). Этот формат может отличаться от целевого формата поверхности, если объект VPE выполняет преобразование.

lpddpfVBIInputFormat

Указывает на структуру DDPIXELFORMAT, которая задает формат входных данных в пределах интервала вертикального пробела.

lpddpfVBIOutputFormat

Указывает на структуру DDPIXELFORMAT, которая задает формат вывода данных в пределах интервала вертикального пробела.

dwVBIHeight

Указывает количество строк данных в пределах интервала вертикального пробела.

dwReserved1

Зарезервировано для использования системой и должно игнорироваться драйвером.

dwReserved2

Зарезервировано для использования системой и должно игнорироваться драйвером.

Комментарии

Все элементы этой структуры задаются клиентом, и драйвер никогда не должен изменять их. Клиентом обычно является смеситель наложения.

Требования

Требование Значение
Заголовок dvp.h (включая Dvp.h)

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

DDPIXELFORMAT

DD_VIDEOPORT_LOCAL