Pomocné rutiny HLSL
Aby autoři mohli psát odkazovatelné pixelové shadery, d2d1effecthelpers.hlsli definuje sadu jazykových rozšíření HLSL ve formě pomocných metod a maker.
Pokud chcete do projektu přidat d2d1effecthelpers.hlsli, přidejte do souboru HLSL příkaz #include. d2d1effecthelpers.hlsli se nachází ve stejném umístění jako ostatní hlavičky Direct2D, jako je d2d1.h; Lze na něj odkazovat ze stránky vlastností souboru HLSL přidáním makra $(WindowsSDK_IncludePath) do vlastnosti Další adresáře include. Všimněte si, že příkaz #include musí pocházet po definici všech direktiv preprocesoru, které jsou takové D2D_INPUT_COUNT.
#include <d2d1effecthelpers.hlsli>
Direct2D nepodporuje propojení výpočetních nebo vrcholových shaderů. Pokud ale váš efekt používá vrcholový shader i shader pixelů, může být výstup shaderu pixelů stále propojený.
Direktivy preprocesoru
Direktivy preprocesoru jsou vyžadovány ke sdělení informací o efektu. To zahrnuje počet vstupů a typ vzorkování každého vstupu. Následující hodnoty by měly být definovány v kódu shaderu efektu nad příslušným vstupním bodem shaderu, pokud je to možné.
-
D2D_INPUT_COUNT <N>
: Deklaruje počet vstupů textury k efektu. Pokud má efekt proměnlivý počet vstupů, musí být tato hodnota odpovídajícím způsobem vymezena na každý vstupní bod shaderu. Definování této hodnoty je povinné. -
D2D_INPUT<N>_SIMPLE
: Deklaruje Nth vstup pro použití jednoduchého vzorkování. Pokud není definovaný, výchozí hodnota Nth vstupu je složitá. Definování této hodnoty je volitelné. -
D2D_INPUT<N>_COMPLEX
: Deklaruje Nth vstup pro použití komplexního vzorkování. Pokud není definovaný, výchozí hodnota Nth vstupu je složitá. Definování této hodnoty je volitelné. -
D2D_REQUIRES_SCENE_POSITION
: Označuje, že funkce shaderu volá pomocné metody, které používají hodnotu pozice scény (konkrétně D2DGetScenePosition pomocné funkce). Tento parametr by měl být zahrnut pouze v případě potřeby, protože tento parametr může využívat pouze jedna funkce na propojený shader. Definování této hodnoty je volitelné. -
D2D_CUSTOM_ENTRY
: Označuje, že funkce shaderu pixelů využívá výstup vlastního shaderu vrcholů, a proto deklaruje své vstupní parametry. Všechny vlastní vstupy shaderu vrcholů používají komplexní vzorkování a nemůžou využívat výstup jiné funkce shaderu (tj. jsou pouze po propojení). Definování této hodnoty je volitelné.
Například:
#define D2D_INPUT_COUNT 3
#define D2D_INPUT0_SIMPLE
#define D2D_INPUT1_SIMPLE
#define D2D_INPUT2_COMPLEX
#include <d2d1effecthelpers.hlsli>
Pomocné funkce
Pomocné funkce se používají jako náhrada některých nativních vnitřních funkcí HLSL. V době kompilace jsou tyto pomocné funkce předdefinovány rozhraním Direct2D do příslušné verze v závislosti na cílovém typu kompilace (full shader nebo funkce exportu).
Pomocné funkce:
D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY
Související témata