Freigeben über


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

Weitere Informationen

Effektshader-Verknüpfung

HLSL-Hilfser