Поделиться через


функция D2D_PS_ENTRY

Макрос, определяющий точку входа пиксельного шейдера с заданным именем функции.

Синтаксис

void WINAPI D2D_PS_ENTRY(
  in string Entryname
);

Параметры

Entryname [in]

Имя точки входа шейдера пикселей.

Возвращаемое значение

Эта функция не возвращает значение.

Комментарии

Используйте этот макрос вместо указания входной подписи точки входа обычным способом: все параметры неявные и добавляются Direct2D во время компиляции в зависимости от типа целевого объекта компиляции (полный шейдер или функция экспорта).

#define D2D_INPUT_COUNT 1 
#define D2D_INPUT0_SIMPLE 
#include  d2d1effectauthor.hlsli  

D2D_PS_ENTRY(LinkingCompatiblePixelShader) 
{ 
    float4 input = D2DGetInput(0);  

    input.rgb *= input.a; 

    return input; 
} 

В этом кратком примере обратите внимание, что параметры функции не объявляются, количество входных данных и тип каждого входного ввода объявляется перед функцией входа, входные данные извлекаются путем вызова D2DGetInput и что директивы препроцессора должны быть определены перед включением вспомогательного файла.

Совместимый с компоновкой шейдер должен предоставлять как обычный однопрохожий пиксельный шейдер, так и функцию экспортного шейдера. Макрос D2D_PS_ENTRY позволяет создавать каждую из них из одного кода при использовании в сочетании со скриптом компиляции шейдера.

При компиляции полного шейдера макросы развертываются в следующем коде, который имеет входную подпись, совместимую с D2D Effects.

Texture2D<float4> InputTexture0; 
SamplerState InputSampler0; 

float4 LinkingCompatiblePixelShader(
    float4 pos   : SV_POSITION,   
    float4 posScene : SCENE_POSITION,    
    float4 uv0  : TEXCOORD0 
    ) : SV_Target 
{ 
    float4 input = InputTexture0.Sample(InputSampler0, uv0.xy);  

    input.rgb *= input.a; 

    return input; 
} 

При компиляции версии функции экспорта того же кода создается следующий код:

// Shader function version 
export float4 LinkingCompatiblePixelShader_Function( 
    float4 input0 : INPUT0 
    ) 
{ 
    input.rgb *= input.a; 

    return input; 
} 

Обратите внимание, что входные данные текстуры, обычно получаемые выборкой Texture2D, были заменены входными данными функции input0.

Требования

Требование Значение
Заголовок
D2d1effecthelpers.hlsli
DLL
D2d1.dll

См. также раздел

Связывание шейдеров эффектов

Вспомогательные функции HLSL