From fb071a066d19f6bcb8a6ec09f56f208ce2dbe2a6 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 8 Mar 2015 18:01:00 -0700 Subject: [PATCH] d3d9: Change vertex attribute logic to match gles. --- GPU/Directx9/VertexShaderGeneratorDX9.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/GPU/Directx9/VertexShaderGeneratorDX9.cpp b/GPU/Directx9/VertexShaderGeneratorDX9.cpp index f1b562617e..4c02380bd4 100644 --- a/GPU/Directx9/VertexShaderGeneratorDX9.cpp +++ b/GPU/Directx9/VertexShaderGeneratorDX9.cpp @@ -232,10 +232,7 @@ void GenerateVertexShaderDX9(int prim, char *buffer, bool useHWTransform) { WRITE(p, "%s", boneWeightAttrDecl[TranslateNumBones(vertTypeGetNumBoneWeights(vertType))]); } if (doTexture && hasTexcoord) { - if (doTextureProjection) - WRITE(p, " float3 texcoord : TEXCOORD0;\n"); - else - WRITE(p, " float2 texcoord : TEXCOORD0;\n"); + WRITE(p, " float2 texcoord : TEXCOORD0;\n"); } if (hasColor) { WRITE(p, " float4 color0 : COLOR0;\n"); @@ -249,10 +246,19 @@ void GenerateVertexShaderDX9(int prim, char *buffer, bool useHWTransform) { } else { WRITE(p, "struct VS_IN {\n"); WRITE(p, " float4 position : POSITION;\n"); - WRITE(p, " float3 texcoord : TEXCOORD0;\n"); - WRITE(p, " float4 color0 : COLOR0;\n"); + if (doTexture && hasTexcoord) { + if (doTextureProjection && !throughmode) + WRITE(p, " float3 texcoord : TEXCOORD0;\n"); + else + WRITE(p, " float2 texcoord : TEXCOORD0;\n"); + } + if (hasColor) { + WRITE(p, " float4 color0 : COLOR0;\n"); + } // only software transform supplies color1 as vertex data - WRITE(p, " float4 color1 : COLOR1;\n"); + if (lmode && !throughmode) { + WRITE(p, " float4 color1 : COLOR1;\n"); + } WRITE(p, "};\n"); }