HLSL功能未被识别?未声明的错误

时间:2012-08-05 04:58:54

标签: c xna hlsl

float4 PixelShaderFunction(float2 TexCoord: TEXCOORD0) : COLOR0
{
float4 color1 = tex2D(inputSampler, TexCoord);
float numb = TestFunc( 5 );
float4 color3 = color1 + numb;
return color3;
}

float TestFunc(float numb)
{

return numb + 1;
}

我收到错误说错误x3004:未声明的标识符'TestFunc'

2 个答案:

答案 0 :(得分:4)

在PixelShaderFunction中使用它之前声明TestFunc(),或者在此之前完全移动它。 I. e。:

float TestFunc(float);

float PixelShaderFunction()
{
    // ...
}

float TestFunc(float n)
{
    // ...
}

float TestFunc(float n)
{
     // ...
}

float PixelShaderFunction()
{
    // ...
}

答案 1 :(得分:3)

尝试在TestFunc之前声明PixelShaderFunction,或者如果在HLSL中允许,则转发声明:

float TestFunc(float numb);