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