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


Метод IDirect3DSwapChain9::P resent (d3d9.h)

Представляет содержимое следующего буфера в последовательности задних буферов, принадлежащих цепочке буферов.

Синтаксис

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Параметры

[in] pSourceRect

Тип: const RECT*

Указатель на исходный прямоугольник (см. раздел RECT). Используйте значение NULL для представления всей поверхности. Это значение должно иметь значение NULL , если только цепочка буферов не была создана с D3DSWAPEFFECT_COPY. Если прямоугольник превышает исходную поверхность, прямоугольник обрезается к исходной поверхности.

[in] pDestRect

Тип: const RECT*

Указатель на целевой прямоугольник в координатах клиента (см. раздел RECT). Это значение должно иметь значение NULL , если только цепочка буферов не была создана с D3DSWAPEFFECT_COPY. Используйте значение NULL для заполнения всей клиентской области. Если прямоугольник превышает целевую клиентную область, прямоугольник обрезается к целевой клиентской области.

[in] hDestWindowOverride

Тип: HWND

Целевое окно, клиентская область которого используется в качестве целевого объекта для этой презентации. Если это значение равно NULL, среда выполнения использует элемент hDeviceWindowD3DPRESENT_PARAMETERS для презентации.

[in] pDirtyRegion

Тип: const RGNDATA*

Это значение должно иметь значение NULL , если только цепочка буферов не была создана с D3DSWAPEFFECT_COPY. См. раздел Flipping Surfaces (Direct3D 9).

Если это значение не равно NULL, автономная область выражается в координатах обратного буфера. Прямоугольники в области представляют собой минимальный набор пикселей, которые необходимо обновить. Этот метод учитывает эти прямоугольники при оптимизации представления путем копирования только пикселей в пределах области или некоторых подходящих расширенных наборов прямоугольников. Это помогает только для оптимизации, и приложение не должно полагаться на точно копируемый регион. Реализация может скопировать весь исходный прямоугольник.

[in] dwFlags

Тип: DWORD

Позволяет приложению запрашивать возврат метода немедленно, когда драйвер сообщает, что ему не удается запланировать презентацию. Допустимые значения: 0 или любое сочетание D3DPRESENT_DONOTWAIT или D3DPRESENT_LINEAR_CONTENT.

  • Если dwFlags = 0, этот метод ведет себя так же, как и до Direct3D 9. Функция Present будет вращаться до тех пор, пока оборудование не освободится, не возвращая ошибку.
  • Если dwFlags = D3DPRESENT_DONOTWAIT, а оборудование занято обработкой или ожидает интервала вертикальной синхронизации, метод вернет D3DERR_WASSTILLDRAWING.
  • Если dwFlags = D3DPRESENT_LINEAR_CONTENT, гамма-коррекция выполняется из линейного пространства в sRGB для оконных цепочек буферов. Этот флаг вступит в силу, только если драйвер предоставляет D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION (см. раздел Гамма (Direct3D 9)). Приложения должны указать этот флаг, если формат backbuffer является 16-разрядным с плавающей запятой, чтобы сопоставить окно с полноэкранным гамма-поведением.

Возвращаемое значение

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. В случае сбоя метода возвращается одно из следующих значений: D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY.

Комментарии

Метод Present является ярлыком для Present. Параметр Present был обновлен, чтобы принять флаг, позволяющий приложению запрашивать возврат метода немедленно, когда драйвер сообщает, что он не может запланировать презентацию.

При необходимости применяется операция растяжения для передачи пикселей в исходном прямоугольнике в целевой прямоугольник в клиентской области целевого окна.

При вызове между парами BeginScene и EndScene не произойдет сбой, если целевой объект отрисовки не является текущим целевым объектом отрисовки (например, обратный буфер, полученный при создании дополнительной цепочки буферов). Это новое поведение для Direct3D 9.

Требования

   
Целевая платформа Windows
Header d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DSwapChain9

Сброс