summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2017-04-30 18:07:57 +1000
committerStenzek <stenzek@gmail.com>2017-09-11 20:01:45 +1000
commit836b9b9acbc2ff2d10d6f3c81e64b7b10b22f023 (patch)
tree78f87a4af8176ec94256d3c7c63969db0d91931b /Source/Core/VideoBackends/Software/SWVertexLoader.cpp
parent2869c570f1d0b67d2ee4304ea528bef3ef4b563e (diff)
Renderer: Move cull mode to a rasterization state object
Also moves logic for primitive handling to VideoCommon.
Diffstat (limited to 'Source/Core/VideoBackends/Software/SWVertexLoader.cpp')
-rw-r--r--Source/Core/VideoBackends/Software/SWVertexLoader.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
index 5442785934..a00fc057d8 100644
--- a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
+++ b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
@@ -62,16 +62,17 @@ void SWVertexLoader::vFlush()
u8 primitiveType = 0;
switch (m_current_primitive_type)
{
- case PRIMITIVE_POINTS:
+ case PrimitiveType::Points:
primitiveType = OpcodeDecoder::GX_DRAW_POINTS;
break;
- case PRIMITIVE_LINES:
+ case PrimitiveType::Lines:
primitiveType = OpcodeDecoder::GX_DRAW_LINES;
break;
- case PRIMITIVE_TRIANGLES:
- primitiveType = g_ActiveConfig.backend_info.bSupportsPrimitiveRestart ?
- OpcodeDecoder::GX_DRAW_TRIANGLE_STRIP :
- OpcodeDecoder::GX_DRAW_TRIANGLES;
+ case PrimitiveType::Triangles:
+ primitiveType = OpcodeDecoder::GX_DRAW_TRIANGLES;
+ break;
+ case PrimitiveType::TriangleStrip:
+ primitiveType = OpcodeDecoder::GX_DRAW_TRIANGLE_STRIP;
break;
}
@@ -89,13 +90,6 @@ void SWVertexLoader::vFlush()
for (u32 i = 0; i < IndexGenerator::GetIndexLen(); i++)
{
const u16 index = m_local_index_buffer[i];
-
- if (index == 0xffff)
- {
- // primitive restart
- m_setup_unit.Init(primitiveType);
- continue;
- }
memset(&m_vertex, 0, sizeof(m_vertex));
// Super Mario Sunshine requires those to be zero for those debug boxes.