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 のサンプリングによって取得され、関数入力 input0 に置き換えられていることに注意してください。
要件
要件 | 値 |
---|---|
ヘッダー |
|
[DLL] |
|