Aracılığıyla paylaş


HLSL Yardımcıları

d2d1effecthelpers.hlsli, yazarlara bağlanabilir piksel gölgelendiricileri yazma konusunda yardımcı olmak için yardımcı yöntemler ve makrolar biçiminde bir dizi HLSL dil uzantısı tanımlar.

Projenize d2d1effecthelpers.hlsli eklemek için HLSL dosyasına bir #include deyimi ekleyin. d2d1effecthelpers.hlsli, d2d1.h gibi diğer Direct2D üst bilgileriyle aynı konumda bulunur; Ek Ekleme Dizinleri özelliğine $(WindowsSDK_IncludePath) makrosunun eklenmesiyle HLSL dosyasının özellik sayfasından başvurulabilir. #include deyiminin, D2D_INPUT_COUNT gibi önişlemci yönergeleri tanımlandıktan sonra gelmesi gerektiğini unutmayın.

#include <d2d1effecthelpers.hlsli>

Direct2D, işlem veya köşe gölgelendiricilerini bağlamayı desteklemez. Ancak, efektiniz hem köşe gölgelendiricisi hem de piksel gölgelendiricisi kullanıyorsa piksel gölgelendiricisinin çıkışı yine de bağlanabilir.

Önişlemci Yönergeleri

Etki hakkında bilgi iletmek için önişlemci yönergeleri gereklidir. Bu, her girişin giriş sayısını ve örnekleme türünü içerir. Aşağıdaki değerler, uygun olduğunda ilgili gölgelendirici giriş noktasının üzerindeki efekt gölgelendirici kodunda tanımlanmalıdır.

  • D2D_INPUT_COUNT <N>: Efekte doku girişi sayısını bildirir. Efektin değişken sayıda girişi varsa, bu değerin kapsamı her gölgelendirici giriş noktasına uygun şekilde yapılmalıdır. Bu değeri tanımlamak zorunludur.
  • D2D_INPUT<N>_SIMPLE: Basit örneklemeyi kullanmak için N. girişi bildirir. Tanımlanmamışsa, N. giriş varsayılan olarak karmaşık olur. Bu değeri tanımlamak isteğe bağlıdır.
  • D2D_INPUT<N>_COMPLEX: Karmaşık örneklemeyi kullanmak için N. girişi bildirir. Tanımlanmamışsa, N. giriş varsayılan olarak karmaşık olur. Bu değeri tanımlamak isteğe bağlıdır.
  • D2D_REQUIRES_SCENE_POSITION: Gölgelendirici işlevinin sahne konumu değerini kullanan yardımcı yöntemleri çağırdığını gösterir (yani, D2DGetScenePosition yardımcı işlevi). Bağlı gölgelendirici başına yalnızca bir işlev bu parametreyi kullanabileceğinden, bu parametre yalnızca gerektiğinde dahil edilmelidir. Bu değeri tanımlamak isteğe bağlıdır.
  • D2D_CUSTOM_ENTRY: Piksel gölgelendiricisi işlevinin özel bir köşe gölgelendiricisinin çıkışını tüketeceğini ve böylece giriş parametrelerini bildireceğini gösterir. Tüm özel köşe gölgelendiricisi girişleri karmaşık örnekleme kullanır ve başka bir gölgelendirici işlevinin çıkışını kullanamaz (yani, bunlar yalnızca son bağlanabilirdir). Bu değeri tanımlamak isteğe bağlıdır.

Mesela:

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

Yardımcı İşlevler

Yardımcı işlevler, bazı yerel HLSL iç işlevlerinin yerine kullanılır. Derleme zamanında bu yardımcı işlevler, derleme hedef türüne (tam gölgelendirici veya dışarı aktarma işlevi) bağlı olarak Direct2D tarafından uygun sürüme yeniden tanımlanır.

Yardımcı işlevler:

D2DGetInput
D2DSampleInput
D2DSampleInputAtOffset
D2DSampleInputAtPosition
D2DGetInputCoordinate
D2DGetScenePosition
D2D_PS_ENTRY

Efekt Gölgelendirici Bağlama