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

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

Синтаксис

void ReadFromSubresource(
  [out]          void            *pDstData,
  [in]           UINT            DstRowPitch,
  [in]           UINT            DstDepthPitch,
  [in]           ID3D11Resource  *pSrcResource,
  [in]           UINT            SrcSubresource,
  [in, optional] const D3D11_BOX *pSrcBox
);

Параметры

[out] pDstData

Тип: void*

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

[in] DstRowPitch

Тип: UINT

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

[in] DstDepthPitch

Тип: UINT

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

[in] pSrcResource

Тип: ID3D11Resource*

Указатель на исходный ресурс (см. ID3D11Resource).

[in] SrcSubresource

Тип: UINT

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

[in, optional] pSrcBox

Тип: const D3D11_BOX*

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

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

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

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