структура 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) |