Megosztás a következőn keresztül:


HLSL-segítők

A d2d1effecthelpers.hlsli a hlSL nyelvi bővítmények egy készletét határozza meg segítő módszerek és makrók formájában, hogy segítse a szerzőket a összekapcsolható képpontárnyékolók írásában.

Ha d2d1effecthelpers.hlsli fájlt szeretne hozzáadni a projekthez, adjon hozzá egy #include utasítást a HLSL-fájlba. A d2d1effecthelpers.hlsli ugyanazon a helyen található, mint más Direct2D-fejlécek, például d2d1.h; a HLSL-fájl tulajdonságlapjáról hivatkozhat rá, ha hozzáadja a $(WindowsSDK_IncludePath) makrót a További belefoglalási könyvtárak tulajdonsághoz. Vegye figyelembe, hogy a #include utasításnak az ilyen D2D_INPUT_COUNT definiált előfeldolgozási irányelvek meghatározása után kell érkeznie.

#include <d2d1effecthelpers.hlsli>

A Direct2D nem támogatja a számítási vagy csúcspont-árnyékolók összekapcsolását. Ha azonban az effektus csúcs- és képpontárnyékolót is használ, a képpontárnyékoló kimenete továbbra is csatolható.

Előfeldolgozási irányelvek

Az előfeldolgozási irányelvek szükségesek az effektussal kapcsolatos információk közléséhez. Ez magában foglalja a bemenetek számát és az egyes bemenetek mintavételezési típusát. A következő értékeket a megfelelő árnyékoló belépési pontja fölötti hatásárnyékoló-kódban kell meghatározni, ha van ilyen.

  • D2D_INPUT_COUNT <N>: Deklarálja az effektushoz tartozó textúrabemenetek számát. Ha az effektus változó számú bemenettel rendelkezik, ezt az értéket megfelelően kell hatókörbe venni az egyes árnyékoló belépési pontokra. Az érték megadása kötelező.
  • D2D_INPUT<N>_SIMPLE: Az N-edik bemenetet deklarálja egyszerű mintavételezéshez. Ha nincs definiálva, az N-edik bemenet alapértelmezés szerint összetett lesz. Az érték megadása nem kötelező.
  • D2D_INPUT<N>_COMPLEX: Az N-edik bemenetet deklarálja összetett mintavételezés használatára. Ha nincs definiálva, az N-edik bemenet alapértelmezés szerint összetett lesz. Az érték megadása nem kötelező.
  • D2D_REQUIRES_SCENE_POSITION: Azt jelzi, hogy az árnyékoló függvény a jelenetpozíció értékét használó segédmetória-metódusokat hív meg (nevezetesen a D2DGetScenePosition segédfüggvényt). Ezt a paramétert csak akkor kell megadni, ha szükséges, mivel a társított árnyékolónként csak egy függvény tudja használni ezt a paramétert. Az érték megadása nem kötelező.
  • D2D_CUSTOM_ENTRY: Azt jelzi, hogy a képpontárnyékoló függvény egy egyéni csúcsárnyékoló kimenetét használja fel, és így deklarálja a bemeneti paramétereket. Minden egyéni csúcspont-árnyékoló bemenet összetett mintavételezést használ, és nem tudja felhasználni egy másik árnyékolófüggvény kimenetét (azaz csak a csatolás után használhatók). Az érték megadása nem kötelező.

Például:

#define D2D_INPUT_COUNT 3
#define D2D_INPUT0_SIMPLE
#define D2D_INPUT1_SIMPLE
#define D2D_INPUT2_COMPLEX
#include <d2d1effecthelpers.hlsli>
          

Segédfüggvények

A segédfüggvények néhány natív HLSL belső függvény helyettesítésére szolgálnak. Fordításkor ezeket a segédfüggvényeket a Direct2D újradefiniálta a fordítási cél típusától (teljes árnyékoló vagy exportálási függvény) függően a megfelelő verzióra.

A segédfüggvények:

D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY

Effektusszűrő összekapcsolása