summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Software
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2021-04-30 14:57:12 -0700
committerPokechu22 <Pokechu022@gmail.com>2021-12-18 12:51:56 -0800
commit3aaeb2b9ef3f6b9cde69c77ecdf96e8defc996d5 (patch)
treebacb645dba78c7acb3165407ef904a3a890eeb12 /Source/Core/VideoBackends/Software
parent3fc12431c5ed7a0df1e9bd4c538405a44f6561de (diff)
Convert OpcodeDecoder::Opcode and OpcodeDecoder::Primitive to enum class
Diffstat (limited to 'Source/Core/VideoBackends/Software')
-rw-r--r--Source/Core/VideoBackends/Software/SWVertexLoader.cpp13
-rw-r--r--Source/Core/VideoBackends/Software/SetupUnit.cpp21
-rw-r--r--Source/Core/VideoBackends/Software/SetupUnit.h9
3 files changed, 25 insertions, 18 deletions
diff --git a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
index 738162de80..a7d0506a1f 100644
--- a/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
+++ b/Source/Core/VideoBackends/Software/SWVertexLoader.cpp
@@ -36,20 +36,21 @@ void SWVertexLoader::DrawCurrentBatch(u32 base_index, u32 num_indices, u32 base_
{
DebugUtil::OnObjectBegin();
- u8 primitiveType = 0;
+ using OpcodeDecoder::Primitive;
+ Primitive primitive_type = Primitive::GX_DRAW_QUADS;
switch (m_current_primitive_type)
{
case PrimitiveType::Points:
- primitiveType = OpcodeDecoder::GX_DRAW_POINTS;
+ primitive_type = Primitive::GX_DRAW_POINTS;
break;
case PrimitiveType::Lines:
- primitiveType = OpcodeDecoder::GX_DRAW_LINES;
+ primitive_type = Primitive::GX_DRAW_LINES;
break;
case PrimitiveType::Triangles:
- primitiveType = OpcodeDecoder::GX_DRAW_TRIANGLES;
+ primitive_type = Primitive::GX_DRAW_TRIANGLES;
break;
case PrimitiveType::TriangleStrip:
- primitiveType = OpcodeDecoder::GX_DRAW_TRIANGLE_STRIP;
+ primitive_type = Primitive::GX_DRAW_TRIANGLE_STRIP;
break;
}
@@ -57,7 +58,7 @@ void SWVertexLoader::DrawCurrentBatch(u32 base_index, u32 num_indices, u32 base_
if (g_renderer->IsBBoxEnabled())
g_renderer->BBoxFlush();
- m_setup_unit.Init(primitiveType);
+ m_setup_unit.Init(primitive_type);
// set all states with are stored within video sw
for (int i = 0; i < 4; i++)
diff --git a/Source/Core/VideoBackends/Software/SetupUnit.cpp b/Source/Core/VideoBackends/Software/SetupUnit.cpp
index b2488a63d8..48ab2b2d9b 100644
--- a/Source/Core/VideoBackends/Software/SetupUnit.cpp
+++ b/Source/Core/VideoBackends/Software/SetupUnit.cpp
@@ -9,9 +9,9 @@
#include "VideoBackends/Software/Clipper.h"
#include "VideoCommon/OpcodeDecoding.h"
-void SetupUnit::Init(u8 primitiveType)
+void SetupUnit::Init(OpcodeDecoder::Primitive primitive_type)
{
- m_PrimType = primitiveType;
+ m_PrimType = primitive_type;
m_VertexCounter = 0;
m_VertPointer[0] = &m_Vertices[0];
@@ -28,31 +28,32 @@ OutputVertexData* SetupUnit::GetVertex()
void SetupUnit::SetupVertex()
{
+ using OpcodeDecoder::Primitive;
switch (m_PrimType)
{
- case OpcodeDecoder::GX_DRAW_QUADS:
+ case Primitive::GX_DRAW_QUADS:
SetupQuad();
break;
- case OpcodeDecoder::GX_DRAW_QUADS_2:
+ case Primitive::GX_DRAW_QUADS_2:
WARN_LOG_FMT(VIDEO, "Non-standard primitive drawing command GL_DRAW_QUADS_2");
SetupQuad();
break;
- case OpcodeDecoder::GX_DRAW_TRIANGLES:
+ case Primitive::GX_DRAW_TRIANGLES:
SetupTriangle();
break;
- case OpcodeDecoder::GX_DRAW_TRIANGLE_STRIP:
+ case Primitive::GX_DRAW_TRIANGLE_STRIP:
SetupTriStrip();
break;
- case OpcodeDecoder::GX_DRAW_TRIANGLE_FAN:
+ case Primitive::GX_DRAW_TRIANGLE_FAN:
SetupTriFan();
break;
- case OpcodeDecoder::GX_DRAW_LINES:
+ case Primitive::GX_DRAW_LINES:
SetupLine();
break;
- case OpcodeDecoder::GX_DRAW_LINE_STRIP:
+ case Primitive::GX_DRAW_LINE_STRIP:
SetupLineStrip();
break;
- case OpcodeDecoder::GX_DRAW_POINTS:
+ case Primitive::GX_DRAW_POINTS:
SetupPoint();
break;
}
diff --git a/Source/Core/VideoBackends/Software/SetupUnit.h b/Source/Core/VideoBackends/Software/SetupUnit.h
index a9f9584e07..e454c73ff3 100644
--- a/Source/Core/VideoBackends/Software/SetupUnit.h
+++ b/Source/Core/VideoBackends/Software/SetupUnit.h
@@ -6,9 +6,14 @@
#include "Common/CommonTypes.h"
#include "VideoBackends/Software/NativeVertexFormat.h"
+namespace OpcodeDecoder
+{
+enum class Primitive : u8;
+}
+
class SetupUnit
{
- u8 m_PrimType = 0;
+ OpcodeDecoder::Primitive m_PrimType{};
int m_VertexCounter = 0;
OutputVertexData m_Vertices[3];
@@ -24,7 +29,7 @@ class SetupUnit
void SetupPoint();
public:
- void Init(u8 primitiveType);
+ void Init(OpcodeDecoder::Primitive primitive_type);
OutputVertexData* GetVertex();