Метод 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.
- Размер поверхности трафарета глубины должен быть больше или равен размеру целевого объекта отрисовки.
Текстуры куба отличаются от других поверхностей тем, что они являются коллекциями поверхностей. Чтобы вызвать IDirect3DDevice9::SetRenderTarget с текстурой куба, необходимо выбрать отдельное лицо с помощью IDirect3DCubeTexture9::GetCubeMapSurface и передать полученную поверхность в IDirect3DDevice9::SetRenderTarget.
Требования
Целевая платформа | Windows |
Header | d3d9helper.h (включая D3D9.h) |
Библиотека | D3D9.lib |