D2D _ PS _ ENTRY-Funktion
Ein Makro, das einen Pixel-Shadereinstiegspunkt mit dem angegebenen Funktionsnamen definiert.
Syntax
void WINAPI D2D_PS_ENTRY(
in string Entryname
);
Parameter
-
Eintragsname [ In]
-
Der Name des Einstiegspunkts des Pixelshader.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Bemerkungen
Verwenden Sie dieses Makro, anstatt die Eingabesignatur des Einstiegspunkts auf normale Weise anzugeben: Alle Parameter sind implizit und werden von Direct2D während der Kompilierung abhängig vom Zieltyp der Kompilierung (vollständiger Shader oder Exportfunktion) hinzugefügt.
#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;
}
Beachten Sie in diesem kurzen Beispiel, dass keine Funktionsparameter deklariert werden, dass die Anzahl der Eingaben und der Typ jeder Eingabe vor der Eingabefunktion deklariert wird, die Eingabe durch Aufrufen von D2DGetInputabgerufen wird und dass Präprozessordirektiven definiert werden müssen, bevor die Hilfsdatei eingeschlossen wird.
Ein verknüpfungskompatibler Shader muss sowohl einen regulären Single-Pass-Pixelshader als auch eine Export-Shaderfunktion bereitstellen. Das D2D _ PS _ ENTRY-Makro ermöglicht, dass jedes dieser Makros aus dem gleichen Code generiert wird, wenn es in Verbindung mit dem Shaderkompilierungsskript verwendet wird.
Beim Kompilieren eines vollständigen Shaders werden die Makros in den folgenden Code erweitert, der über eine D2D Effects-kompatible Eingabesignatur verfügt.
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;
}
Beim Kompilieren einer Exportfunktionsversion desselben Codes wird der folgende Code generiert:
// Shader function version
export float4 LinkingCompatiblePixelShader_Function(
float4 input0 : INPUT0
)
{
input.rgb *= input.a;
return input;
}
Beachten Sie, dass die Textureingabe, die normalerweise durch Sampling einer Texture2D abgerufen wird, durch eine Funktionseingabeeingabe0 ersetzt wurde.
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Header |
|
| DLL |
|