funzione D2D_PS_ENTRY
Macro che definisce un punto di ingresso pixel shader con il nome della funzione specificato.
Sintassi
void WINAPI D2D_PS_ENTRY(
in string Entryname
);
Parametri
-
Nome voce [in]
-
Nome del punto di ingresso del pixel shader.
Valore restituito
Questa funzione non restituisce un valore.
Commenti
Usare questa macro anziché specificare la firma di input del punto di ingresso nel modo normale: tutti i parametri sono impliciti e aggiunti da Direct2D durante la compilazione a seconda del tipo di destinazione di compilazione (funzione full shader o export).
#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;
}
In questo breve esempio si noti che non vengono dichiarati parametri di funzione, che il numero di input e il tipo di ogni input viene dichiarato prima della funzione di immissione, l'input viene recuperato chiamando D2DGetInput e che le direttive del preprocessore devono essere definite prima che venga incluso il file helper.
Uno shader compatibile con il collegamento deve fornire sia un normale shader pixel pass singolo che una funzione di esportazione shader. La macro D2D_PS_ENTRY consente di generare ognuno di questi elementi dallo stesso codice, quando usato in combinazione con lo script di compilazione shader.
Quando si compila un shader completo, le macro vengono espanse nel codice seguente, con una firma di input compatibile con gli effetti 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;
}
Quando si compila una versione della funzione di esportazione dello stesso codice, viene generato il codice seguente:
// Shader function version
export float4 LinkingCompatiblePixelShader_Function(
float4 input0 : INPUT0
)
{
input.rgb *= input.a;
return input;
}
Si noti che l'input della trama, in genere recuperato tramite il campionamento di texture2D, è stato sostituito con un input di input di input della funzione0.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
DLL |
|