Метод 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 |