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


Метод ID3D11Device3::WriteToSubresource (d3d11_3.h)

Копирует данные в текстуру D3D11_USAGE_DEFAULT , сопоставленную с помощью ID3D11DeviceContext3::Map , предоставляя параметр NULL D3D11_MAPPED_SUBRESOURCE .

Синтаксис

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

Параметры

[in] pDstResource

Тип: ID3D11Resource*

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

[in] DstSubresource

Тип: UINT

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

[in, optional] pDstBox

Тип: const D3D11_BOX*

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

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

[in] pSrcData

Тип: const void*

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

[in] SrcRowPitch

Тип: UINT

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

[in] SrcDepthPitch

Тип: UINT

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

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

None

Remarks

Предоставленный ресурс должен быть текстурой D3D11_USAGE_DEFAULT , которая была сопоставлена для записи при предыдущем вызове ID3D11DeviceContext3::Map при предоставлении параметра NULL D3D11_MAPPED_SUBRESOURCE .

Этот API предназначен для вызовов с высокой частотой. Вызывающие абоненты могут сократить объем памяти, выполняя итеративные вызовы, которые обновляют прогрессивные области текстуры, при этом обеспечивая небольшой буфер во время каждого вызова. Однако наиболее эффективно указывать достаточно большие области, так как это позволяет D3D заполнять целые строки кэша в текстуре перед возвратом.

Для повышения эффективности убедитесь, что границы и выравнивание экстентов в поле равны ( 64 / [байт на пиксель] ) пикселям по горизонтали. Вертикальные границы и выравнивание должны быть 2 строки, за исключением случаев, когда используются форматы 1 байт на пиксель. В этом случае рекомендуется использовать 4 строки. Отдельные срезы глубины для каждого вызова обрабатываются эффективно. Рекомендуется, но необязательно указывать указатели и шаги, которые выровнены по 128 байтам.

При записи на вложенные уровни MIP-карты рекомендуется использовать большую ширину и высоту, чем описано выше. Это связано с тем, что небольшие уровни MIP-карты на самом деле могут храниться в большом блоке памяти с непрозрачным объемом смещения, что может помешать выравниванию строк кэша.

Требования

Требование Значение
Целевая платформа Windows
Header d3d11_3.h
Библиотека D3D11.lib

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

ID3D11Device3