функция обратного вызова 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 драйвер имеет запись о порядке переворачивания поверхностной цепочки.
Если оборудование драйвера не поддерживает количество поверхностей, указанное при запросе автоподбора, DdVideoPortUpdate должен завершить вызов, задав DDERR_UNSUPPORTED в элементе ddRVal DD_UPDATEVPORTDATA.
Количество поверхностей в цепях поверхностей видео и VBI может отличаться; то есть члены dwNumAutoflip и dwNumVBIAutoflip DD_UPDATEVPORTDATA могут быть разными значениями.
Если dwFlags DDRAWI_VPORTSTOP, драйвер должен вернуться немедленно. Драйвер не должен опрашивать, пока поток данных не остановится.
Требования
Целевая платформа | Персональный компьютер |
Верхняя часть | ddrawint.h (включая Winddi.h) |