summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexShaderManager.cpp
diff options
context:
space:
mode:
authorMerryMage <MerryMage@users.noreply.github.com>2017-06-11 14:37:18 +0100
committerMerryMage <MerryMage@users.noreply.github.com>2017-06-15 16:38:10 +0100
commitf8a99ca19253f9760d76faa909860d101b297952 (patch)
treeab259b91398ae7e559311afacce9c2fc9e091b2e /Source/Core/VideoCommon/VertexShaderManager.cpp
parent44f24205171e122f491b05c75ef24495a8e555f7 (diff)
VertexShaderManager: Rename projection hack variables
Diffstat (limited to 'Source/Core/VideoCommon/VertexShaderManager.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexShaderManager.cpp50
1 files changed, 29 insertions, 21 deletions
diff --git a/Source/Core/VideoCommon/VertexShaderManager.cpp b/Source/Core/VideoCommon/VertexShaderManager.cpp
index 8818c7f387..ea2e8a528d 100644
--- a/Source/Core/VideoCommon/VertexShaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexShaderManager.cpp
@@ -56,8 +56,8 @@ struct ProjectionHack
namespace
{
// Control Variables
-static ProjectionHack g_ProjHack1;
-static ProjectionHack g_ProjHack2;
+static ProjectionHack g_proj_hack_near;
+static ProjectionHack g_proj_hack_far;
} // Namespace
static float PHackValue(std::string sValue)
@@ -92,31 +92,39 @@ static float PHackValue(std::string sValue)
return f;
}
-void UpdateProjectionHack(int iPhackvalue[], std::string sPhackvalue[])
+void UpdateProjectionHack(const ProjectionHackConfig& config)
{
- float fhackvalue1 = 0, fhackvalue2 = 0;
- float fhacksign1 = 1.0, fhacksign2 = 1.0;
- const char* sTemp[2];
+ float near_value = 0, far_value = 0;
+ float near_sign = 1.0, far_sign = 1.0;
- if (iPhackvalue[0] == 1)
+ if (config.m_enable)
{
+ const char* near_sign_str = "";
+ const char* far_sign_str = "";
+
NOTICE_LOG(VIDEO, "\t\t--- Orthographic Projection Hack ON ---");
- fhacksign1 *= (iPhackvalue[1] == 1) ? -1.0f : fhacksign1;
- sTemp[0] = (iPhackvalue[1] == 1) ? " * (-1)" : "";
- fhacksign2 *= (iPhackvalue[2] == 1) ? -1.0f : fhacksign2;
- sTemp[1] = (iPhackvalue[2] == 1) ? " * (-1)" : "";
+ if (config.m_sznear)
+ {
+ near_sign *= -1.0f;
+ near_sign_str = " * (-1)";
+ }
+ if (config.m_szfar)
+ {
+ far_sign *= -1.0f;
+ far_sign_str = " * (-1)";
+ }
- fhackvalue1 = PHackValue(sPhackvalue[0]);
- NOTICE_LOG(VIDEO, "- zNear Correction = (%f + zNear)%s", fhackvalue1, sTemp[0]);
+ near_value = PHackValue(config.m_znear);
+ NOTICE_LOG(VIDEO, "- zNear Correction = (%f + zNear)%s", near_value, near_sign_str);
- fhackvalue2 = PHackValue(sPhackvalue[1]);
- NOTICE_LOG(VIDEO, "- zFar Correction = (%f + zFar)%s", fhackvalue2, sTemp[1]);
+ far_value = PHackValue(config.m_zfar);
+ NOTICE_LOG(VIDEO, "- zFar Correction = (%f + zFar)%s", far_value, far_sign_str);
}
// Set the projections hacks
- g_ProjHack1 = ProjectionHack(fhacksign1, fhackvalue1);
- g_ProjHack2 = ProjectionHack(fhacksign2, fhackvalue2);
+ g_proj_hack_near = ProjectionHack(near_sign, near_value);
+ g_proj_hack_far = ProjectionHack(far_sign, far_value);
}
// Viewport correction:
@@ -485,10 +493,10 @@ void VertexShaderManager::SetConstants()
g_fProjectionMatrix[8] = 0.0f;
g_fProjectionMatrix[9] = 0.0f;
- g_fProjectionMatrix[10] = (g_ProjHack1.value + rawProjection[4]) *
- ((g_ProjHack1.sign == 0) ? 1.0f : g_ProjHack1.sign);
- g_fProjectionMatrix[11] = (g_ProjHack2.value + rawProjection[5]) *
- ((g_ProjHack2.sign == 0) ? 1.0f : g_ProjHack2.sign);
+ g_fProjectionMatrix[10] = (g_proj_hack_near.value + rawProjection[4]) *
+ ((g_proj_hack_near.sign == 0) ? 1.0f : g_proj_hack_near.sign);
+ g_fProjectionMatrix[11] = (g_proj_hack_far.value + rawProjection[5]) *
+ ((g_proj_hack_far.sign == 0) ? 1.0f : g_proj_hack_far.sign);
g_fProjectionMatrix[12] = 0.0f;
g_fProjectionMatrix[13] = 0.0f;