Compartir a través de


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

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

Sintaxis

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

Parámetros

[in] pDstResource

Tipo: ID3D11Resource*

Puntero al recurso de destino ( id3D11Resource).

[in] DstSubresource

Tipo: UINT

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

[in, optional] pDstBox

Tipo: const D3D11_BOX*

Puntero a un cuadro que define la parte del subrecurso de destino en el que se van a copiar los datos del recurso. Si es NULL, los datos se escriben en el subrecurso de destino sin desplazamiento. Las dimensiones del origen 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.

[in] pSrcData

Tipo: const void*

Puntero a los datos de origen en memoria.

[in] SrcRowPitch

Tipo: UINT

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

[in] SrcDepthPitch

Tipo: UINT

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

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 escribir en niveles de mapa mip secundarios, 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