Método ID3D11Device3::ReadFromSubresource (d3d11_3.h)

Copia datos de una textura de D3D11_USAGE_DEFAULT que se asignó mediante ID3D11DeviceContext3::Map al proporcionar un parámetro D3D11_MAPPED_SUBRESOURCE NULL.

Sintaxis

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

Parámetros

[out] pDstData

Tipo: void*

Puntero a los datos de destino en la memoria.

[in] DstRowPitch

Tipo: UINT

Tamaño de una fila de los datos de destino.

[in] DstDepthPitch

Tipo: UINT

Tamaño de un segmento de profundidad de los datos de destino.

[in] pSrcResource

Tipo: ID3D11Resource*

Puntero al recurso de origen (consulte ID3D11Resource).

[in] SrcSubresource

Tipo: UINT

Índice de base cero, que identifica el subrecurso de destino. Para obtener más información, consulte D3D11CalcSubresource.

[in, optional] pSrcBox

Tipo: const D3D11_BOX*

Puntero a un cuadro que define la parte del subrecurso de destino desde el que copiar los datos del recurso. Si es NULL, los datos se leen desde el subrecurso de destino sin desplazamiento. Las dimensiones del destino deben ajustarse al destino (consulte D3D11_BOX).

Un cuadro vacío da como resultado una operación sin operación. Un cuadro está vacío si el valor superior es mayor o igual que el valor inferior, o el valor izquierdo es mayor o igual que el valor derecho, o el valor frontal es mayor o igual que el valor atrás. Cuando el cuadro está vacío, este método no realiza ninguna operación.

Valor devuelto

None

Observaciones

El recurso proporcionado debe ser una textura D3D11_USAGE_DEFAULT que se asignó para escribirla mediante una llamada anterior a ID3D11DeviceContext3::Map al proporcionar un parámetro D3D11_MAPPED_SUBRESOURCE NULL.

Esta API está pensada para llamar a con alta frecuencia. Los autores de llamadas pueden reducir la memoria realizando llamadas iterativas que actualizan regiones progresivas de la textura, al tiempo que proporcionan un pequeño búfer durante cada llamada. Sin embargo, es más eficaz especificar regiones lo suficientemente grandes, ya que esto permite a D3D rellenar líneas de caché completas en la textura antes de devolver.

Para mejorar la eficacia, asegúrese de que los límites y la alineación de las extensiones dentro del cuadro son ( 64 /[Bytes por píxel] ) píxeles horizontalmente. Los límites verticales y la alineación deben ser 2 filas, excepto cuando se usan formatos de 1 byte por píxel, en cuyo caso se recomiendan 4 filas. Los segmentos de profundidad única por llamada se controlan de forma eficaz. Se recomienda, pero no es necesario proporcionar punteros y pasos que estén alineados con 128 bytes.

Al leer los niveles de mapa de sub mip, se recomienda usar un ancho y un alto mayores que los descritos anteriormente. Esto se debe a que los niveles de mapas mip pequeños pueden almacenarse realmente dentro de un bloque de memoria mayor, con una cantidad opaca de desplazamiento que puede interferir con la alineación con las líneas de caché.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d11_3.h
Library D3D11.lib

Consulte también

ID3D11Device3