summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorTony Wasserka <NeoBrainX@gmail.com>2014-04-21 22:34:23 +0200
committerTony Wasserka <NeoBrainX@gmail.com>2014-04-21 22:34:23 +0200
commit16d3dbc5ea04ea1bd05f32b7041bfb2f6d6e876d (patch)
tree1059d15a404fe87c67ef7ccdb12cf6b7fef1be4e /Source/Core
parent8e38b1e63b624db654098e4db3f8c66f2710be2d (diff)
BPMemory: Use BitField for the GenMode fields.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoCommon/BPMemory.h22
-rw-r--r--Source/Core/VideoCommon/BPStructs.cpp6
2 files changed, 17 insertions, 11 deletions
diff --git a/Source/Core/VideoCommon/BPMemory.h b/Source/Core/VideoCommon/BPMemory.h
index 5332c3e8d4..09f0efbaf7 100644
--- a/Source/Core/VideoCommon/BPMemory.h
+++ b/Source/Core/VideoCommon/BPMemory.h
@@ -531,16 +531,22 @@ struct FourTexUnits
union GenMode
{
- struct
+ enum CullMode : u32
{
- u32 numtexgens : 4; // 0xF
- u32 numcolchans : 5; // 0x1E0
- u32 multisampling : 1; // 0x200
- u32 numtevstages : 4; // 0x3C00
- u32 cullmode : 2; // 0xC000
- u32 numindstages : 3; // 0x30000
- u32 zfreeze : 5; //0x3C0000
+ CULL_NONE = 0,
+ CULL_BACK = 1, // cull back-facing primitives
+ CULL_FRONT = 2, // cull front-facing primitives
+ CULL_ALL = 3, // cull all primitives
};
+
+ BitField< 0,4,u32> numtexgens;
+ BitField< 4,5,u32> numcolchans;
+ BitField< 9,1,u32> multisampling;
+ BitField<10,4,u32> numtevstages;
+ BitField<14,2,CullMode> cullmode;
+ BitField<16,3,u32> numindstages;
+ BitField<19,5,u32> zfreeze;
+
u32 hex;
};
diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp
index 8b904a95f8..d3caaf49d3 100644
--- a/Source/Core/VideoCommon/BPStructs.cpp
+++ b/Source/Core/VideoCommon/BPStructs.cpp
@@ -91,9 +91,9 @@ void BPWritten(const BPCmd& bp)
case BPMEM_GENMODE: // Set the Generation Mode
{
PRIM_LOG("genmode: texgen=%d, col=%d, multisampling=%d, tev=%d, cullmode=%d, ind=%d, zfeeze=%d",
- bpmem.genMode.numtexgens, bpmem.genMode.numcolchans,
- bpmem.genMode.multisampling, bpmem.genMode.numtevstages+1, bpmem.genMode.cullmode,
- bpmem.genMode.numindstages, bpmem.genMode.zfreeze);
+ (u32)bpmem.genMode.numtexgens, (u32)bpmem.genMode.numcolchans,
+ (u32)bpmem.genMode.multisampling, (u32)bpmem.genMode.numtevstages+1, (u32)bpmem.genMode.cullmode,
+ (u32)bpmem.genMode.numindstages, (u32)bpmem.genMode.zfreeze);
// Only call SetGenerationMode when cull mode changes.
if (bp.changes & 0xC000)