D2D_PS_ENTRY Funktion
Ein Makro, das einen Pixel-Shader-Einstiegspunkt mit dem angegebenen Funktionsnamen definiert.
Syntax
void WINAPI D2D_PS_ENTRY(
in string Entryname
);
Parameter
-
Eintragname [in]
-
Der Name des Pixel-Shaders.
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Bemerkungen
Verwenden Sie dieses Makro anstelle der Eingabesignatur des Einstiegspunkts auf normale Weise: Alle Parameter sind implizit und werden von Direct2D während der Kompilierung je nach Kompilierungszieltyp (Voll-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;
}
In diesem kurzen Beispiel beachten Sie, dass keine Funktionsparameter deklariert werden, dass die Anzahl der Eingaben und der Typ jeder Eingabe vor der Eingabefunktion deklariert wird, die Eingabe wird durch Aufrufen von D2DGetInput abgerufen, und diese Präprozessorrichtlinien müssen definiert werden, bevor die Hilfsdatei enthalten ist.
Ein verknüpfungskompatibler Shader muss sowohl einen regulären Pixel-Shader als auch eine Export-Shaderfunktion bereitstellen. Das D2D_PS_ENTRY-Makro ermöglicht es jedem dieser, aus demselben Code generiert zu werden, wenn er 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-Effekte-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;
}
Wenn Sie eine Exportfunktionsversion desselben Codes kompilieren, 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 das Sampling einer Texture2D abgerufen wird, durch eine Funktionseingabeeingabe ersetzt wurde.
Requirements (Anforderungen)
Anforderung | Wert |
---|---|
Header |
|
DLL |
|