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

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

Sintaxe

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*

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

[in] DstRowPitch

Tipo: UINT

O tamanho de uma linha dos dados de destino.

[in] DstDepthPitch

Tipo: UINT

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

[in] pSrcResource

Tipo: ID3D11Resource*

Um ponteiro para o recurso de origem (consulte ID3D11Resource).

[in] SrcSubresource

Tipo: UINT

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

[in, optional] pSrcBox

Tipo: const D3D11_BOX*

Um ponteiro para uma caixa que define a parte do sub-recurso de destino do qual copiar os dados do recurso. Se FOR NULL, os dados serão lidos do sub-recurso de destino sem deslocamento. As dimensões do destino 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.

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 ler de 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