D2D_PS_ENTRY函式

使用指定函式名稱定義圖元著色器進入點的宏。

語法

void WINAPI D2D_PS_ENTRY(
  in string Entryname
);

參數

Entryname [in]

圖元著色器進入點名稱。

傳回值

此函式不會傳回值。

備註

使用此宏,而不是以正常方式指定進入點的輸入簽章:根據編譯目標型別 (完整著色器或匯出函式) ,所有參數都是隱含的,並由 Direct2D 在編譯期間新增。

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

在此簡短範例中,請注意,不會宣告任何函式參數、在輸入函式之前宣告每個輸入的輸入數目和類型、呼叫 D2DGetInput來擷取輸入,而且必須在包含協助程式檔案之前定義預處理器指示詞。

連結相容的著色器必須同時提供一般單一傳遞圖元著色器和匯出著色器函式。 當與著色器編譯腳本搭配使用時,D2D_PS_ENTRY宏允許從相同的程式碼產生這些宏。

編譯完整的著色器時,宏會展開成下列程式碼,其中包含 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; 
} 

編譯相同程式碼的匯出函式版本時,會產生下列程式碼:

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

    return input; 
} 

請注意,通常透過取樣 Texture2D 擷取的紋理輸入已取代為函式輸入輸入0。

規格需求

需求
標頭
D2d1effecthelpers.hlsli
DLL
D2d1.dll

另請參閱

效果著色器連結

HLSL 協助程式