diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-10-22 02:56:28 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-10-22 02:56:28 +0200 |
| commit | 992bae4e2a14ca2547c09637b7dc6fc5f73b353a (patch) | |
| tree | 4b7df7f2cf95255551ccfad40ea33ed354b1f8ec /src/video_core/fsr.cpp | |
| parent | 6ff043c4fbd5dae5e0b1ec73a3bb4003e8cef20b (diff) | |
[common] replace Common::BitCast with libc++ provided one (#2774)
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2774
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/video_core/fsr.cpp')
| -rw-r--r-- | src/video_core/fsr.cpp | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/video_core/fsr.cpp b/src/video_core/fsr.cpp index 5653c64fcc..a222fa3b1f 100644 --- a/src/video_core/fsr.cpp +++ b/src/video_core/fsr.cpp @@ -1,7 +1,11 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #include <cmath> +#include <bit> #include "video_core/fsr.h" namespace FSR { @@ -95,7 +99,7 @@ u32 AU1_AH1_AF1(f32 f) { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, }; - const u32 u = Common::BitCast<u32>(f); + const u32 u = std::bit_cast<u32>(f); const u32 i = u >> 23; return base[i] + ((u & 0x7fffff) >> shift[i]); } @@ -107,20 +111,20 @@ u32 AU1_AH2_AF2(f32 a[2]) { void FsrEasuCon(u32 con0[4], u32 con1[4], u32 con2[4], u32 con3[4], f32 inputViewportInPixelsX, f32 inputViewportInPixelsY, f32 inputSizeInPixelsX, f32 inputSizeInPixelsY, f32 outputSizeInPixelsX, f32 outputSizeInPixelsY) { - con0[0] = Common::BitCast<u32>(inputViewportInPixelsX / outputSizeInPixelsX); - con0[1] = Common::BitCast<u32>(inputViewportInPixelsY / outputSizeInPixelsY); - con0[2] = Common::BitCast<u32>(0.5f * inputViewportInPixelsX / outputSizeInPixelsX - 0.5f); - con0[3] = Common::BitCast<u32>(0.5f * inputViewportInPixelsY / outputSizeInPixelsY - 0.5f); - con1[0] = Common::BitCast<u32>(1.0f / inputSizeInPixelsX); - con1[1] = Common::BitCast<u32>(1.0f / inputSizeInPixelsY); - con1[2] = Common::BitCast<u32>(1.0f / inputSizeInPixelsX); - con1[3] = Common::BitCast<u32>(-1.0f / inputSizeInPixelsY); - con2[0] = Common::BitCast<u32>(-1.0f / inputSizeInPixelsX); - con2[1] = Common::BitCast<u32>(2.0f / inputSizeInPixelsY); - con2[2] = Common::BitCast<u32>(1.0f / inputSizeInPixelsX); - con2[3] = Common::BitCast<u32>(2.0f / inputSizeInPixelsY); - con3[0] = Common::BitCast<u32>(0.0f / inputSizeInPixelsX); - con3[1] = Common::BitCast<u32>(4.0f / inputSizeInPixelsY); + con0[0] = std::bit_cast<u32>(inputViewportInPixelsX / outputSizeInPixelsX); + con0[1] = std::bit_cast<u32>(inputViewportInPixelsY / outputSizeInPixelsY); + con0[2] = std::bit_cast<u32>(0.5f * inputViewportInPixelsX / outputSizeInPixelsX - 0.5f); + con0[3] = std::bit_cast<u32>(0.5f * inputViewportInPixelsY / outputSizeInPixelsY - 0.5f); + con1[0] = std::bit_cast<u32>(1.0f / inputSizeInPixelsX); + con1[1] = std::bit_cast<u32>(1.0f / inputSizeInPixelsY); + con1[2] = std::bit_cast<u32>(1.0f / inputSizeInPixelsX); + con1[3] = std::bit_cast<u32>(-1.0f / inputSizeInPixelsY); + con2[0] = std::bit_cast<u32>(-1.0f / inputSizeInPixelsX); + con2[1] = std::bit_cast<u32>(2.0f / inputSizeInPixelsY); + con2[2] = std::bit_cast<u32>(1.0f / inputSizeInPixelsX); + con2[3] = std::bit_cast<u32>(2.0f / inputSizeInPixelsY); + con3[0] = std::bit_cast<u32>(0.0f / inputSizeInPixelsX); + con3[1] = std::bit_cast<u32>(4.0f / inputSizeInPixelsY); con3[2] = con3[3] = 0; } } // Anonymous namespace @@ -131,16 +135,16 @@ void FsrEasuConOffset(u32 con0[4], u32 con1[4], u32 con2[4], u32 con3[4], f32 outputSizeInPixelsY, f32 inputOffsetInPixelsX, f32 inputOffsetInPixelsY) { FsrEasuCon(con0, con1, con2, con3, inputViewportInPixelsX, inputViewportInPixelsY, inputSizeInPixelsX, inputSizeInPixelsY, outputSizeInPixelsX, outputSizeInPixelsY); - con0[2] = Common::BitCast<u32>(0.5f * inputViewportInPixelsX / outputSizeInPixelsX - 0.5f + + con0[2] = std::bit_cast<u32>(0.5f * inputViewportInPixelsX / outputSizeInPixelsX - 0.5f + inputOffsetInPixelsX); - con0[3] = Common::BitCast<u32>(0.5f * inputViewportInPixelsY / outputSizeInPixelsY - 0.5f + + con0[3] = std::bit_cast<u32>(0.5f * inputViewportInPixelsY / outputSizeInPixelsY - 0.5f + inputOffsetInPixelsY); } void FsrRcasCon(u32* con, f32 sharpness) { sharpness = std::exp2f(-sharpness); f32 hSharp[2]{sharpness, sharpness}; - con[0] = Common::BitCast<u32>(sharpness); + con[0] = std::bit_cast<u32>(sharpness); con[1] = AU1_AH2_AF2(hSharp); con[2] = 0; con[3] = 0; |
