From 10e8dc2693a289a9b4a65e7fd0688af10ee22a37 Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 16 Mar 2013 20:34:49 +0800 Subject: [PATCH 1/4] Flip in throughmode for SW T&L --- GPU/GLES/TransformPipeline.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/GPU/GLES/TransformPipeline.cpp b/GPU/GLES/TransformPipeline.cpp index d00cdde942..f850bb345e 100644 --- a/GPU/GLES/TransformPipeline.cpp +++ b/GPU/GLES/TransformPipeline.cpp @@ -640,10 +640,13 @@ void TransformDrawEngine::SoftwareTransformAndDraw( transformed[index].fog = fogCoef; memcpy(&transformed[index].u, uv, 2 * sizeof(float)); if (gstate_c.flipTexture) { - //if (throughmode) - // transformed[index].v = (float)gstate_c.actualTextureHeight / gstate_c.curTextureHeight - transformed[index].v; - //else - transformed[index].v = 1.0f - transformed[index].v; // * 2.0f; + if (throughmode) + transformed[index].v = 1.0f - transformed[index].v; + else + transformed[index].v = 1.0f - transformed[index].v * 2.0f; + } + for (int i = 0; i < 4; i++) { + transformed[index].color0[i] = c0[i] * 255.0f; } for (int i = 0; i < 4; i++) { transformed[index].color0[i] = c0[i] * 255.0f; From 49befb3d41b756720084e26adae9ec4afd8d92db Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 16 Mar 2013 20:35:51 +0800 Subject: [PATCH 2/4] Flip in throughmode for HW T&L --- GPU/GLES/VertexShaderGenerator.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/GPU/GLES/VertexShaderGenerator.cpp b/GPU/GLES/VertexShaderGenerator.cpp index ed2f74d266..9797d5a440 100644 --- a/GPU/GLES/VertexShaderGenerator.cpp +++ b/GPU/GLES/VertexShaderGenerator.cpp @@ -408,7 +408,10 @@ void GenerateVertexShader(int prim, char *buffer) { break; } if (flipV) - WRITE(p, " v_texcoord.y = 1.0 - v_texcoord.y * 2.0;\n"); + if (gstate.isModeThrough()) + WRITE(p, " v_texcoord.y = 1.0 - v_texcoord.y;\n"); + else + WRITE(p, " v_texcoord.y = 1.0 - v_texcoord.y * 2.0;\n"); } // Compute fogdepth From 0b6a762c1b222e0dccb5455037047bf36fd5b5bf Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 16 Mar 2013 21:05:41 +0800 Subject: [PATCH 3/4] Typo --- GPU/GLES/TransformPipeline.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/GPU/GLES/TransformPipeline.cpp b/GPU/GLES/TransformPipeline.cpp index f850bb345e..1c421ef080 100644 --- a/GPU/GLES/TransformPipeline.cpp +++ b/GPU/GLES/TransformPipeline.cpp @@ -648,9 +648,6 @@ void TransformDrawEngine::SoftwareTransformAndDraw( for (int i = 0; i < 4; i++) { transformed[index].color0[i] = c0[i] * 255.0f; } - for (int i = 0; i < 4; i++) { - transformed[index].color0[i] = c0[i] * 255.0f; - } for (int i = 0; i < 4; i++) { transformed[index].color1[i] = c1[i] * 255.0f; } From ada37f06cb08150b860c75034061551c0c27c08a Mon Sep 17 00:00:00 2001 From: raven02 Date: Sat, 16 Mar 2013 21:37:56 +0800 Subject: [PATCH 4/4] spacing fix --- GPU/GLES/StateMapping.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/GPU/GLES/StateMapping.cpp b/GPU/GLES/StateMapping.cpp index a26fe93dcb..e51f6abe5c 100644 --- a/GPU/GLES/StateMapping.cpp +++ b/GPU/GLES/StateMapping.cpp @@ -238,8 +238,8 @@ void TransformDrawEngine::ApplyDrawState(int prim) { if (g_Config.bBufferedRendering) { renderX = 0; renderY = 0; - renderWidth = framebufferManager_->GetRenderWidth(); - renderHeight = framebufferManager_->GetRenderHeight(); + renderWidth = framebufferManager_->GetRenderWidth(); + renderHeight = framebufferManager_->GetRenderHeight(); renderWidthFactor = (float)renderWidth / framebufferManager_->GetTargetWidth(); renderHeightFactor = (float)renderHeight / framebufferManager_->GetTargetHeight(); } else { @@ -261,8 +261,8 @@ void TransformDrawEngine::ApplyDrawState(int prim) { // This is a bit of a hack as the render buffer isn't always that size if (scissorX1 == 0 && scissorY1 == 0 && - scissorX2 >= gstate_c.curRTWidth - 1 && - scissorY2 >= gstate_c.curRTHeight - 1) { + scissorX2 >= gstate_c.curRTWidth - 1 && + scissorY2 >= gstate_c.curRTHeight - 1) { glstate.scissorTest.disable(); } else { glstate.scissorTest.enable();