Tipo de buffer

Use a sintaxe a seguir para declarar uma variável de buffer.

Nomedo tipo> de buffer<;

Parâmetros

Buffer

Palavra-chave obrigatório.

Tipo

Um dos tipos escalar, vetor e alguns tipos de HLSL de matriz . Você pode declarar uma variável de buffer com uma matriz, desde que ela se ajuste em quantidades de 4 32 bits. Portanto, você pode escrever Buffer<float2x2>. Mas Buffer<float4x4> é muito grande e o compilador gerará um erro.

Nome

Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da variável.

Exemplo

Aqui está um exemplo de uma declaração de buffer.

Buffer<float4> g_Buffer;

Os dados são lidos de um buffer usando uma versão sobrecarregada da função intrínseca Load HLSL que usa um parâmetro de entrada (um índice inteiro). Um buffer é acessado como uma matriz de elementos; portanto, este exemplo lê o segundo elemento.

float4 bufferData = g_Buffer.Load( 1 );

Use o estágio de saída de fluxo para gerar dados para um buffer.

Comentários

Uma SRV (exibição de recurso de sombreador de buffer) tipada compatível é necessária para carregar corretamente do buffer. Opcionalmente, a carga pode executar uma conversão de tipo, por exemplo, um buffer de RGBA8_UNORM pode ser carregado em uma float4 variável. Para structs de contatação de buffer, use um StructuredBuffer .

Confira também

Tipos de dados (DirectX HLSL)