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