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


Метод ID3D11DeviceContext1::UpdateSubresource1 (d3d11_1.h)

ЦП копирует данные из памяти в подресурс, созданный в памяти без сопоставления.

Синтаксис

void UpdateSubresource1(
  [in]           ID3D11Resource  *pDstResource,
  [in]           UINT            DstSubresource,
  [in, optional] const D3D11_BOX *pDstBox,
  [in]           const void      *pSrcData,
  [in]           UINT            SrcRowPitch,
  [in]           UINT            SrcDepthPitch,
  [in]           UINT            CopyFlags
);

Параметры

[in] pDstResource

Тип: ID3D11Resource*

Указатель на целевой ресурс.

[in] DstSubresource

Тип: UINT

Отсчитываемый от нуля индекс, идентифицирующий целевой подресурс. Дополнительные сведения см. в разделе D3D11CalcSubresource .

[in, optional] pDstBox

Тип: const D3D11_BOX*

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

Пустое поле приводит к тому, что операция будет недоступна. Поле пусто, если верхнее значение больше или равно нижнему значению, левое значение больше или равно значению справа либо переднее значение больше или равно обратному значению. Если поле пусто, UpdateSubresource1 не выполняет операцию обновления.

[in] pSrcData

Тип: const void*

Указатель на исходные данные в памяти.

[in] SrcRowPitch

Тип: UINT

Размер одной строки исходных данных.

[in] SrcDepthPitch

Тип: UINT

Размер одного среза глубины исходных данных.

[in] CopyFlags

Тип: UINT

D3D11_COPY_FLAGS типизированное значение, указывающее способ выполнения операции обновления. Если вы укажете ноль для параметра обновления, UpdateSubresource1 будет работать так же, как ID3D11DeviceContext::UpdateSubresource. Для существующих драйверов отображения, которые не могут обрабатывать эти флаги, среда выполнения не использует их.

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

None

Remarks

Если вы вызываете UpdateSubresource1 для обновления буфера констант, передаете любой регион, а драйвер не был реализован в Windows 8, среда выполнения удаляет вызов (за исключением уровней компонентов 9.1, 9.2 и 9.3, где среда выполнения эмулирует поддержку). Среда выполнения также удаляет вызов при обновлении буфера констант с частичной областью, экстент которой не выравнивается с 16-байтовой степенью детализации (16 байт является полной константой). Когда среда выполнения отбрасвает вызов, среда выполнения не вызывает соответствующий интерфейс драйвера устройства (DDI).

При записи вызова UpdateSubresource со смещением pDstBox в списке команд программного обеспечения смещение в pDstBox неправильно применяется к pSrcData при воспроизведении списка команд. Эта проблема устранена в new-for-Windows 8 UpdateSubresource1. При вызове UpdateSubresource1pDstBox не влияет на pSrcData.

Сведения о различных типах ресурсов и о том, как UpdateSubresource1 может работать с каждым типом ресурсов, см. в статье Общие сведения о ресурсе в Direct3D 11.

Примечание. Применяется только к уровню компонентов 9_x оборудования . При использовании UpdateSubresource1 или ID3D11DeviceContext1::CopySubresourceRegion1 для копирования из промежуточного ресурса в ресурс по умолчанию содержимое назначения можно повредить. Это происходит, если вы передаете поле источника NULL и исходный ресурс имеет измерения, отличные от измерений целевого ресурса, или если используются целевые смещения (x, y и z). В этом случае всегда передайте поле источника, представляющее собой полный размер исходного ресурса.
 

Требования

Требование Значение
Минимальная версия клиента Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d3d11_1.h
Библиотека D3D11.lib

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

ID3D11DeviceContext1