функция 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.
Требования
Требование | Значение |
---|---|
Заголовок |
|
DLL |
|