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

Entryname [in]

Nome del punto di ingresso del pixel shader.

Valore restituito

Questa funzione non restituisce un valore.

Commenti

Utilizzare 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 vengono dichiarati 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 pixel shader a passaggio singolo che una funzione di esportazione shader. La macro D2D_PS_ENTRY consente di generare ognuno di questi elementi dallo stesso codice, se usato insieme allo script di compilazione dello shader.

Quando si compila uno shader completo, le macro vengono espanse nel codice seguente, con una firma di input compatibile con D2D Effects.

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, normalmente recuperato tramite il campionamento di texture2D, è stato sostituito con un input di input della funzione0.

Requisiti

Requisito Valore
Intestazione
D2d1effecthelpers.hlsli
DLL
D2d1.dll

Vedi anche

Collegamento degli shader degli effetti

Helper HLSL