Merge pull request #294 from neobrain/master
BPMemory: Cleanup GenMode and fix incorrect bitfield size.
This commit is contained in:
commit
782d271548
|
@ -531,16 +531,24 @@ 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,3,u32> numcolchans;
|
||||
// 1 bit unused?
|
||||
BitField< 8,1,u32> flat_shading; // unconfirmed
|
||||
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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue