Метод IDirect3DDevice9Ex::P resentEx (d3d9.h)
Замените следующий буфер цепочки буферов передним буфером.
Синтаксис
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. Функция Present будет вращаться до тех пор, пока оборудование не освободится, не возвращая ошибку.
- Если dwFlags = D3DPRESENT_DONOTFLIP драйвер дисплея вызывается с передним буфером в качестве исходной и целевой поверхности. Драйвер отвечает, планируя синхронизацию кадров, но не изменяя отображаемую поверхность. Этот флаг доступен только в полноэкранном режиме или при использовании D3DSWAPEFFECT_FLIPEX в оконном режиме.
- Если dwFlags = D3DPRESENT_DONOTWAIT, а оборудование занято обработкой или ожидает интервала вертикальной синхронизации, метод вернет D3DERR_WASSTILLDRAWING.
- Если dwFlags = D3DPRESENT_FORCEIMMEDIATE, при вызове Present применяется D3DPRESENT_INTERVAL_IMMEDIATE. Этот флаг можно указать только при использовании 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). Дополнительные сведения об утерянных, зависавших и удаленных устройствах см. в статье Изменения поведения потерянных устройств.
Различия между Direct3D 9 и Direct3D 9Ex: D3DSWAPEFFECT_FLIPEX доступна только в Direct3D9Ex, работающей в Windows 7 (или более текущей операционной системе). |
Комментарии
Аналогично методу IDirect3DDevice9::P resent , PresentEx добавляет параметр dwflags.
При создании цепочки буферов с флагом D3DSWAPEFFECT_FLIPEX значения pSourceRect, pDestRect и pDirtyRegion должны иметь значение NULL.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d9.h |
Библиотека | D3D9.lib |