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>
. MasBuffer<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 .