CTextureBoo: Prevent signed conversion warnings from occurring in Convert* helper functions

This commit is contained in:
Lioncash 2020-05-12 20:03:58 -04:00
parent fee8d91dca
commit e0a44bdf45
1 changed files with 4 additions and 4 deletions

View File

@ -26,22 +26,22 @@ struct DXT1Block {
/* GX uses this upsampling technique to extract full 8-bit range */
constexpr u8 Convert3To8(u8 v) {
/* Swizzle bits: 00000123 -> 12312312 */
return (v << 5) | (v << 2) | (v >> 1);
return static_cast<u8>((u32{v} << 5) | (u32{v} << 2) | (u32{v} >> 1));
}
constexpr u8 Convert4To8(u8 v) {
/* Swizzle bits: 00001234 -> 12341234 */
return (v << 4) | v;
return static_cast<u8>((u32{v} << 4) | u32{v});
}
constexpr u8 Convert5To8(u8 v) {
/* Swizzle bits: 00012345 -> 12345123 */
return (v << 3) | (v >> 2);
return static_cast<u8>((u32{v} << 3) | (u32{v} >> 2));
}
constexpr u8 Convert6To8(u8 v) {
/* Swizzle bits: 00123456 -> 12345612 */
return (v << 2) | (v >> 4);
return static_cast<u8>((u32{v} << 2) | (u32{v} >> 4));
}
} // Anonymous namespace