Ajudantes HLSL
Para ajudar os autores de efeitos a escrever sombreadores de pixel vinculáveis, d2d1effecthelpers.hlsli define um conjunto de extensões de linguagem HLSL na forma de métodos auxiliares e macros.
Para adicionar d2d1effecthelpers.hlsli ao seu projeto, adicione uma instrução #include no arquivo HLSL. d2d1effecthelpers.hlsli está localizado no mesmo local que outros cabeçalhos Direct2D, como d2d1.h; ele pode ser referenciado na página de propriedades do arquivo HLSL, adicionando a macro $(WindowsSDK_IncludePath) à propriedade Additional Include Directories. Observe que a instrução #include deve vir depois de quaisquer diretivas de pré-processador, D2D_INPUT_COUNT tenham sido definidas.
#include <d2d1effecthelpers.hlsli>
O Direct2D não suporta a vinculação de sombreadores de computação ou vértice. No entanto, se o efeito usar um sombreador de vértice e um sombreador de pixel, a saída do sombreador de pixel ainda poderá ser vinculada.
Diretivas de pré-processador
As diretivas de pré-processador são necessárias para comunicar informações sobre o efeito. Isto inclui o número de entradas e o tipo de amostragem de cada entrada. Os seguintes valores devem ser definidos no código do sombreador de efeito acima do ponto de entrada do sombreador relevante, quando aplicável.
-
D2D_INPUT_COUNT <N>
: Declara o número de entradas de textura para o efeito. Se o efeito tiver um número variável de entradas, esse valor deverá ter um escopo apropriado para cada ponto de entrada do sombreador. A definição deste valor é obrigatória. -
D2D_INPUT<N>_SIMPLE
: Declara a enésima entrada para usar amostragem simples. Se não estiver definida, a entrada Nth assume como padrão complexa. A definição desse valor é opcional. -
D2D_INPUT<N>_COMPLEX
: Declara a enésima entrada para usar amostragem complexa. Se não estiver definida, a entrada Nth assume como padrão complexa. A definição desse valor é opcional. -
D2D_REQUIRES_SCENE_POSITION
: Indica que a função de sombreador chama métodos auxiliares que usam o valor de posição de cena (ou seja, o D2DGetScenePosition função auxiliar). Este parâmetro só deve ser incluído quando necessário, uma vez que apenas uma função por sombreador vinculado pode utilizar este parâmetro. A definição desse valor é opcional. -
D2D_CUSTOM_ENTRY
: Indica que a função de sombreador de pixel consome a saída de um sombreador de vértice personalizado e, portanto, declarará seus parâmetros de entrada. Todas as entradas de sombreador de vértice personalizadas usam amostragem complexa e não podem consumir a saída de outra função de sombreador (ou seja, são apenas pós-vinculáveis). A definição desse valor é opcional.
Por exemplo:
#define D2D_INPUT_COUNT 3
#define D2D_INPUT0_SIMPLE
#define D2D_INPUT1_SIMPLE
#define D2D_INPUT2_COMPLEX
#include <d2d1effecthelpers.hlsli>
Funções auxiliares
As funções auxiliares são usadas como um substituto para algumas funções intrínsecas HLSL nativas. Em tempo de compilação, essas funções auxiliares são redefinidas pelo Direct2D para a versão apropriada, dependendo do tipo de destino da compilação (sombreador completo ou função de exportação).
As funções auxiliares:
D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY
Tópicos relacionados