função D2D_PS_ENTRY

Uma macro que define um ponto de entrada de sombreador de pixel com o nome da função fornecido.

Sintaxe

void WINAPI D2D_PS_ENTRY(
  in string Entryname
);

Parâmetros

Nome da entrada [in]

O nome do ponto de entrada do sombreador de pixel.

Retornar valor

Essa função não retorna um valor.

Comentários

Use essa macro em vez de especificar a assinatura de entrada do ponto de entrada da maneira normal: todos os parâmetros são implícitos e adicionados por Direct2D durante a compilação, dependendo do tipo de destino de compilação (sombreador completo ou função de exportação).

#define D2D_INPUT_COUNT 1 
#define D2D_INPUT0_SIMPLE 
#include  d2d1effectauthor.hlsli  

D2D_PS_ENTRY(LinkingCompatiblePixelShader) 
{ 
    float4 input = D2DGetInput(0);  

    input.rgb *= input.a; 

    return input; 
} 

Neste breve exemplo, observe que nenhum parâmetro de função é declarado, que o número de entradas e o tipo de cada entrada é declarado antes da função de entrada, a entrada é recuperada chamando D2DGetInput e que as diretivas de pré-processador devem ser definidas antes que o arquivo auxiliar seja incluído.

Um sombreador compatível com vinculação deve fornecer um sombreador de pixel de passagem única regular e uma função de sombreador de exportação. A macro D2D_PS_ENTRY permite que cada uma delas seja gerada a partir do mesmo código, quando usada em conjunto com o script de compilação do sombreador.

Ao compilar um sombreador completo, as macros são expandidas para o código a seguir, que tem uma assinatura de entrada compatível com efeitos D2D.

Texture2D<float4> InputTexture0; 
SamplerState InputSampler0; 

float4 LinkingCompatiblePixelShader(
    float4 pos   : SV_POSITION,   
    float4 posScene : SCENE_POSITION,    
    float4 uv0  : TEXCOORD0 
    ) : SV_Target 
{ 
    float4 input = InputTexture0.Sample(InputSampler0, uv0.xy);  

    input.rgb *= input.a; 

    return input; 
} 

Ao compilar uma versão de função de exportação do mesmo código, o seguinte código é gerado:

// Shader function version 
export float4 LinkingCompatiblePixelShader_Function( 
    float4 input0 : INPUT0 
    ) 
{ 
    input.rgb *= input.a; 

    return input; 
} 

Observe que a entrada de textura, normalmente recuperada por amostragem de um Texture2D, foi substituída por uma entrada de entrada de função0.

Requisitos

Requisito Valor
parâmetro
D2d1effecthelpers.hlsli
DLL
D2d1.dll

Confira também

Vinculação de Sombreador de Efeito

Auxiliares do HLSL