Compartilhar via


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

Copia dados em uma textura D3D11_USAGE_DEFAULT que foi mapeada usando ID3D11DeviceContext3::Map ao fornecer um parâmetro NULL D3D11_MAPPED_SUBRESOURCE .

Sintaxe

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*

Um ponteiro para o recurso de destino (um ID3D11Resource).

[in] DstSubresource

Tipo: UINT

Um índice baseado em zero, que identifica o sub-recurso de destino. Para obter mais detalhes, consulte D3D11CalcSubresource.

[in, optional] pDstBox

Tipo: const D3D11_BOX*

Um ponteiro para uma caixa que define a parte do sub-recurso de destino para a qual copiar os dados do recurso. Se FOR NULL, os dados serão gravados no sub-recurso de destino sem deslocamento. As dimensões da origem devem se ajustar ao destino (consulte D3D11_BOX).

Uma caixa vazia resulta em uma no-op. Uma caixa estará vazia se o valor superior for maior ou igual ao valor inferior ou se o valor esquerdo for maior ou igual ao valor à direita ou se o valor frontal for maior ou igual ao valor de fundo. Quando a caixa está vazia, esse método não executa nenhuma operação.

[in] pSrcData

Tipo: const void*

Um ponteiro para os dados de origem na memória.

[in] SrcRowPitch

Tipo: UINT

O tamanho de uma linha dos dados de origem.

[in] SrcDepthPitch

Tipo: UINT

O tamanho de uma fatia de profundidade dos dados de origem.

Retornar valor

Nenhum

Comentários

O recurso fornecido deve ser uma textura D3D11_USAGE_DEFAULT que foi mapeada para gravação por uma chamada anterior para ID3D11DeviceContext3::Map ao fornecer um parâmetro NULL D3D11_MAPPED_SUBRESOURCE .

Essa API destina-se a chamar em alta frequência. Os chamadores podem reduzir a memória fazendo chamadas iterativas que atualizam regiões progressivas da textura, enquanto fornecem um pequeno buffer durante cada chamada. No entanto, é mais eficiente especificar regiões grandes o suficiente, pois isso permite que o D3D preencha linhas de cache inteiras na textura antes de retornar.

Para obter eficiência, verifique se os limites e o alinhamento das extensões dentro da caixa são ( 64 / [bytes por pixel] ) pixels horizontalmente. Limites verticais e alinhamento devem ser 2 linhas, exceto quando formatos de 1 byte por pixel são usados, nesse caso, 4 linhas são recomendadas. Fatias de profundidade única por chamada são tratadas com eficiência. É recomendável, mas não necessário, fornecer ponteiros e avanços alinhados a 128 bytes.

Ao gravar em níveis de sub mipmap, é recomendável usar largura e altura maiores do que o descrito acima. Isso ocorre porque pequenos níveis de mipmap podem realmente ser armazenados dentro de um bloco maior de memória, com uma quantidade opaca de deslocamento que pode interferir no alinhamento das linhas de cache.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d11_3.h
Biblioteca D3D11.lib

Confira também

ID3D11Device3