> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XG_MIPLEVEL_LAYOUT (consoles XBOX Series)

> XG_MIPLEVEL_LAYOUT (consoles XBOX Series) — Descreve um único nível de mip no layout de hardware de uma textura. Elementos gráficos do Direct3D 12 (consulte xg_miplevel_layout_xs)

Descreve um único nível de mip no layout de hardware de uma textura. Observe que alguns desses membros se referem a atributos somente do mip dentro da primeira fatia em uma textura de matriz com níveis de mip.

## Sintaxe

```cpp theme={null}
typedef struct XG_MIPLEVEL_LAYOUT {  
    UINT64 SizeBytes;  
    UINT64 OffsetBytes;  
    UINT64 Slice2DSizeBytes;  
    UINT32 PitchPixels;  
    UINT32 PitchBytes;  
    UINT32 AlignmentBytes;  
    UINT32 PaddedWidthElements;  
    UINT32 PaddedHeightElements;  
    UINT32 PaddedDepthOrArraySize;  
    UINT32 WidthElements;  
    UINT32 HeightElements;  
    UINT32 WidthPixels;  
    UINT32 HeightPixels;  
    UINT32 DepthOrArraySize;  
    UINT32 SampleCount;  
    XG_SWIZZLE_MODE SwizzleMode;  
    UINT64 BankRotationAddressBitMask;  
    UINT64 BankRotationBytesPerSlice;  
    UINT32 SliceDepthElements;  
    UINT32 IsMipTail;  
    UINT32 MipTailOffsetElementsX : 11;
    UINT32 MipTailOffsetElementsY : 11;
    UINT32 MipTailOffsetElementsZ : 10;    
} XG_MIPLEVEL_LAYOUT  
```

### Membros

*SizeBytes*\
Tipo: UINT64

O tamanho em bytes desse nível de mip. SizeBytes refletirá o tamanho desse nível de mip em apenas uma fatia em uma textura de matriz com várias fatias. Para texturas de volume, SizeBytes refletirá o tamanho cumulativo de todas as "fatias de profundidade" desse nível de mip, mas elas podem não ser contíguas na memória.

*OffsetBytes*\
Tipo: UINT64

OffsetBytes refletirá o deslocamento desse nível de mip na primeira fatia de matriz. Para calcular o deslocamento para esse nível de mip nas fatias 1-n, adicione OffsetBytes ao SliceSizeBytes do layout do plano multiplicado pelo índice da fatia.

*Slice2DSizeBytes*\
Tipo: UINT64

Slice2DSizeBytes será equivalente a SizeBytes para texturas 2D (de matriz) e será o tamanho de uma fatia de profundidade para texturas 3D.

*PitchPixels*\
Tipo: UINT32

O pitch desse nível de mip em pixels.

*PitchBytes*\
Tipo: UINT32

O pitch desse nível de mip em bytes.

*AlignmentBytes*\
Tipo: UINT32

O alinhamento desse nível de mip em bytes. Ele é igual ao tamanho de bloco do modo de swizzle para níveis de mip padrão e será de 256 bytes para níveis de mip da cauda de mip compactada.

*PaddedWidthElements*\
Tipo: UINT32

A largura preenchida do nível de mip, em elementos. Observe que, para alguns formatos, um elemento pode ter mais de um pixel de largura e/ou altura.

*PaddedHeightElements*\
Tipo: UINT32

A altura preenchida do nível de mip, em elementos.

*PaddedDepthOrArraySize*\
Tipo: UINT32

A profundidade ou o tamanho de matriz preenchido do nível de mip.

*WidthElements*\
Tipo: UINT32

A largura do nível de mip, em elementos.

*HeightElements*\
Tipo: UINT32

A altura do nível de mip, em elementos.

*WidthPixels*\
Tipo: UINT32

A largura do nível de mip, em pixels.

*HeightPixels*\
Tipo: UINT32

A altura do nível de mip, em pixels.

*DepthOrArraySize*\
Tipo: UINT32

A profundidade ou o tamanho de matriz do nível de mip.

*SampleCount*\
Tipo: UINT32

O número de amostras.

*SwizzleMode*\
Tipo: [XG\_SWIZZLE\_MODE](/pt-BR/reference/graphics/xg_xs/enums/xg_swizzle_mode)

O modo de swizzle do nível de mip.

*BankRotationAddressBitMask*\
Tipo: UINT64

A máscara de bits correspondente a onde a rotação de banco pode ser aplicada ao endereço base da textura. Se não houver suporte para a rotação de banco, esse valor será 0.

*BankRotationBytesPerSlice*\
Tipo: UINT64

O número de bytes de rotação de banco aplicados ao endereço base de cada fatia, quando um recurso de textura de matriz com rotação de banco é associado como um destino de renderização.

*SliceDepthElements*\
Tipo: UINT32

Para texturas de volume, a profundidade de uma fatia de volume em elementos. Os níveis de mip de textura de volume podem consistir em mais de uma fatia de volume.

*IsMipTail*\
Tipo: UINT32

Zero se esse nível de mip não fizer parte da cauda de mip compactada.  Um se esse nível de mip fizer parte da cauda de mip compactada.

*MipTailOffsetElementsX*\
Tipo: UINT32

Se esse nível de mip for uma cauda de mip, descreve o deslocamento x do local da imagem de mip dentro do bloco da cauda de mip.

*MipTailOffsetElementsY*\
Tipo: UINT32

Se esse nível de mip for uma cauda de mip, descreve o deslocamento y do local da imagem de mip dentro do bloco da cauda de mip.

*MipTailOffsetElementsZ*\
Tipo: UINT32

Se esse nível de mip for uma cauda de mip, descreve o deslocamento z do local da imagem de mip dentro do bloco da cauda de mip.

## Comentários

### Níveis de mip de textura de volume

Observe que, para texturas de volume, cada nível de mip pode não ser contíguo na memória.

Para determinar os intervalos de memória ocupados por um nível de mip de volume, use as seguintes fórmulas indexadas por DepthSliceIndex. O número de fatias de profundidade de um nível de mip é MipLayout.DepthOrArraySize dividido por MipLayout.SliceDepthElements.

Deslocamento inicial da fatia de profundidade: PlaneLayout.SliceSizeBytes \* DepthSliceIndex + MipLayout.OffsetBytes

Deslocamento final da fatia de profundidade: StartOffset + MipLayout.Slice2DSizeBytes \* MipLayout.SliceDepthElements

Os cálculos acima se aplicam a todos os mips que não são de cauda. Como os mips de cauda são compactados em um único bloco, seus intervalos são intercalados e não podem ser endereçados individualmente. Se você aplicar os cálculos aos mips de cauda, obterá os mesmos deslocamentos iniciais e finais para todos esses níveis.

## Requisitos

**Cabeçalho:** xg\_xs.h\
**Plataformas com suporte**: consoles XBOX Series

## Confira também

[Layouts de textura e organização lado a lado para XBOX Series X|S](https://learn.microsoft.com/en-us/gaming/gdk/_content/gc/graphics/scarlett-tex-layouts)

[xg\_xs](/pt-BR/reference/graphics/xg_xs/xg_xs_members)


## Related topics

- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_ELEMENTS_LAYOUT (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/enums/d3d12_elements_layout_public.md)
- [Índice de tópicos sob NDA para desenvolvimento de console com o XBOX GDK](/pt-BR/nda/nda-overview.md)
- [D3D12_TEXTURE_BARRIER (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/structs/d3d12_texture_barrier_public.md)
- [CreateCommittedResource3 (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createcommittedresource3_public.md)
