summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/VertexManager.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2015-01-02 23:55:41 +1300
committerScott Mansell <phiren@gmail.com>2015-01-23 03:32:31 +1300
commit418296961cba39e4ae5bc441b3f52bf1459ad2bb (patch)
tree80d8f85fa7e09ca531ebeb85dd1a5aea84dfed66 /Source/Core/VideoBackends/OGL/VertexManager.cpp
parent613781c7650d3cbd494a212eacdff10ea5140894 (diff)
Fix various issues with zfreeze implemntation.
Results are still not correct, but things are getting closer. * Don't cull CULLALL primitives so early so they can be used as reference planes. * Convert CalculateZSlope to screenspace coordinates. * Convert Pixelshader to screenspace coordinates (instead of worldspace xy coordinates, which is totally wrong) * Divide depth by 2^24 instead of clamping to 0.0-1.0 as was done before. Progress: * Rouge Squadron 2/3 appear correct in game (videos in rs2 save file selection are missing) * Shadows draw 100% correctly in NHL 2003. * Mario golf menu renders correctly. * NFS: HP2, shadows sometimes render on top of car or below the road. * Mario Tennis, courts and shadows render correctly, but at wrong depth * Blood Omen 2, doesn't work.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/VertexManager.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/VertexManager.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/OGL/VertexManager.cpp b/Source/Core/VideoBackends/OGL/VertexManager.cpp
index 427a5ecee3..859a3b8db4 100644
--- a/Source/Core/VideoBackends/OGL/VertexManager.cpp
+++ b/Source/Core/VideoBackends/OGL/VertexManager.cpp
@@ -145,6 +145,10 @@ void VertexManager::vFlush(bool useDstAlpha)
CalculateZSlope(stride);
}
+ // if cull mode is CULL_ALL, ignore triangles and quads
+ if (bpmem.genMode.cullmode == GenMode::CULL_ALL && current_primitive_type == PRIMITIVE_TRIANGLES)
+ return;
+
// Makes sure we can actually do Dual source blending
bool dualSourcePossible = g_ActiveConfig.backend_info.bSupportsDualSourceBlend;