BPMemory: Use Common::BitCast where applicable

Gets rid of memcpy boilerplating for reinterpreting bits properly.
This commit is contained in:
Lioncash 2018-05-18 14:25:40 -04:00
parent bdce441bb9
commit 4dbd6f6bbc
1 changed files with 3 additions and 7 deletions

View File

@ -4,7 +4,7 @@
#include "VideoCommon/BPMemory.h" #include "VideoCommon/BPMemory.h"
#include <cstring> #include "Common/BitUtils.h"
// BP state // BP state
// STATE_TO_SAVE // STATE_TO_SAVE
@ -56,9 +56,7 @@ float FogParams::GetA() const
const u32 integral = (static_cast<u32>(a.sign) << 31) | (static_cast<u32>(a.exp) << 23) | const u32 integral = (static_cast<u32>(a.sign) << 31) | (static_cast<u32>(a.exp) << 23) |
(static_cast<u32>(a.mant) << 12); (static_cast<u32>(a.mant) << 12);
float real; return Common::BitCast<float>(integral);
std::memcpy(&real, &integral, sizeof(u32));
return real;
} }
float FogParams::GetC() const float FogParams::GetC() const
@ -73,7 +71,5 @@ float FogParams::GetC() const
const u32 integral = (c_proj_fsel.c_sign.Value() << 31) | (c_proj_fsel.c_exp.Value() << 23) | const u32 integral = (c_proj_fsel.c_sign.Value() << 31) | (c_proj_fsel.c_exp.Value() << 23) |
(c_proj_fsel.c_mant.Value() << 12); (c_proj_fsel.c_mant.Value() << 12);
float real; return Common::BitCast<float>(integral);
std::memcpy(&real, &integral, sizeof(u32));
return real;
} }