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


структура DD_FLIPDATA (ddrawint.h)

Структура DD_FLIPDATA содержит сведения, необходимые для выполнения пролистывания.

Синтаксис

typedef struct _DD_FLIPDATA {
  PDD_DIRECTDRAW_GLOBAL lpDD;
  PDD_SURFACE_LOCAL     lpSurfCurr;
  PDD_SURFACE_LOCAL     lpSurfTarg;
  DWORD                 dwFlags;
  HRESULT               ddRVal;
  VOID                  *Flip;
  PDD_SURFACE_LOCAL     lpSurfCurrLeft;
  PDD_SURFACE_LOCAL     lpSurfTargLeft;
} *PDD_FLIPDATA, DD_FLIPDATA;

Члены

lpDD

Указывает на структуру DD_DIRECTDRAW_GLOBAL , описывающую устройство драйвера.

lpSurfCurr

Указывает на DD_SURFACE_LOCAL структуру, описывающую текущую поверхность.

lpSurfTarg

Указывает на структуру DD_SURFACE_LOCAL, описывающую целевую поверхность; то есть поверхность, на которую должен перевернуть драйвер.

dwFlags

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

Flag Значение
DDFLIP_DONOTWAIT Указывает, что возвращает DDERR_WASSTILLDRAWING, если ускоритель занят. Значение по умолчанию — DDFLIP_WAIT.
DDFLIP_EVEN Поверхность, на которую указывает элемент lpSurfTarg , содержит только четное поле видеоданных. Этот флаг действителен, только если поверхность является наложением и является взаимоисключающим из DDFLIP_ODD.
DDFLIP_ODD Поверхность, на которую указывает элемент lpSurfTarg , содержит только нечетное поле видеоданных. Этот флаг действителен, только если поверхность является наложением и является взаимоисключающим из DDFLIP_EVEN.
DDFLIP_NOVSYNC Драйвер должен выполнить пролистывание и немедленно вернуться. Как правило, текущий задний буфер (который раньше был передним буфером) по-прежнему виден до следующего вертикального отката. Последующие операции с поверхностями, на которые указывают члены lpSurfCurr и lpSurfTarg, не проверка, чтобы проверить, завершено ли физическое пролистывание. Это позволяет приложению выполнять пролистывания с более высокой частотой, чем частота обновления монитора, хотя это может привести к отображению артефактов.
DDFLIP_INTERVAL2 Драйвер должен выполнять пролистывание при каждой другой вертикальной синхронизации. Он должен возвращать DDERR_WASSTILLDRAWING до тех пор, пока не будет выполнено второе вертикальное откат. Этот флаг является взаимоисключающим из DDFLIP_INTERVAL3 и DDFLIP_INTERVAL4.
DDFLIP_INTERVAL3 Драйвер должен выполнять пролистывание при каждой третьей вертикальной синхронизации. Он должен возвращать DDERR_WASSTILLDRAWING до тех пор, пока не будет выполнено третье вертикальное откат. Этот флаг является взаимоисключающим из DDFLIP_INTERVAL2 и DDFLIP_INTERVAL4.
DDFLIP_INTERVAL4 Драйвер должен выполнять пролистывание при каждой четвертой вертикальной синхронизации. Он должен возвращать DDERR_WASSTILLDRAWING до тех пор, пока не будет выполнено четвертое вертикальное откат. Этот флаг является взаимоисключающим из DDFLIP_INTERVAL2 и DDFLIP_INTERVAL3.
DDFLIP_STEREO Указывает, чтобы включить автоподключение стерео (оборудование автоматически переключается между левым и правым буферами при каждом обновлении экрана).
DDFLIP_WAIT Указывает, что не возвращается до тех пор, пока не произойдет пролистывание или ошибка.

ddRVal

Указывает расположение, в которое драйвер записывает возвращаемое значение обратного вызова DdFlip . Код возврата DD_OK указывает на успешное выполнение. Дополнительные сведения см. в разделе Возвращаемые значения для DirectDraw.

Flip

Используется API Microsoft DirectDraw и не должен заполняться драйвером.

lpSurfCurrLeft

Указывает на структуру DD_SURFACE_LOCAL , описывающую текущую левую поверхность.

lpSurfTargLeft

Указывает на DD_SURFACE_LOCAL структуру, описывающую левую целевую поверхность для перевернуть.

Требования

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

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

DdFlip