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 |
|
DLL |
|