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


Метод IDirect3DDevice9::SetRenderTarget (d3d9.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 d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DDevice9