You mean defined twice like this?
default.
fxCode:
//////////////////////////////////////////////////////////////////////
//section: fog ///////////////////////////////////////////////////////
float4 vecFog;
float4 vecViewPos;
//float4x4 matWorldView;
#ifndef MATWORLDVIEW
float4x4 matWorldView;
#define MATWORLDVIEW
#endif
#ifndef MATWORLD
float4x4 matWorld;
#define MATWORLD
#endif
#ifdef DXFOG
float DoFog(float4 Pos)
{
float3 P = mul(Pos,matWorldView); // convert vector to view space to get it's depth (.z)
return saturate((vecFog.y-P.z) * vecFog.z); // apply the linear fog formula
}
#else // distance based fog
float DoFog(float4 Pos)
{
float3 P = mul(Pos,matWorld);
return 1 - (distance(P,vecViewPos)-vecFog.x) * vecFog.z;
}
#endif
...
//////////////////////////////////////////////////////////////////////
//section: view - transform vertex position to view space ////////////
//float4x4 matWorldView;
#ifndef MATWORLDVIEW
float4x4 matWorldView;
#define MATWORLDVIEW
#endif
float4 DoView(float4 Pos)
{
return (mul(Pos,matWorldView));
}
float3 DoView(float3 Pos)
{
return (mul(Pos,matWorldView));
}