vertexOutput VS(appData IN,
uniform float4x4 WorldViewProj
) {
vertexOutput OUT;

OUT.HPosition = mul(float4(IN.Position.xyz, 1.0f), WorldViewProj); //Dx
OUT.HPosition = mul(WorldViewProj, float4(IN.Position.xyz, 1.0f)); //Cg
OUT.TexCoord0 = IN.UV;
return OUT;
}

こんな風に書けばDirectXでもCgでも動作するコードが書けるんだがな・・・
ちなみに、行末のコメントを見て、ファイル読み込み時に不要なほうを消して使用。
次世代にシェーディングランゲージの搭載はどう考えても必須。
その言語ベースにCg使わない理由はないので、どのプラットフォームでもCg採用はガチ。