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


Метод IDirect3DDevice9::UpdateSurface (d3d9.h)

Копирует прямоугольные подмножества пикселей с одной поверхности на другую.

Синтаксис

HRESULT UpdateSurface(
  [in] IDirect3DSurface9 *pSourceSurface,
  [in] const RECT        *pSourceRect,
  [in] IDirect3DSurface9 *pDestinationSurface,
  [in] const POINT       *pDestPoint
);

Параметры

[in] pSourceSurface

Тип: IDirect3DSurface9*

Указатель на интерфейс IDirect3DSurface9 , представляющий исходную поверхность. Этот параметр должен указывать на поверхность, отличную от pDestinationSurface.

[in] pSourceRect

Тип: const RECT*

Указатель на прямоугольник на исходной поверхности. Если указать значение NULL для этого параметра, будет скопирована вся поверхность.

[in] pDestinationSurface

Тип: IDirect3DSurface9*

Указатель на интерфейс IDirect3DSurface9 , представляющий целевую поверхность.

[in] pDestPoint

Тип: const POINT*

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

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

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается ошибкой, возвращаемое значение может быть одним из следующих: D3DERR_INVALIDCALL.

Комментарии

Этот метод аналогичен Методу CopyRects в DirectX 8.

Эта функция имеет следующие ограничения.

  • Исходная поверхность должна быть создана с D3DPOOL_SYSTEMMEM.
  • Целевая поверхность должна быть создана с D3DPOOL_DEFAULT.
  • Ни та или иная поверхность не может быть заблокирована или не может содержать выдающийся контекст устройства.
  • Ни область не может быть создана с несколькими выборками. Единственным допустимым флагом для обеих поверхностей является D3DMULTISAMPLE_NONE.
  • Формат поверхности не может быть форматом трафарета глубины.
  • Исходные и dest прямоугольные должны помещаться в пределах поверхности.
  • Не допускается растягивание или сжатие (прямоугольник должен иметь одинаковый размер).
  • Исходный формат должен соответствовать формату dest.
В следующей таблице показаны поддерживаемые сочетания.
Форматы dest
Текстура Текстура RT RT Внеэкранный режим
Форматы Src Текстура Да Да Да* Да
Текстура RT Нет Нет Нет Нет
RT Нет Нет Нет Нет
Внеэкранный режим Да Да Да Да
 
  • Если драйвер не поддерживает запрошенную копию, она будет эмулирована с помощью блокировки и копирования.

Если приложению необходимо скопировать данные из целевого объекта D3DPOOL_DEFAULT отрисовки в D3DPOOL_SYSTEMMEM поверхность, оно может использовать GetRenderTargetData.

Требования

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

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

IDirect3DDevice9