#define DLAYER 3 #define DMACRO1 TEXCOORD1 #define DMACRO(num) TEXCOORD##num struct S { float4 pos : POSITION; float2 UV0 : TEXCOORD0; float2 UV1 : DMACRO1; float2 UV2 : DMACRO(2); float2 UV3 : DMACRO(DLAYER); }; S main(float4 v : POSITION) { S s; s.pos = v; s.UV0 = float2(v.x,v.x); s.UV1 = float2(v.y,v.y); s.UV2 = float2(v.z,v.z); s.UV3 = float2(v.w,v.w); return s; }