Bagikan melalui


fungsi D2D_PS_ENTRY

Makro yang menentukan titik entri shader piksel dengan nama fungsi yang diberikan.

Sintaks

void WINAPI D2D_PS_ENTRY(
  in string Entryname
);

Parameter

Nama entri [in]

Nama titik entri shader piksel.

Menampilkan nilai

Fungsi ini tidak mengembalikan nilai.

Keterangan

Gunakan makro ini alih-alih menentukan tanda tangan input titik masuk dengan cara normal: semua parameter bersifat implisit dan ditambahkan oleh Direct2D selama kompilasi tergantung pada jenis target kompilasi (shader penuh atau fungsi ekspor).

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

Dalam contoh singkat ini, perhatikan bahwa tidak ada parameter fungsi yang dideklarasikan, bahwa jumlah input dan jenis setiap input dideklarasikan sebelum fungsi entri, input diambil dengan memanggil D2DGetInput, dan arahan praproscesor tersebut harus ditentukan sebelum file pembantu disertakan.

Shader yang kompatibel dengan penautan harus menyediakan shader piksel sekali pakai biasa dan fungsi shader ekspor. Makro D2D_PS_ENTRY memungkinkan masing-masing dibuat dari kode yang sama, ketika digunakan bersama dengan skrip kompilasi shader.

Saat mengkompilasi shader penuh, makro diperluas ke dalam kode berikut, yang memiliki tanda tangan input yang kompatibel dengan Efek 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; 
} 

Saat mengkompilasi versi fungsi ekspor dari kode yang sama, kode berikut dihasilkan:

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

    return input; 
} 

Perhatikan bahwa input tekstur, yang biasanya diambil dengan mengambil sampel Texture2D, telah diganti dengan input fungsi input0.

Persyaratan

Persyaratan Nilai
Header
D2d1effecthelpers.hlsli
DLL
D2d1.dll

Lihat juga

Penautan Shader Efek

Pembantu HLSL