HLSL Helpers
Pour aider les auteurs d’effets à écrire des nuanceurs de pixels pouvant être liés, d2d1effecthelpers.hlsli définit un ensemble d’extensions de langage HLSL sous la forme de méthodes d’assistance et de macros.
Pour ajouter d2d1effecthelpers.hlsli à votre projet, ajoutez une instruction #include dans le fichier HLSL. d2d1effecthelpers.hlsli se trouve au même emplacement que d’autres en-têtes Direct2D tels que d2d1.h ; elle peut être référencée à partir de la page de propriétés du fichier HLSL en ajoutant la macro $(WindowsSDK_IncludePath) à la propriété Autres répertoires Include. Notez que l’instruction #include doit se présenter après toute directive de préprocesseur telle D2D_INPUT_COUNT a été définie.
#include <d2d1effecthelpers.hlsli>
Direct2D ne prend pas en charge la liaison de nuanceurs de calcul ou de vertex. Toutefois, si votre effet utilise à la fois un nuanceur de vertex et un nuanceur de pixels, la sortie du nuanceur de pixels peut toujours être liée.
Directives de préprocesseur
Les directives de préprocesseur sont requises pour communiquer des informations sur l’effet. Cela inclut le nombre d’entrées et le type d’échantillonnage de chaque entrée. Les valeurs suivantes doivent être définies dans le code du nuanceur d’effet au-dessus du point d’entrée du nuanceur approprié, le cas échéant.
-
D2D_INPUT_COUNT <N>
: déclare le nombre d’entrées de texture à l’effet. Si l’effet a un nombre variable d’entrées, cette valeur doit être délimitée de manière appropriée à chaque point d’entrée du nuanceur. La définition de cette valeur est obligatoire. -
D2D_INPUT<N>_SIMPLE
: déclare l’entrée Nth pour utiliser un échantillonnage simple. Si elle n’est pas définie, l’entrée Nth est par défaut complexe. La définition de cette valeur est facultative. -
D2D_INPUT<N>_COMPLEX
: déclare l’entrée Nth pour utiliser l’échantillonnage complexe. Si elle n’est pas définie, l’entrée Nth est par défaut complexe. La définition de cette valeur est facultative. -
D2D_REQUIRES_SCENE_POSITION
: indique que la fonction nuanceur appelle des méthodes d’assistance qui utilisent la valeur de position de scène (à savoir, la fonction d’assistance D2DGetScenePosition d’assistance). Ce paramètre ne doit être inclus que si nécessaire, car une seule fonction par nuanceur lié peut utiliser ce paramètre. La définition de cette valeur est facultative. -
D2D_CUSTOM_ENTRY
: indique que la fonction nuanceur de pixels consomme la sortie d’un nuanceur de vertex personnalisé et déclare donc ses paramètres d’entrée. Toutes les entrées de nuanceur de vertex personnalisées utilisent un échantillonnage complexe et ne peuvent pas consommer la sortie d’une autre fonction de nuanceur (c’est-à-dire qu’elles ne sont post-linkables que). La définition de cette valeur est facultative.
Par exemple:
#define D2D_INPUT_COUNT 3
#define D2D_INPUT0_SIMPLE
#define D2D_INPUT1_SIMPLE
#define D2D_INPUT2_COMPLEX
#include <d2d1effecthelpers.hlsli>
Fonctions d’assistance
Les fonctions d’assistance sont utilisées comme remplacement de certaines fonctions intrinsèques HLSL natives. Au moment de la compilation, ces fonctions d’assistance sont redéfinies par Direct2D dans la version appropriée en fonction du type cible de compilation (nuanceur complet ou fonction d’exportation).
Les fonctions d’assistance :
D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY
Rubriques connexes