Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключите следующий буфер цепочки буфера с передним буфером.
Синтаксис
HRESULT PresentEx(
[in] const RECT *pSourceRect,
[in] const RECT *pDestRect,
[in] HWND hDestWindowOverride,
[in] const RGNDATA *pDirtyRegion,
[in] DWORD dwFlags
);
Параметры
[in] pSourceRect
Тип: const RECT*
Указатель на структуру RECT , указывающую область на исходной поверхности для копирования в координатах клиента окна. Применяется только при создании цепочки буферов с флагом D3DSWAPEFFECT_COPY . Если значение NULL, отображается вся исходная поверхность. Если прямоугольник превышает исходную поверхность, он обрезается к исходной поверхности.
[in] pDestRect
Тип: const RECT*
Указатель на структуру RECT , указывающую целевой регион на целевой поверхности в координатах клиента окна. Применяется только при создании цепочки буферов с флагом D3DSWAPEFFECT_COPY . Если значение NULL, заполняется вся клиентская область. Если прямоугольник превышает целевую клиентская область, он обрезается к целевой клиентской области.
[in] hDestWindowOverride
Тип: HWND
Указатель на окно назначения, клиентское пространство которого принимается в качестве целевого объекта для этой презентации. Если это значение равно NULL, среда выполнения использует элемент hDeviceWindowD3DPRESENT_PARAMETERS для презентации.
[in] pDirtyRegion
Тип: const RGNDATA*
Указатель на структуру RGNDATA , указывающую наименьший набор пикселей, которые необходимо передать. Это значение должно иметь значение NULL , если цепочка буферов не была создана с флагом D3DSWAPEFFECT_COPY . Дополнительные сведения о цепочках буферов см. в разделе Flipping Surfaces (Direct3D 9).
Если это значение не равно NULL, содержащийся регион выражается в координатах обратного буфера. Этот метод учитывает эти прямоугольники при оптимизации презентации путем копирования только пикселей в пределах региона или некоторых подходящих развернутых прямоугольников. Это помощь только в оптимизации, и приложение не должно полагаться на регион, скопированный точно. Реализация может скопировать весь исходный прямоугольник.
[in] dwFlags
Тип: DWORD
Позволяет приложению запрашивать, что метод возвращается немедленно, когда драйвер сообщает, что он не может запланировать презентацию. Допустимые значения : 0 или любое сочетание флагов D3DPRESENT .
- Если dwFlags = 0, этот метод ведет себя так, как это было до Direct3D 9. Пока оборудование не будет свободно, не возвращая ошибку.
- Если dwFlags = D3DPRESENT_DONOTFLIP драйвер отображения вызывается с передним буфером в качестве исходной и целевой поверхности. Драйвер отвечает путем планирования синхронизации кадров, но не изменяет отображаемую поверхность. Этот флаг доступен только в полноэкранном режиме или при использовании D3DSWAPEFFECT_FLIPEX в окне.
- Если dwFlags = D3DPRESENT_DONOTWAIT, а оборудование занято обработкой или ожидает вертикального интервала синхронизации, метод возвращает D3DERR_WASSTILLDRAWING.
- Если dwFlags = D3DPRESENT_FORCEIMMEDIATE, D3DPRESENT_INTERVAL_IMMEDIATE применяется к этому вызову Present. Этот флаг можно указать только при использовании D3DSWAPEFFECT_FLIPEX. Это поведение одинаково для оконных и полноэкранных режимов.
- Если dwFlags = D3DPRESENT_LINEAR_CONTENT, гамма-коррекция выполняется из линейного пространства в SRGB для цепочки буферов окна. Этот флаг вступит в силу только в том случае, если драйвер предоставляет D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (см. Гамма (Direct3D 9)).
Возвращаемое значение
Тип: HRESULT
Возможные возвращаемые значения: S_OK, D3DERR_DEVICELOST, D3DERR_DEVICEHUNG, D3DERR_DEVICEREMOVED или D3DERR_OUTOFVIDEOMEMORY (см. раздел D3DERR) или S_PRESENT_OCCLUDED или S_PRESENT_MODE_CHANGED (см. S_PRESENT). Дополнительные сведения об потерянных, зависавших и удаленных устройствах см. в разделе "Изменения поведения потерянных устройств".
|
Различия между Direct3D 9 и Direct3D 9Ex: D3DSWAPEFFECT_FLIPEX доступен только в Direct3D9Ex, работающем в Windows 7 (или более текущей операционной системе). |
Замечания
Как и метод IDirect3DDevice9::P resent , PresentEx добавляет параметр dwflags.
При создании цепочки буферов с флагом D3DSWAPEFFECT_FLIPEX значения pSourceRect, pDestRect и pDirtyRegion должны иметь значение NULL.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Виндоус |
| Header | d3d9.h |
| Library | D3D9.lib |