Compartilhar via


Auxiliares do HLSL

Para auxiliar os autores de efeito na escrita de 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 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 Diretórios de Inclusão Adicionais. Observe que a instrução #include deve vir depois que quaisquer diretivas de pré-processador D2D_INPUT_COUNT tiverem sido definidas.

#include <d2d1effecthelpers.hlsli>

Direct2D não dá suporte à 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

Diretivas de pré-processador são necessárias para comunicar informações sobre o efeito. Isso inclui o número de entradas e o tipo de amostragem de cada entrada. Os valores a seguir 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á ser definido adequadamente para cada ponto de entrada do sombreador. Definir esse valor é obrigatório.
  • D2D_INPUT<N>_SIMPLE : declara a entrada Nth para usar amostragem simples. Se não for definido, a entrada Nth usará como padrão complexo. Definir esse valor é opcional.
  • D2D_INPUT<N>_COMPLEX : declara a entrada Nth para usar amostragem complexa. Se não for definido, a entrada Nth usará como padrão complexo. Definir esse valor é opcional.
  • D2D_REQUIRES_SCENE_POSITION : indica que a função de sombreador chama métodos auxiliares que usam o valor de posição da cena (ou seja, a função auxiliar D2DGetScenePosition ). Esse parâmetro só deve ser incluído quando necessário, pois apenas uma função por sombreador vinculado pode utilizar esse parâmetro. Definir esse 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, declara seus parâmetros de entrada. Todas as entradas de sombreador de vértice personalizado usam amostragem complexa e não podem consumir a saída de outra função de sombreador (ou seja, elas são apenas pós-vinculáveis). Definir esse 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 uma substituição para algumas funções intrínsecas HLSL nativas. Em tempo de compilação, essas funções auxiliares são redefinidas por Direct2D para a versão apropriada, dependendo do tipo de destino de compilação (sombreador completo ou função de exportação).

As funções auxiliares:

D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY

Vinculação de Sombreador de Efeito