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
D2d1effecthelpers.hlsli
DLL
D2d1.dll

Weitere Informationen

Effektshader-Verknüpfung

HLSL-Hilfatoren