Метод IDirect3DDevice9::SetRenderTarget (d3d9helper.h)

Задает новый буфер цвета для устройства.

Синтаксис

HRESULT SetRenderTarget(
  [in] DWORD             RenderTargetIndex,
  [in] IDirect3DSurface9 *pRenderTarget
);

Параметры

[in] RenderTargetIndex

Тип: DWORD

Индекс целевого объекта отрисовки. См. заметки.

[in] pRenderTarget

Тип: IDirect3DSurface9*

Указатель на новый буфер цвета. Если значение РАВНО NULL, буфер цвета для соответствующего RenderTargetIndex отключен. Устройства всегда должны быть связаны с буфером цвета. На новой поверхности целевого объекта отрисовки должна быть указана по крайней мере D3DUSAGE_RENDERTARGET.

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

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Этот метод возвращает D3DERR_INVALIDCALL, если:

  • pRenderTarget = NULL и RenderTargetIndex = 0
  • pRenderTarget имеет значение != NULL , а целевой объект отрисовки недопустим.

Комментарии

Устройство может поддерживать несколько целевых объектов отрисовки. Число целевых объектов отрисовки, поддерживаемых устройством, содержится в элементе NumSimultaneousRTs D3DCAPS9. См. раздел Несколько целевых объектов отрисовки (Direct3D 9).

Установка нового целевого объекта отрисовки приведет к тому, что окно просмотра (см. раздел Окна просмотра и обрезка (Direct3D 9)) будет установлено на полный размер нового целевого объекта отрисовки.

Некоторые аппаратные средства проверяют совместимость буфера трафарета глубины с буфером цвета. Если это сделано, это делается только в отладочной сборке.

К ограничениям для использования этого метода относятся следующие:

  • Тип multisample должен быть одинаковым для целевого объекта отрисовки и поверхности трафарета глубины.
  • Форматы должны быть совместимы для целевого объекта отрисовки и поверхности трафарета глубины. См. раздел IDirect3D9::CheckDepthStencilMatch.
  • Размер поверхности трафарета глубины должен быть больше или равен размеру целевого объекта отрисовки.
Эти ограничения проверяются только при использовании среды выполнения отладки при вызове любого из методов IDirect3DDevice9Draw.

Текстуры куба отличаются от других поверхностей тем, что они являются коллекциями поверхностей. Чтобы вызвать IDirect3DDevice9::SetRenderTarget с текстурой куба, необходимо выбрать отдельное лицо с помощью IDirect3DCubeTexture9::GetCubeMapSurface и передать полученную поверхность в IDirect3DDevice9::SetRenderTarget.

Требования

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

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

IDirect3DDevice9