Effect-Funktionssyntax (Direct3D 11)

Eine Effect-Funktion ist in HLSL geschrieben und wird mit der in diesem Abschnitt beschriebenen Syntax deklariert.

Syntax

ReturnType FunctionName ( [ ArgumentList ] )

{

\[ *Anweisungen* \]

};

Name Beschreibung
ReturnType Beliebiger HLSL-Typ
FunctionName Eine ASCII-Zeichenfolge, die den Namen der Shaderfunktion eindeutig identifiziert.
Argumentlist Mindestens ein Argument, getrennt durch Kommas (siehe Funktionsargumente (DirectX HLSL)).
Anweisungen Mindestens eine Anweisung (siehe Anweisungen (DirectX HLSL)), die den Text der Funktion enthalten. Wenn eine Funktion ohne Text definiert ist, wird sie als Prototyp betrachtet. und müssen vor der Verwendung mit einem Text neu definiert werden.

Eine Effektfunktion kann ein Shader oder einfach eine Funktion sein, die von einem Shader aufgerufen wird. Eine Funktion wird durch ihren Namen, die Typen ihrer Parameter und die Zielplattform eindeutig identifiziert. Daher können Funktionen überladen werden. Jede gültige HLSL-Funktion sollte in dieses Format passen. Eine ausführlichere Liste der Syntax für HLSL-Funktionen finden Sie unter Functions (DirectX HLSL).

Beispiel

Im Folgenden finden Sie ein Beispiel für eine Pixels shader-Funktion.

       
PS_OUTPUT RenderScenePS( VS_OUTPUT In,
                         uniform bool bTexture ) 
{ 
    PS_OUTPUT Output;

    // Lookup mesh texture and modulate it with diffuse
    if( bTexture )
        Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) *  
                              In.Diffuse;
    else
        Output.RGBColor = In.Diffuse;

    return Output;
}

Effect-Format