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


функция обратного вызова PDD_VPORTCB_UPDATE (ddrawint.h)

Функция обратного вызова DdVideoPortUpdate запускает и останавливает объект VPE, а также изменяет поток данных объекта VPE.

Синтаксис

PDD_VPORTCB_UPDATE PddVportcbUpdate;

DWORD PddVportcbUpdate(
  PDD_UPDATEVPORTDATA unnamedParam1
)
{...}

Параметры

unnamedParam1

Указывает на DD_UPDATEVPORTDATA структуру, содержащую сведения, необходимые драйверу для обновления объекта VPE.

Возвращаемое значение

DdVideoPortUpdate возвращает один из следующих кодов обратного вызова:

Комментарии

Драйверы DirectDraw, поддерживающие VPE, должны реализовывать DdVideoPortUpdate.

Если элемент dwFlags структуры DD_UPDATEVPORTDATA в lpUpdate DDRAWI_VPORTSTART или DDRAWI_VPORTUPDATE, драйвер должен сделать следующее:

  • Проверьте все флаги в элементе dwVPFlags структуры DDVIDEOPORTINFO , на которую указывает элемент lpVideoInfo DD_UPDATEVPORTDATA. Эти флаги описывают, как драйвер должен передавать видеоданные на поверхность (или поверхности); Например, они указывают, должен ли драйвер выполнять автоподбор, обрезать видео или данные VBI и т. д.
  • Настройте циклы на оборудовании для записи видео и (или) данных VBI на поверхности в том порядке, в котором поверхности хранятся в массивах. Драйвер должен вернуться как можно быстрее после настройки этих циклов.
  • Если запрашивается автоподбор, сохраните смещение буфера кадра для каждой поверхности во внутренней структуре данных драйвера. Смещения поверхности должны храниться в порядке, в котором поверхности встречаются в массивах DD_SURFACE_INT в элементах lplpDDSurface и lplpDDVBISurface DD_UPDATEVPORTDATA. Таким образом, при вызове DdUpdateOverlay драйвер имеет запись о порядке переворачивания поверхностной цепочки.
Если элемент dwVBIHeight структуры DDVIDEOPORTINFO больше нуля, а lplpDDVBISurface не равен NULL, драйвер должен записать строки данных VBI , заданные числом в dwVBIHeight , в каждую поверхность массива, на которую указывает lplpDDVBISurface .

Если оборудование драйвера не поддерживает количество поверхностей, указанное при запросе автоподбора, DdVideoPortUpdate должен завершить вызов, задав DDERR_UNSUPPORTED в элементе ddRVal DD_UPDATEVPORTDATA.

Количество поверхностей в цепях поверхностей видео и VBI может отличаться; то есть члены dwNumAutoflip и dwNumVBIAutoflip DD_UPDATEVPORTDATA могут быть разными значениями.

Если dwFlags DDRAWI_VPORTSTOP, драйвер должен вернуться немедленно. Драйвер не должен опрашивать, пока поток данных не остановится.

Требования

   
Целевая платформа Персональный компьютер
Верхняя часть ddrawint.h (включая Winddi.h)

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

DDVIDEOPORTINFO

DD_SURFACE_INT

DD_UPDATEVPORTDATA

DdUpdateOverlay