Compartilhar via


Objeto Stream-Output

Um objeto de saída de fluxo é um objeto de modelo que transmite dados para fora do estágio de sombreador de geometria. Use a sintaxe a seguir para declarar um objeto de saída de fluxo.

Inout StreamOutputObject<DataType>Name;

 

Parâmetros

StreamOutputObject<Datatype>Nome

A declaração so (objeto de saída de fluxo).

Tipos de objeto Stream-Output Descrição
PointStream Uma sequência de primitivos de ponto
LineStream Uma sequência de primitivos de linha
TriangleStream Uma sequência de primitivos de triângulo

 

DataType – Tipo de dados de saída; pode ser qualquer tipo de dados HLSL. Deve estar entre colchetes angulares.

Nome – Nome da variável; uma cadeia de caracteres ASCII que identifica exclusivamente o objeto.

Exemplo

Este é um exemplo de uma declaração de objeto de saída de fluxo que transmite primitivos de triângulo cujos dados são definidos pela estrutura PS_CUBEMAP_IN. O sombreador de geometria é limitado à geração de 18 vértices.

struct PS_CUBEMAP_IN
{
    float4 Pos : SV_POSITION;     // Projection coord
    float2 Tex : TEXCOORD0;       // Texture coord
    uint RTIndex : SV_RenderTargetArrayIndex;
};

[maxvertexcount(18)]
void main( inout TriangleStream<PS_CUBEMAP_IN> CubeMapStream, triangle PS_CUBEMAP_INT[3] )
{
    ...
}

Este é um snippet de código do exemplo CubeMapGS.

Métodos de objeto Stream-Output

Use a sintaxe a seguir para chamar métodos stream-output-object.

Object.Method

Os métodos a seguir são implementados.

Métodos Descrição
Append Acrescente dados de saída a um fluxo existente.
RestartStrip Termine a faixa primitiva atual e inicie uma nova faixa primitiva.

 

Modelo de sombreador mínimo

Esse objeto tem suporte nos seguintes modelos de sombreador.

Modelo de Sombreador Com suporte
Modelo de sombreador 4 e modelos de sombreador superior sim

 

Modelo de sombreador 4