Share via


D2D_PS_ENTRY función

Macro que define un punto de entrada del sombreador de píxeles con el nombre de función especificado.

Sintaxis

void WINAPI D2D_PS_ENTRY(
  in string Entryname
);

Parámetros

Entryname [in]

Nombre del punto de entrada del sombreador de píxeles.

Valor devuelto

Esta función no devuelve ningún valor.

Observaciones

Use esta macro en lugar de especificar la firma de entrada del punto de entrada de la manera normal: Direct2D agrega todos los parámetros y los agrega durante la compilación en función del tipo de destino de compilación (sombreador completo o función de exportación).

#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; 
} 

En este breve ejemplo, tenga en cuenta que no se declara ningún parámetro de función, que el número de entradas y el tipo de cada entrada se declara antes de la función de entrada, la entrada se recupera llamando a D2DGetInput y que las directivas de preprocesador deben definirse antes de que se incluya el archivo auxiliar.

Un sombreador compatible con la vinculación debe proporcionar un sombreador de píxeles de paso único normal y una función de sombreador de exportación. La macro D2D_PS_ENTRY permite que cada uno de estos se genere a partir del mismo código, cuando se usa junto con el script de compilación del sombreador.

Al compilar un sombreador completo, las macros se expanden en el código siguiente, que tiene una firma de entrada compatible con efectos 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; 
} 

Al compilar una versión de función de exportación del mismo código, se genera el código siguiente:

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

    return input; 
} 

Tenga en cuenta que la entrada de textura, que normalmente se recupera mediante el muestreo de una Texture2D, se ha reemplazado por una entrada de entrada de función0.

Requisitos

Requisito Value
Encabezado
D2d1effecthelpers.hlsli
Archivo DLL
D2d1.dll

Consulte también

Vinculación del sombreador de efectos

Asistentes de HLSL