estrutura D3D10_MAPPED_TEXTURE2D (d3d10.h)
Fornece acesso a dados de sub-recurso em uma textura 2D.
Sintaxe
typedef struct D3D10_MAPPED_TEXTURE2D {
void *pData;
UINT RowPitch;
} D3D10_MAPPED_TEXTURE2D;
Membros
pData
Tipo: void*
Ponteiro para os dados.
RowPitch
Tipo: UINT
A inclinação, a largura ou o tamanho físico (em bytes), de uma linha de uma textura descompactada. Uma textura compactada por bloco é codificada em blocos 4x4 (consulte tamanho virtual versus tamanho físico) ; portanto, RowPitch é o número de bytes em um bloco de texels 4x4.
Comentários
Essa estrutura é usada em uma chamada para Map.
Para ilustrar a inclinação da linha, suponha uma textura 2D descompactada com níveis de mipmap, conforme mostrado na ilustração a seguir.
Visualize a textura de nível superior desenhada em um único plano, como a ilustração a seguir.
No entanto, o layout real de cada elemento na memória se parece mais com a ilustração a seguir.
Para este exemplo, o tom de linha abrange 5 elementos (uma linha), cujo tamanho seria cinco vezes o número de bytes por elemento.
Use a inclinação de linha para avançar um ponteiro entre linhas dentro de um único plano de textura 2D.
Exemplo
Para acessar dados no terceiro nível de mipmap, você deve converter o ponteiro pData conforme demonstrado no exemplo a seguir para uma textura de ponto flutuante.
D3D10_MAPPED_TEXTURE2D mappedTexture;
if( SUCCEEDED( pTexture->Map( D3D10CalcSubresource(2, 0, 3), D3D10_MAP_WRITE_DISCARD, 0, &mappedTexture )))
{
D3D10_TEXTURE2D_DESC desc;
pTexture->GetDesc( &desc );
// Compute the width and height of the third mipmap level
const UINT WIDTH = desc.Width >> 2;
const UINT HEIGHT = desc.Height >> 2;
FLOAT* pTexels = (FLOAT*)mappedTexture.pData;
for( UINT row = 0; row < HEIGHT; row++ )
{
UINT rowStart = row * mappedTexture.RowPitch/4;
for( UINT col = 0; col < WIDTH; col++ )
{
pTexels[rowStart + col*4 + 0]; // Red
pTexels[rowStart + col*4 + 1]; // Green
pTexels[rowStart + col*4 + 2]; // Blue
pTexels[rowStart + col*4 + 3]; // Alpha
}
}
pTexture->Unmap(D3D10CalcSubresource(2, 0, 3));
}
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | d3d10.h |