diff options
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/common/common_funcs.h | 29 | ||||
| -rw-r--r-- | src/common/error.cpp (renamed from src/common/misc.cpp) | 6 | ||||
| -rw-r--r-- | src/common/error.h | 21 | ||||
| -rw-r--r-- | src/common/settings.cpp | 4 | ||||
| -rw-r--r-- | src/common/settings.h | 8 | ||||
| -rw-r--r-- | src/common/thread.cpp | 6 | 
7 files changed, 57 insertions, 20 deletions
| diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 57922b51c..b18a2a2f5 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -53,6 +53,8 @@ add_library(common STATIC      div_ceil.h      dynamic_library.cpp      dynamic_library.h +    error.cpp +    error.h      fiber.cpp      fiber.h      fs/file.cpp @@ -88,7 +90,6 @@ add_library(common STATIC      microprofile.cpp      microprofile.h      microprofileui.h -    misc.cpp      nvidia_flags.cpp      nvidia_flags.h      page_table.cpp diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 53bd7da60..4c1e29de6 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h @@ -4,9 +4,8 @@  #pragma once -#include <algorithm>  #include <array> -#include <string> +#include <iterator>  #if !defined(ARCHITECTURE_x86_64)  #include <cstdlib> // for exit @@ -49,16 +48,6 @@ __declspec(dllimport) void __stdcall DebugBreak(void);  #endif // _MSC_VER ndef -// Generic function to get last error message. -// Call directly after the command or use the error num. -// This function might change the error code. -// Defined in misc.cpp. -[[nodiscard]] std::string GetLastErrorMsg(); - -// Like GetLastErrorMsg(), but passing an explicit error code. -// Defined in misc.cpp. -[[nodiscard]] std::string NativeErrorToString(int e); -  #define DECLARE_ENUM_FLAG_OPERATORS(type)                                                          \      [[nodiscard]] constexpr type operator|(type a, type b) noexcept {                              \          using T = std::underlying_type_t<type>;                                                    \ @@ -72,6 +61,14 @@ __declspec(dllimport) void __stdcall DebugBreak(void);          using T = std::underlying_type_t<type>;                                                    \          return static_cast<type>(static_cast<T>(a) ^ static_cast<T>(b));                           \      }                                                                                              \ +    [[nodiscard]] constexpr type operator<<(type a, type b) noexcept {                             \ +        using T = std::underlying_type_t<type>;                                                    \ +        return static_cast<type>(static_cast<T>(a) << static_cast<T>(b));                          \ +    }                                                                                              \ +    [[nodiscard]] constexpr type operator>>(type a, type b) noexcept {                             \ +        using T = std::underlying_type_t<type>;                                                    \ +        return static_cast<type>(static_cast<T>(a) >> static_cast<T>(b));                          \ +    }                                                                                              \      constexpr type& operator|=(type& a, type b) noexcept {                                         \          a = a | b;                                                                                 \          return a;                                                                                  \ @@ -84,6 +81,14 @@ __declspec(dllimport) void __stdcall DebugBreak(void);          a = a ^ b;                                                                                 \          return a;                                                                                  \      }                                                                                              \ +    constexpr type& operator<<=(type& a, type b) noexcept {                                        \ +        a = a << b;                                                                                \ +        return a;                                                                                  \ +    }                                                                                              \ +    constexpr type& operator>>=(type& a, type b) noexcept {                                        \ +        a = a >> b;                                                                                \ +        return a;                                                                                  \ +    }                                                                                              \      [[nodiscard]] constexpr type operator~(type key) noexcept {                                    \          using T = std::underlying_type_t<type>;                                                    \          return static_cast<type>(~static_cast<T>(key));                                            \ diff --git a/src/common/misc.cpp b/src/common/error.cpp index 495385b9e..d4455e310 100644 --- a/src/common/misc.cpp +++ b/src/common/error.cpp @@ -10,7 +10,9 @@  #include <cstring>  #endif -#include "common/common_funcs.h" +#include "common/error.h" + +namespace Common {  std::string NativeErrorToString(int e) {  #ifdef _WIN32 @@ -50,3 +52,5 @@ std::string GetLastErrorMsg() {      return NativeErrorToString(errno);  #endif  } + +} // namespace Common diff --git a/src/common/error.h b/src/common/error.h new file mode 100644 index 000000000..e084d4b0f --- /dev/null +++ b/src/common/error.h @@ -0,0 +1,21 @@ +// Copyright 2013 Dolphin Emulator Project / 2014 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include <string> + +namespace Common { + +// Generic function to get last error message. +// Call directly after the command or use the error num. +// This function might change the error code. +// Defined in error.cpp. +[[nodiscard]] std::string GetLastErrorMsg(); + +// Like GetLastErrorMsg(), but passing an explicit error code. +// Defined in error.cpp. +[[nodiscard]] std::string NativeErrorToString(int e); + +} // namespace Common diff --git a/src/common/settings.cpp b/src/common/settings.cpp index fd3b639cd..0d2df80a8 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -54,7 +54,7 @@ void LogSettings() {      log_setting("Renderer_GPUAccuracyLevel", values.gpu_accuracy.GetValue());      log_setting("Renderer_UseAsynchronousGpuEmulation",                  values.use_asynchronous_gpu_emulation.GetValue()); -    log_setting("Renderer_UseNvdecEmulation", values.use_nvdec_emulation.GetValue()); +    log_setting("Renderer_NvdecEmulation", values.nvdec_emulation.GetValue());      log_setting("Renderer_AccelerateASTC", values.accelerate_astc.GetValue());      log_setting("Renderer_UseVsync", values.use_vsync.GetValue());      log_setting("Renderer_ShaderBackend", values.shader_backend.GetValue()); @@ -136,7 +136,7 @@ void RestoreGlobalState(bool is_powered_on) {      values.use_disk_shader_cache.SetGlobal(true);      values.gpu_accuracy.SetGlobal(true);      values.use_asynchronous_gpu_emulation.SetGlobal(true); -    values.use_nvdec_emulation.SetGlobal(true); +    values.nvdec_emulation.SetGlobal(true);      values.accelerate_astc.SetGlobal(true);      values.use_vsync.SetGlobal(true);      values.shader_backend.SetGlobal(true); diff --git a/src/common/settings.h b/src/common/settings.h index ec4d381e8..b7195670b 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -48,6 +48,12 @@ enum class FullscreenMode : u32 {      Exclusive = 1,  }; +enum class NvdecEmulation : u32 { +    Off = 0, +    CPU = 1, +    GPU = 2, +}; +  /** The BasicSetting class is a simple resource manager. It defines a label and default value   * alongside the actual value of the setting for simpler and less-error prone use with frontend   * configurations. Setting a default value and label is required, though subclasses may deviate from @@ -466,7 +472,7 @@ struct Values {      RangedSetting<GPUAccuracy> gpu_accuracy{GPUAccuracy::High, GPUAccuracy::Normal,                                              GPUAccuracy::Extreme, "gpu_accuracy"};      Setting<bool> use_asynchronous_gpu_emulation{true, "use_asynchronous_gpu_emulation"}; -    Setting<bool> use_nvdec_emulation{true, "use_nvdec_emulation"}; +    Setting<NvdecEmulation> nvdec_emulation{NvdecEmulation::GPU, "nvdec_emulation"};      Setting<bool> accelerate_astc{true, "accelerate_astc"};      Setting<bool> use_vsync{true, "use_vsync"};      BasicRangedSetting<u16> fps_cap{1000, 1, 1000, "fps_cap"}; diff --git a/src/common/thread.cpp b/src/common/thread.cpp index d2c1ac60d..946a1114d 100644 --- a/src/common/thread.cpp +++ b/src/common/thread.cpp @@ -2,7 +2,9 @@  // Licensed under GPLv2 or any later version  // Refer to the license.txt file included. -#include "common/common_funcs.h" +#include <string> + +#include "common/error.h"  #include "common/logging/log.h"  #include "common/thread.h"  #ifdef __APPLE__ @@ -21,8 +23,6 @@  #include <unistd.h>  #endif -#include <string> -  #ifdef __FreeBSD__  #define cpu_set_t cpuset_t  #endif | 
