linter: Apply clang-format 19.1 formatting

find ./Source/ -name '*.cpp' -o -name '*.h' | xargs clang-format-19 -i
This commit is contained in:
Joshua Vandaële 2025-03-17 12:14:32 +01:00
parent d9d0082018
commit 2c54ee94c1
No known key found for this signature in database
GPG key ID: 5E8F4E7EDBD390EA
41 changed files with 159 additions and 212 deletions

View file

@ -429,7 +429,10 @@ extern const CaseInsensitiveDict<ParseInfo, '.', '_'> mnemonic_tokens = {
#define PSEUDO(mnemonic, base, variant_bits, alg) \ #define PSEUDO(mnemonic, base, variant_bits, alg) \
{ \ { \
mnemonic, { static_cast<size_t>(base) * VARIANT_PERMUTATIONS + (variant_bits), alg } \ mnemonic, \
{ \
static_cast<size_t>(base) * VARIANT_PERMUTATIONS + (variant_bits), alg \
} \
} }
#define PLAIN_PSEUDO(mnemonic, base, alg) PSEUDO(mnemonic, base, PLAIN_MNEMONIC, alg) #define PLAIN_PSEUDO(mnemonic, base, alg) PSEUDO(mnemonic, base, PLAIN_MNEMONIC, alg)
#define RC_PSEUDO(mnemonic, base, alg) \ #define RC_PSEUDO(mnemonic, base, alg) \
@ -673,7 +676,7 @@ extern const CaseInsensitiveDict<ParseInfo, '.', '_', '+', '-'> extended_mnemoni
EMIT_MNEMONIC_ENTRY(opcode_val, ((extra_bits) | InsertVal(0b11, 30, 31)), __VA_ARGS__) EMIT_MNEMONIC_ENTRY(opcode_val, ((extra_bits) | InsertVal(0b11, 30, 31)), __VA_ARGS__)
// Defines all basic mnemonics that Broadway/Gekko supports // Defines all basic mnemonics that Broadway/Gekko supports
extern const std::array<MnemonicDesc, NUM_MNEMONICS* VARIANT_PERMUTATIONS> mnemonics = { extern const std::array<MnemonicDesc, NUM_MNEMONICS * VARIANT_PERMUTATIONS> mnemonics = {
// A-2 // A-2
OERC_MNEMONIC(31, InsertVal(266, 22, 30), OpDesc_D, OpDesc_A, OpDesc_B), // add OERC_MNEMONIC(31, InsertVal(266, 22, 30), OpDesc_D, OpDesc_A, OpDesc_B), // add
OERC_MNEMONIC(31, InsertVal(10, 22, 30), OpDesc_D, OpDesc_A, OpDesc_B), // addc OERC_MNEMONIC(31, InsertVal(10, 22, 30), OpDesc_D, OpDesc_A, OpDesc_B), // addc
@ -1048,7 +1051,10 @@ void FillMfsprBatAndBitswap(OperandList& operands)
} // namespace } // namespace
#define PSEUDO(base, variant_bits, cb) \ #define PSEUDO(base, variant_bits, cb) \
ExtendedMnemonicDesc { static_cast<size_t>(base) * VARIANT_PERMUTATIONS + variant_bits, cb } ExtendedMnemonicDesc \
{ \
static_cast<size_t>(base) * VARIANT_PERMUTATIONS + variant_bits, cb \
}
#define PLAIN_PSEUDO(base, cb) \ #define PLAIN_PSEUDO(base, cb) \
PSEUDO(base, PLAIN_MNEMONIC, cb), INVALID_EXT_MNEMONIC, INVALID_EXT_MNEMONIC, INVALID_EXT_MNEMONIC PSEUDO(base, PLAIN_MNEMONIC, cb), INVALID_EXT_MNEMONIC, INVALID_EXT_MNEMONIC, INVALID_EXT_MNEMONIC
#define RC_PSEUDO(base, cb) \ #define RC_PSEUDO(base, cb) \
@ -1064,7 +1070,7 @@ void FillMfsprBatAndBitswap(OperandList& operands)
PSEUDO(base, PLAIN_MNEMONIC, cb), PSEUDO(base, LINK_BIT, cb), \ PSEUDO(base, PLAIN_MNEMONIC, cb), PSEUDO(base, LINK_BIT, cb), \
PSEUDO(base, ABSOLUTE_ADDRESS_BIT, cb), PSEUDO(base, (LINK_BIT | ABSOLUTE_ADDRESS_BIT), cb) PSEUDO(base, ABSOLUTE_ADDRESS_BIT, cb), PSEUDO(base, (LINK_BIT | ABSOLUTE_ADDRESS_BIT), cb)
extern const std::array<ExtendedMnemonicDesc, NUM_EXT_MNEMONICS* VARIANT_PERMUTATIONS> extern const std::array<ExtendedMnemonicDesc, NUM_EXT_MNEMONICS * VARIANT_PERMUTATIONS>
extended_mnemonics = { extended_mnemonics = {
// E.2.1 // E.2.1
PLAIN_PSEUDO(GekkoMnemonic::Addi, NegateSIMM), // subi PLAIN_PSEUDO(GekkoMnemonic::Addi, NegateSIMM), // subi

View file

@ -26,7 +26,7 @@ static u32 Decode5A3(u16 val)
{ {
r = s_lut5to8[(val >> 10) & 0x1f]; r = s_lut5to8[(val >> 10) & 0x1f];
g = s_lut5to8[(val >> 5) & 0x1f]; g = s_lut5to8[(val >> 5) & 0x1f];
b = s_lut5to8[(val)&0x1f]; b = s_lut5to8[(val) & 0x1f];
a = 0xFF; a = 0xFF;
} }
else else
@ -34,7 +34,7 @@ static u32 Decode5A3(u16 val)
a = s_lut3to8[(val >> 12) & 0x7]; a = s_lut3to8[(val >> 12) & 0x7];
r = (s_lut4to8[(val >> 8) & 0xf] * a + (bg_color & 0xFF) * (255 - a)) / 255; r = (s_lut4to8[(val >> 8) & 0xf] * a + (bg_color & 0xFF) * (255 - a)) / 255;
g = (s_lut4to8[(val >> 4) & 0xf] * a + ((bg_color >> 8) & 0xFF) * (255 - a)) / 255; g = (s_lut4to8[(val >> 4) & 0xf] * a + ((bg_color >> 8) & 0xFF) * (255 - a)) / 255;
b = (s_lut4to8[(val)&0xf] * a + ((bg_color >> 16) & 0xFF) * (255 - a)) / 255; b = (s_lut4to8[(val) & 0xf] * a + ((bg_color >> 16) & 0xFF) * (255 - a)) / 255;
a = 0xFF; a = 0xFF;
} }
return (a << 24) | (r << 16) | (g << 8) | b; return (a << 24) | (r << 16) | (g << 8) | b;

View file

@ -155,6 +155,6 @@ int __cdecl EnableCompatPatches()
// referencing it doesn't require ugly decorated names. // referencing it doesn't require ugly decorated names.
// Use /include:enableCompatPatches linker flag to enable this. // Use /include:enableCompatPatches linker flag to enable this.
extern "C" { extern "C" {
__declspec(allocate(".CRT$XCZ")) decltype(&EnableCompatPatches) __declspec(allocate(".CRT$XCZ")) decltype(&EnableCompatPatches) enableCompatPatches =
enableCompatPatches = EnableCompatPatches; EnableCompatPatches;
} }

View file

@ -11,16 +11,17 @@ namespace Common
struct ContainsFn struct ContainsFn
{ {
template <std::input_iterator I, std::sentinel_for<I> S, class T, class Proj = std::identity> template <std::input_iterator I, std::sentinel_for<I> S, class T, class Proj = std::identity>
requires std::indirect_binary_predicate < std::ranges::equal_to, std::projected<I, Proj>, requires std::indirect_binary_predicate<std::ranges::equal_to, std::projected<I, Proj>,
const T* > constexpr bool operator()(I first, S last, const T& value, Proj proj = {}) const const T*>
constexpr bool operator()(I first, S last, const T& value, Proj proj = {}) const
{ {
return std::ranges::find(std::move(first), last, value, std::move(proj)) != last; return std::ranges::find(std::move(first), last, value, std::move(proj)) != last;
} }
template <std::ranges::input_range R, class T, class Proj = std::identity> template <std::ranges::input_range R, class T, class Proj = std::identity>
requires std::indirect_binary_predicate < std::ranges::equal_to, requires std::indirect_binary_predicate<
std::projected<std::ranges::iterator_t<R>, Proj>, std::ranges::equal_to, std::projected<std::ranges::iterator_t<R>, Proj>, const T*>
const T* > constexpr bool operator()(R&& r, const T& value, Proj proj = {}) const constexpr bool operator()(R&& r, const T& value, Proj proj = {}) const
{ {
return (*this)(std::ranges::begin(r), std::ranges::end(r), value, std::move(proj)); return (*this)(std::ranges::begin(r), std::ranges::end(r), value, std::move(proj));
} }
@ -31,7 +32,7 @@ struct ContainsSubrangeFn
template <std::forward_iterator I1, std::sentinel_for<I1> S1, std::forward_iterator I2, template <std::forward_iterator I1, std::sentinel_for<I1> S1, std::forward_iterator I2,
std::sentinel_for<I2> S2, class Pred = std::ranges::equal_to, std::sentinel_for<I2> S2, class Pred = std::ranges::equal_to,
class Proj1 = std::identity, class Proj2 = std::identity> class Proj1 = std::identity, class Proj2 = std::identity>
requires std::indirectly_comparable<I1, I2, Pred, Proj1, Proj2> requires std::indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
constexpr bool operator()(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = {}, constexpr bool operator()(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = {},
Proj1 proj1 = {}, Proj2 proj2 = {}) const Proj1 proj1 = {}, Proj2 proj2 = {}) const
{ {
@ -44,8 +45,8 @@ struct ContainsSubrangeFn
template <std::ranges::forward_range R1, std::ranges::forward_range R2, template <std::ranges::forward_range R1, std::ranges::forward_range R2,
class Pred = std::ranges::equal_to, class Proj1 = std::identity, class Pred = std::ranges::equal_to, class Proj1 = std::identity,
class Proj2 = std::identity> class Proj2 = std::identity>
requires std::indirectly_comparable<std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>, requires std::indirectly_comparable<std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
Pred, Proj1, Proj2> Pred, Proj1, Proj2>
constexpr bool operator()(R1&& r1, R2&& r2, Pred pred = {}, Proj1 proj1 = {}, constexpr bool operator()(R1&& r1, R2&& r2, Pred pred = {}, Proj1 proj1 = {},
Proj2 proj2 = {}) const Proj2 proj2 = {}) const
{ {

View file

@ -996,41 +996,23 @@ PFNDOLDISPATCHCOMPUTEPROC dolDispatchCompute;
PFNDOLDISPATCHCOMPUTEINDIRECTPROC dolDispatchComputeIndirect; PFNDOLDISPATCHCOMPUTEINDIRECTPROC dolDispatchComputeIndirect;
// Creates a GLFunc object that requires a feature // Creates a GLFunc object that requires a feature
#define GLFUNC_REQUIRES(x, y) \ #define GLFUNC_REQUIRES(x, y) {(void**)&x, #x, y}
{ \
(void**)&x, #x, y \
}
// Creates a GLFunc object with a different function suffix // Creates a GLFunc object with a different function suffix
// For when we want to use the same function pointer, but different function name // For when we want to use the same function pointer, but different function name
#define GLFUNC_SUFFIX(x, y, z) \ #define GLFUNC_SUFFIX(x, y, z) {(void**)&x, #x #y, z}
{ \
(void**)&x, #x #y, z \
}
// Creates a GLFunc object that should always be able to get grabbed // Creates a GLFunc object that should always be able to get grabbed
// Used for Desktop OpenGL functions that should /always/ be provided. // Used for Desktop OpenGL functions that should /always/ be provided.
// aka GL 1.1/1.2/1.3/1.4 // aka GL 1.1/1.2/1.3/1.4
#define GLFUNC_ALWAYS_REQUIRED(x) \ #define GLFUNC_ALWAYS_REQUIRED(x) {(void**)&x, #x, "VERSION_GL"}
{ \
(void**)&x, #x, "VERSION_GL" \
}
// Creates a GLFunc object that should be able to get grabbed // Creates a GLFunc object that should be able to get grabbed
// on both GL and ES // on both GL and ES
#define GL_ES_FUNC_ALWAYS_REQUIRED(x) \ #define GL_ES_FUNC_ALWAYS_REQUIRED(x) {(void**)&x, #x, "VERSION_GL |VERSION_GLES_2"}
{ \
(void**)&x, #x, "VERSION_GL |VERSION_GLES_2" \
}
// Creates a GLFunc object that should be able to get grabbed // Creates a GLFunc object that should be able to get grabbed
// on both GL and ES 3.0 // on both GL and ES 3.0
#define GL_ES3_FUNC_ALWAYS_REQUIRED(x) \ #define GL_ES3_FUNC_ALWAYS_REQUIRED(x) {(void**)&x, #x, "VERSION_GL |VERSION_GLES_3"}
{ \
(void**)&x, #x, "VERSION_GL |VERSION_GLES_3" \
}
// Creates a GLFunc object that should be able to get grabbed // Creates a GLFunc object that should be able to get grabbed
// on both GL and ES 3.2 // on both GL and ES 3.2
#define GL_ES32_FUNC_ALWAYS_REQUIRED(x) \ #define GL_ES32_FUNC_ALWAYS_REQUIRED(x) {(void**)&x, #x, "VERSION_GL |VERSION_GLES_3_2"}
{ \
(void**)&x, #x, "VERSION_GL |VERSION_GLES_3_2" \
}
struct GLFunc struct GLFunc
{ {

View file

@ -73,17 +73,17 @@ namespace Common
#define PPCLSH 21 #define PPCLSH 21
#define PPCIDX2SH 1 #define PPCIDX2SH 1
#define PPCGETIDX(x) (((x)&PPCIDXMASK) >> PPCIDXSH) #define PPCGETIDX(x) (((x) & PPCIDXMASK) >> PPCIDXSH)
#define PPCGETD(x) (((x)&PPCDMASK) >> PPCDSH) #define PPCGETD(x) (((x) & PPCDMASK) >> PPCDSH)
#define PPCGETA(x) (((x)&PPCAMASK) >> PPCASH) #define PPCGETA(x) (((x) & PPCAMASK) >> PPCASH)
#define PPCGETB(x) (((x)&PPCBMASK) >> PPCBSH) #define PPCGETB(x) (((x) & PPCBMASK) >> PPCBSH)
#define PPCGETC(x) (((x)&PPCCMASK) >> PPCCSH) #define PPCGETC(x) (((x) & PPCCMASK) >> PPCCSH)
#define PPCGETM(x) (((x)&PPCMMASK) >> PPCMSH) #define PPCGETM(x) (((x) & PPCMMASK) >> PPCMSH)
#define PPCGETCRD(x) (((x)&PPCCRDMASK) >> PPCCRDSH) #define PPCGETCRD(x) (((x) & PPCCRDMASK) >> PPCCRDSH)
#define PPCGETCRA(x) (((x)&PPCCRAMASK) >> PPCCRASH) #define PPCGETCRA(x) (((x) & PPCCRAMASK) >> PPCCRASH)
#define PPCGETL(x) (((x)&PPCLMASK) >> PPCLSH) #define PPCGETL(x) (((x) & PPCLMASK) >> PPCLSH)
#define PPCGETIDX2(x) (((x)&PPCIDX2MASK) >> PPCIDX2SH) #define PPCGETIDX2(x) (((x) & PPCIDX2MASK) >> PPCIDX2SH)
#define PPCGETSTRM(x) (((x)&PPCSTRM) >> PPCDSH) #define PPCGETSTRM(x) (((x) & PPCSTRM) >> PPCDSH)
constexpr std::array<const char*, 32> trap_condition{ constexpr std::array<const char*, 32> trap_condition{
nullptr, "lgt", "llt", nullptr, "eq", "lge", "lle", nullptr, nullptr, "lgt", "llt", nullptr, "eq", "lge", "lle", nullptr,

View file

@ -73,9 +73,8 @@ void TruncateToCString(std::string* s);
bool TryParse(const std::string& str, bool* output); bool TryParse(const std::string& str, bool* output);
template <typename T> template <typename T>
requires(std::is_integral_v<T> || requires(std::is_integral_v<T> || (std::is_enum_v<T> && !detail::IsBooleanEnum<T>()))
(std::is_enum_v<T> && !detail::IsBooleanEnum<T>())) bool TryParse(const std::string& str, bool TryParse(const std::string& str, T* output, int base = 0)
T* output, int base = 0)
{ {
char* end_ptr = nullptr; char* end_ptr = nullptr;
@ -113,7 +112,8 @@ requires(std::is_integral_v<T> ||
} }
template <typename T> template <typename T>
requires(detail::IsBooleanEnum<T>()) bool TryParse(const std::string& str, T* output) requires(detail::IsBooleanEnum<T>())
bool TryParse(const std::string& str, T* output)
{ {
bool value; bool value;
if (!TryParse(str, &value)) if (!TryParse(str, &value))

View file

@ -239,8 +239,8 @@ struct Elf32_Sym
}; };
#define ELF32_ST_BIND(i) ((i) >> 4) #define ELF32_ST_BIND(i) ((i) >> 4)
#define ELF32_ST_TYPE(i) ((i)&0xf) #define ELF32_ST_TYPE(i) ((i) & 0xf)
#define ELF32_ST_INFO(b, t) (((b) << 4) + ((t)&0xf)) #define ELF32_ST_INFO(b, t) (((b) << 4) + ((t) & 0xf))
// Relocation entries // Relocation entries
struct Elf32_Rel struct Elf32_Rel

View file

@ -589,7 +589,7 @@ static void EmuThread(Core::System& system, std::unique_ptr<BootParameters> boot
system.GetPowerPC().SetMode(PowerPC::CoreMode::Interpreter); system.GetPowerPC().SetMode(PowerPC::CoreMode::Interpreter);
// Determine the CPU thread function // Determine the CPU thread function
void (*cpuThreadFunc)(Core::System & system, const std::optional<std::string>& savestate_path, void (*cpuThreadFunc)(Core::System& system, const std::optional<std::string>& savestate_path,
bool delete_savestate); bool delete_savestate);
if (std::holds_alternative<BootParameters::DFF>(boot->parameters)) if (std::holds_alternative<BootParameters::DFF>(boot->parameters))
cpuThreadFunc = FifoPlayerThread; cpuThreadFunc = FifoPlayerThread;

View file

@ -39,7 +39,7 @@ namespace DSP::Interpreter
// used without changes. When PRECISE_BACKLOG is not defined, ZeroWriteBackLog does nothing and // used without changes. When PRECISE_BACKLOG is not defined, ZeroWriteBackLog does nothing and
// ApplyWriteBackLog overwrites the register value with the value from the backlog (so writes from // ApplyWriteBackLog overwrites the register value with the value from the backlog (so writes from
// extended opcodes "win" over the main opcode). // extended opcodes "win" over the main opcode).
//#define PRECISE_BACKLOG // #define PRECISE_BACKLOG
Interpreter::Interpreter(DSPCore& dsp) : m_dsp_core{dsp} Interpreter::Interpreter(DSPCore& dsp) : m_dsp_core{dsp}
{ {

View file

@ -105,7 +105,7 @@ static Gen::OpArg GetRegisterPointer(size_t reg)
#endif #endif
#define STATIC_REG_ACCS #define STATIC_REG_ACCS
//#undef STATIC_REG_ACCS // #undef STATIC_REG_ACCS
DSPJitRegCache::DSPJitRegCache(DSPEmitter& emitter) : m_emitter(emitter), m_is_temporary(false) DSPJitRegCache::DSPJitRegCache(DSPEmitter& emitter) : m_emitter(emitter), m_is_temporary(false)
{ {

View file

@ -672,7 +672,10 @@ void ZeldaUCode::RenderAudio()
// Utility to define 32 bit accessors/modifiers methods based on two 16 bit // Utility to define 32 bit accessors/modifiers methods based on two 16 bit
// fields named _l and _h. // fields named _l and _h.
#define DEFINE_32BIT_ACCESSOR(field_name, name) \ #define DEFINE_32BIT_ACCESSOR(field_name, name) \
u32 Get##name() const { return (field_name##_h << 16) | field_name##_l; } \ u32 Get##name() const \
{ \
return (field_name##_h << 16) | field_name##_l; \
} \
void Set##name(u32 v) \ void Set##name(u32 v) \
{ \ { \
field_name##_h = v >> 16; \ field_name##_h = v >> 16; \

View file

@ -15,7 +15,7 @@
#include "DiscIO/Enums.h" #include "DiscIO/Enums.h"
// Uncomment this to write the system data of the memorycard from directory to disc // Uncomment this to write the system data of the memorycard from directory to disc
//#define _WRITE_MC_HEADER 1 // #define _WRITE_MC_HEADER 1
void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot, void MigrateFromMemcardFile(const std::string& directory_name, ExpansionInterface::Slot card_slot,
DiscIO::Region region); DiscIO::Region region);

View file

@ -23,7 +23,7 @@ protected:
bool ConnectInternal() override; bool ConnectInternal() override;
void DisconnectInternal() override; void DisconnectInternal() override;
bool IsConnected() const override; bool IsConnected() const override;
void IOWakeup() override{}; void IOWakeup() override {};
int IORead(u8* buf) override; int IORead(u8* buf) override;
int IOWrite(u8 const* buf, size_t len) override; int IOWrite(u8 const* buf, size_t len) override;

View file

@ -399,8 +399,8 @@ constexpr bdaddr_t BDADDR_ANY{};
* and OCF (OpCode Command Field) from OpCode. * and OCF (OpCode Command Field) from OpCode.
*/ */
#define HCI_OPCODE(gf, cf) ((((gf)&0x3f) << 10) | ((cf)&0x3ff)) #define HCI_OPCODE(gf, cf) ((((gf) & 0x3f) << 10) | ((cf) & 0x3ff))
#define HCI_OCF(op) ((op)&0x3ff) #define HCI_OCF(op) ((op) & 0x3ff)
#define HCI_OGF(op) (((op) >> 10) & 0x3f) #define HCI_OGF(op) (((op) >> 10) & 0x3f)
/* /*
@ -408,10 +408,10 @@ constexpr bdaddr_t BDADDR_ANY{};
* PB (Packet boundary) flags. * PB (Packet boundary) flags.
*/ */
#define HCI_CON_HANDLE(h) ((h)&0x0fff) #define HCI_CON_HANDLE(h) ((h) & 0x0fff)
#define HCI_PB_FLAG(h) (((h)&0x3000) >> 12) #define HCI_PB_FLAG(h) (((h) & 0x3000) >> 12)
#define HCI_BC_FLAG(h) (((h)&0xc000) >> 14) #define HCI_BC_FLAG(h) (((h) & 0xc000) >> 14)
#define HCI_MK_CON_HANDLE(h, pb, bc) (((h)&0x0fff) | (((pb)&3) << 12) | (((bc)&3) << 14)) #define HCI_MK_CON_HANDLE(h, pb, bc) (((h) & 0x0fff) | (((pb) & 3) << 12) | (((bc) & 3) << 14))
/* PB flag values */ /* PB flag values */
/* 00 - reserved for future use */ /* 00 - reserved for future use */

View file

@ -125,7 +125,7 @@
/* Transport Protocol */ /* Transport Protocol */
/* 0x0019 - 0x1000 - reserved for future use */ /* 0x0019 - 0x1000 - reserved for future use */
#define L2CAP_PSM_INVALID(psm) (((psm)&0x0101) != 0x0001) #define L2CAP_PSM_INVALID(psm) (((psm) & 0x0101) != 0x0001)
/* L2CAP Connection response command result codes */ /* L2CAP Connection response command result codes */
#define L2CAP_SUCCESS 0x0000 #define L2CAP_SUCCESS 0x0000
@ -151,9 +151,9 @@
/* L2CAP Configuration options */ /* L2CAP Configuration options */
#define L2CAP_OPT_CFLAG_BIT 0x0001 #define L2CAP_OPT_CFLAG_BIT 0x0001
#define L2CAP_OPT_CFLAG(flags) ((flags)&L2CAP_OPT_CFLAG_BIT) #define L2CAP_OPT_CFLAG(flags) ((flags) & L2CAP_OPT_CFLAG_BIT)
#define L2CAP_OPT_HINT_BIT 0x80 #define L2CAP_OPT_HINT_BIT 0x80
#define L2CAP_OPT_HINT(type) ((type)&L2CAP_OPT_HINT_BIT) #define L2CAP_OPT_HINT(type) ((type) & L2CAP_OPT_HINT_BIT)
#define L2CAP_OPT_HINT_MASK 0x7f #define L2CAP_OPT_HINT_MASK 0x7f
#define L2CAP_OPT_MTU 0x01 #define L2CAP_OPT_MTU 0x01
#define L2CAP_OPT_MTU_SIZE sizeof(uint16_t) #define L2CAP_OPT_MTU_SIZE sizeof(uint16_t)

View file

@ -177,8 +177,8 @@ constexpr std::array<u8, 256> s_key_codes_azerty{};
} // Anonymous namespace } // Anonymous namespace
USB_KBD::MessageData::MessageData(MessageType type, u8 modifiers_, PressedKeyData pressed_keys_) USB_KBD::MessageData::MessageData(MessageType type, u8 modifiers_, PressedKeyData pressed_keys_)
: msg_type{Common::swap32(static_cast<u32>(type))}, modifiers{modifiers_}, pressed_keys{ : msg_type{Common::swap32(static_cast<u32>(type))}, modifiers{modifiers_},
pressed_keys_} pressed_keys{pressed_keys_}
{ {
} }

View file

@ -230,8 +230,7 @@ Expression::Expression(std::string_view text, ExprPointer ex, ExprVarListPointer
: m_text(text), m_expr(std::move(ex)), m_vars(std::move(vars)) : m_text(text), m_expr(std::move(ex)), m_vars(std::move(vars))
{ {
using LookupKV = std::pair<std::string_view, Expression::VarBinding>; using LookupKV = std::pair<std::string_view, Expression::VarBinding>;
static constexpr auto sorted_lookup = []() consteval static constexpr auto sorted_lookup = []() consteval {
{
using enum Expression::VarBindingType; using enum Expression::VarBindingType;
auto unsorted_lookup = std::to_array<LookupKV>({ auto unsorted_lookup = std::to_array<LookupKV>({
{"r0", {GPR, 0}}, {"r0", {GPR, 0}},
@ -385,8 +384,7 @@ Expression::Expression(std::string_view text, ExprPointer ex, ExprVarListPointer
}); });
std::ranges::sort(unsorted_lookup, {}, &LookupKV::first); std::ranges::sort(unsorted_lookup, {}, &LookupKV::first);
return unsorted_lookup; return unsorted_lookup;
} }();
();
static_assert(std::ranges::adjacent_find(sorted_lookup, {}, &LookupKV::first) == static_assert(std::ranges::adjacent_find(sorted_lookup, {}, &LookupKV::first) ==
sorted_lookup.end(), sorted_lookup.end(),
"Expression: Sorted lookup should not contain duplicate keys."); "Expression: Sorted lookup should not contain duplicate keys.");

View file

@ -217,7 +217,7 @@ void Interpreter::SingleStep()
} }
} }
//#define SHOW_HISTORY // #define SHOW_HISTORY
#ifdef SHOW_HISTORY #ifdef SHOW_HISTORY
static std::vector<u32> s_pc_vec; static std::vector<u32> s_pc_vec;
static std::vector<u32> s_pc_block_vec; static std::vector<u32> s_pc_block_vec;

View file

@ -337,8 +337,7 @@ constexpr std::array<InterpreterOpTemplate, 10> s_table63_2{{
{31, Interpreter::fnmaddx}, // fnmaddx {31, Interpreter::fnmaddx}, // fnmaddx
}}; }};
constexpr std::array<Interpreter::Instruction, 64> s_interpreter_op_table = []() consteval constexpr std::array<Interpreter::Instruction, 64> s_interpreter_op_table = []() consteval {
{
std::array<Interpreter::Instruction, 64> table{}; std::array<Interpreter::Instruction, 64> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
for (auto& tpl : s_primary_table) for (auto& tpl : s_primary_table)
@ -347,10 +346,8 @@ constexpr std::array<Interpreter::Instruction, 64> s_interpreter_op_table = []()
table[tpl.opcode] = tpl.fn; table[tpl.opcode] = tpl.fn;
}; };
return table; return table;
} }();
(); constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table4 = []() consteval {
constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table4 = []() consteval
{
std::array<Interpreter::Instruction, 1024> table{}; std::array<Interpreter::Instruction, 1024> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
@ -384,10 +381,8 @@ constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table4 = [
} }
return table; return table;
} }();
(); constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table19 = []() consteval {
constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table19 = []() consteval
{
std::array<Interpreter::Instruction, 1024> table{}; std::array<Interpreter::Instruction, 1024> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
for (auto& tpl : s_table19) for (auto& tpl : s_table19)
@ -396,10 +391,8 @@ constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table19 =
table[tpl.opcode] = tpl.fn; table[tpl.opcode] = tpl.fn;
}; };
return table; return table;
} }();
(); constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table31 = []() consteval {
constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table31 = []() consteval
{
std::array<Interpreter::Instruction, 1024> table{}; std::array<Interpreter::Instruction, 1024> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
for (auto& tpl : s_table31) for (auto& tpl : s_table31)
@ -408,10 +401,8 @@ constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table31 =
table[tpl.opcode] = tpl.fn; table[tpl.opcode] = tpl.fn;
}; };
return table; return table;
} }();
(); constexpr std::array<Interpreter::Instruction, 32> s_interpreter_op_table59 = []() consteval {
constexpr std::array<Interpreter::Instruction, 32> s_interpreter_op_table59 = []() consteval
{
std::array<Interpreter::Instruction, 32> table{}; std::array<Interpreter::Instruction, 32> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
for (auto& tpl : s_table59) for (auto& tpl : s_table59)
@ -420,10 +411,8 @@ constexpr std::array<Interpreter::Instruction, 32> s_interpreter_op_table59 = []
table[tpl.opcode] = tpl.fn; table[tpl.opcode] = tpl.fn;
}; };
return table; return table;
} }();
(); constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table63 = []() consteval {
constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table63 = []() consteval
{
std::array<Interpreter::Instruction, 1024> table{}; std::array<Interpreter::Instruction, 1024> table{};
table.fill(Interpreter::unknown_instruction); table.fill(Interpreter::unknown_instruction);
for (auto& tpl : s_table63) for (auto& tpl : s_table63)
@ -444,8 +433,7 @@ constexpr std::array<Interpreter::Instruction, 1024> s_interpreter_op_table63 =
} }
return table; return table;
} }();
();
Interpreter::Instruction Interpreter::GetInterpreterOp(UGeckoInstruction inst) Interpreter::Instruction Interpreter::GetInterpreterOp(UGeckoInstruction inst)
{ {

View file

@ -335,8 +335,7 @@ constexpr std::array<Jit64OpTemplate, 10> s_table63_2{{
{31, &Jit64::fmaddXX}, // fnmaddx {31, &Jit64::fmaddXX}, // fnmaddx
}}; }};
constexpr std::array<Jit64::Instruction, 64> s_dyna_op_table = []() consteval constexpr std::array<Jit64::Instruction, 64> s_dyna_op_table = []() consteval {
{
std::array<Jit64::Instruction, 64> table{}; std::array<Jit64::Instruction, 64> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -347,11 +346,9 @@ constexpr std::array<Jit64::Instruction, 64> s_dyna_op_table = []() consteval
} }
return table; return table;
} }();
();
constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table4 = []() consteval constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table4 = []() consteval {
{
std::array<Jit64::Instruction, 1024> table{}; std::array<Jit64::Instruction, 1024> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -385,11 +382,9 @@ constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table4 = []() consteval
} }
return table; return table;
} }();
();
constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table19 = []() consteval constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table19 = []() consteval {
{
std::array<Jit64::Instruction, 1024> table{}; std::array<Jit64::Instruction, 1024> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -400,11 +395,9 @@ constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table19 = []() consteva
} }
return table; return table;
} }();
();
constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table31 = []() consteval constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table31 = []() consteval {
{
std::array<Jit64::Instruction, 1024> table{}; std::array<Jit64::Instruction, 1024> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -415,11 +408,9 @@ constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table31 = []() consteva
} }
return table; return table;
} }();
();
constexpr std::array<Jit64::Instruction, 32> s_dyna_op_table59 = []() consteval constexpr std::array<Jit64::Instruction, 32> s_dyna_op_table59 = []() consteval {
{
std::array<Jit64::Instruction, 32> table{}; std::array<Jit64::Instruction, 32> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -430,11 +421,9 @@ constexpr std::array<Jit64::Instruction, 32> s_dyna_op_table59 = []() consteval
} }
return table; return table;
} }();
();
constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table63 = []() consteval constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table63 = []() consteval {
{
std::array<Jit64::Instruction, 1024> table{}; std::array<Jit64::Instruction, 1024> table{};
table.fill(&Jit64::FallBackToInterpreter); table.fill(&Jit64::FallBackToInterpreter);
@ -456,8 +445,7 @@ constexpr std::array<Jit64::Instruction, 1024> s_dyna_op_table63 = []() consteva
} }
return table; return table;
} }();
();
} // Anonymous namespace } // Anonymous namespace

View file

@ -335,8 +335,7 @@ constexpr std::array<JitArm64OpTemplate, 10> s_table63_2{{
{31, &JitArm64::fp_arith}, // fnmaddx {31, &JitArm64::fp_arith}, // fnmaddx
}}; }};
constexpr std::array<JitArm64::Instruction, 64> s_dyna_op_table = []() consteval constexpr std::array<JitArm64::Instruction, 64> s_dyna_op_table = []() consteval {
{
std::array<JitArm64::Instruction, 64> table{}; std::array<JitArm64::Instruction, 64> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -347,11 +346,9 @@ constexpr std::array<JitArm64::Instruction, 64> s_dyna_op_table = []() consteval
} }
return table; return table;
} }();
();
constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table4 = []() consteval constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table4 = []() consteval {
{
std::array<JitArm64::Instruction, 1024> table{}; std::array<JitArm64::Instruction, 1024> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -385,11 +382,9 @@ constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table4 = []() conste
} }
return table; return table;
} }();
();
constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table19 = []() consteval constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table19 = []() consteval {
{
std::array<JitArm64::Instruction, 1024> table{}; std::array<JitArm64::Instruction, 1024> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -400,11 +395,9 @@ constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table19 = []() const
} }
return table; return table;
} }();
();
constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table31 = []() consteval constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table31 = []() consteval {
{
std::array<JitArm64::Instruction, 1024> table{}; std::array<JitArm64::Instruction, 1024> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -415,11 +408,9 @@ constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table31 = []() const
} }
return table; return table;
} }();
();
constexpr std::array<JitArm64::Instruction, 32> s_dyna_op_table59 = []() consteval constexpr std::array<JitArm64::Instruction, 32> s_dyna_op_table59 = []() consteval {
{
std::array<JitArm64::Instruction, 32> table{}; std::array<JitArm64::Instruction, 32> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -430,11 +421,9 @@ constexpr std::array<JitArm64::Instruction, 32> s_dyna_op_table59 = []() constev
} }
return table; return table;
} }();
();
constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table63 = []() consteval constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table63 = []() consteval {
{
std::array<JitArm64::Instruction, 1024> table{}; std::array<JitArm64::Instruction, 1024> table{};
table.fill(&JitArm64::FallBackToInterpreter); table.fill(&JitArm64::FallBackToInterpreter);
@ -456,8 +445,7 @@ constexpr std::array<JitArm64::Instruction, 1024> s_dyna_op_table63 = []() const
} }
return table; return table;
} }();
();
} // Anonymous namespace } // Anonymous namespace

View file

@ -36,9 +36,9 @@ struct PowerPCState;
} // namespace PowerPC } // namespace PowerPC
class PPCSymbolDB; class PPCSymbolDB;
//#define JIT_LOG_GENERATED_CODE // Enables logging of generated code // #define JIT_LOG_GENERATED_CODE // Enables logging of generated code
//#define JIT_LOG_GPR // Enables logging of the PPC general purpose regs // #define JIT_LOG_GPR // Enables logging of the PPC general purpose regs
//#define JIT_LOG_FPR // Enables logging of the PPC floating point regs // #define JIT_LOG_FPR // Enables logging of the PPC floating point regs
// Use these to control the instruction selection // Use these to control the instruction selection
// #define INSTRUCTION_START FallBackToInterpreter(inst); return; // #define INSTRUCTION_START FallBackToInterpreter(inst); return;

View file

@ -507,13 +507,11 @@ struct Tables
static std::array<GekkoOPStats, TOTAL_INSTRUCTION_COUNT> s_all_instructions_stats; static std::array<GekkoOPStats, TOTAL_INSTRUCTION_COUNT> s_all_instructions_stats;
constexpr Tables s_tables = []() consteval constexpr Tables s_tables = []() consteval {
{
Tables tables{}; Tables tables{};
u32 counter = 0; u32 counter = 0;
auto make_info = [&](const GekkoOPTemplate& inst) consteval->u32 auto make_info = [&](const GekkoOPTemplate& inst) consteval -> u32 {
{
ASSERT(counter < TOTAL_INSTRUCTION_COUNT); ASSERT(counter < TOTAL_INSTRUCTION_COUNT);
GekkoOPInfo* info = &tables.all_instructions[counter]; GekkoOPInfo* info = &tables.all_instructions[counter];
info->opname = inst.opname; info->opname = inst.opname;
@ -609,8 +607,7 @@ constexpr Tables s_tables = []() consteval
ASSERT(counter == TOTAL_INSTRUCTION_COUNT); ASSERT(counter == TOTAL_INSTRUCTION_COUNT);
return tables; return tables;
} }();
();
const GekkoOPInfo* GetOpInfo(UGeckoInstruction inst, u32 pc) const GekkoOPInfo* GetOpInfo(UGeckoInstruction inst, u32 pc)
{ {

View file

@ -1166,7 +1166,7 @@ void DirectoryBlobPartition::WriteEntryData(std::vector<u8>* fst_data, u32* entr
(*fst_data)[(*entry_offset)++] = (name_offset >> 16) & 0xff; (*fst_data)[(*entry_offset)++] = (name_offset >> 16) & 0xff;
(*fst_data)[(*entry_offset)++] = (name_offset >> 8) & 0xff; (*fst_data)[(*entry_offset)++] = (name_offset >> 8) & 0xff;
(*fst_data)[(*entry_offset)++] = (name_offset)&0xff; (*fst_data)[(*entry_offset)++] = (name_offset) & 0xff;
Write32((u32)(data_offset >> address_shift), *entry_offset, fst_data); Write32((u32)(data_offset >> address_shift), *entry_offset, fst_data);
*entry_offset += 4; *entry_offset += 4;

View file

@ -209,23 +209,22 @@ int main(int argc, char* argv[])
parser->add_option("-p", "--platform") parser->add_option("-p", "--platform")
.action("store") .action("store")
.help("Window platform to use [%choices]") .help("Window platform to use [%choices]")
.choices({ .choices({"headless"
"headless"
#ifdef __linux__ #ifdef __linux__
, ,
"fbdev" "fbdev"
#endif #endif
#if HAVE_X11 #if HAVE_X11
, ,
"x11" "x11"
#endif #endif
#ifdef _WIN32 #ifdef _WIN32
, ,
"win32" "win32"
#endif #endif
#ifdef __APPLE__ #ifdef __APPLE__
, ,
"macos" "macos"
#endif #endif
}); });

View file

@ -90,7 +90,7 @@ protected:
return Config::Get(setting); return Config::Get(setting);
} }
virtual void OnConfigChanged(){}; virtual void OnConfigChanged() {};
private: private:
bool IsConfigLocal() const bool IsConfigLocal() const

View file

@ -80,19 +80,19 @@ public:
[[noreturn]] void setSourceModel(QAbstractItemModel* source_model) override { Crash(); } [[noreturn]] void setSourceModel(QAbstractItemModel* source_model) override { Crash(); }
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override; bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
template <bool BranchWatchProxyModel::*member> template <bool BranchWatchProxyModel::* member>
void OnToggled(bool enabled) void OnToggled(bool enabled)
{ {
this->*member = enabled; this->*member = enabled;
invalidateRowsFilter(); invalidateRowsFilter();
} }
template <QString BranchWatchProxyModel::*member> template <QString BranchWatchProxyModel::* member>
void OnSymbolTextChanged(const QString& text) void OnSymbolTextChanged(const QString& text)
{ {
this->*member = text; this->*member = text;
invalidateRowsFilter(); invalidateRowsFilter();
} }
template <std::optional<u32> BranchWatchProxyModel::*member> template <std::optional<u32> BranchWatchProxyModel::* member>
void OnAddressTextChanged(const QString& text) void OnAddressTextChanged(const QString& text)
{ {
bool ok = false; bool ok = false;

View file

@ -62,7 +62,7 @@ public:
// Always connected slots (external signals) // Always connected slots (external signals)
void OnSymbolTextChanged(const QString& text); void OnSymbolTextChanged(const QString& text);
template <std::optional<u32> JitBlockProxyModel::*member> template <std::optional<u32> JitBlockProxyModel::* member>
void OnAddressTextChanged(const QString& text); void OnAddressTextChanged(const QString& text);
private: private:
@ -81,7 +81,7 @@ void JitBlockProxyModel::OnSymbolTextChanged(const QString& text)
invalidateRowsFilter(); invalidateRowsFilter();
} }
template <std::optional<u32> JitBlockProxyModel::*member> template <std::optional<u32> JitBlockProxyModel::* member>
void JitBlockProxyModel::OnAddressTextChanged(const QString& text) void JitBlockProxyModel::OnAddressTextChanged(const QString& text)
{ {
bool ok = false; bool ok = false;

View file

@ -51,9 +51,8 @@ GameTracker::GameTracker(QObject* parent) : QFileSystemWatcher(parent)
} }
}); });
connect(&Settings::Instance(), &Settings::MetadataRefreshRequested, this, [this] { connect(&Settings::Instance(), &Settings::MetadataRefreshRequested, this,
m_load_thread.EmplaceItem(Command{CommandType::UpdateMetadata, {}}); [this] { m_load_thread.EmplaceItem(Command{CommandType::UpdateMetadata, {}}); });
});
m_load_thread.Reset("GameList Tracker", [this](Command command) { m_load_thread.Reset("GameList Tracker", [this](Command command) {
switch (command.type) switch (command.type)

View file

@ -70,7 +70,7 @@ auto RunOnObject(QObject* object, F&& functor)
} }
template <typename Base, typename Type, typename Receiver> template <typename Base, typename Type, typename Receiver>
auto RunOnObject(Receiver* obj, Type Base::*func) auto RunOnObject(Receiver* obj, Type Base::* func)
{ {
return RunOnObject(obj, [obj, func] { return (obj->*func)(); }); return RunOnObject(obj, [obj, func] { return (obj->*func)(); });
} }

View file

@ -62,7 +62,7 @@ static constexpr std::array wgi_button_names = {
template <typename T, typename M> template <typename T, typename M>
struct MemberName struct MemberName
{ {
M T::*ptr; M T::* ptr;
const char* name; const char* name;
}; };

View file

@ -906,7 +906,10 @@ static void EncodeRGB8(u8* dst, const u8* src, EFBCopyFormat format, bool yuv)
case EFBCopyFormat::A8: case EFBCopyFormat::A8:
SetBlockDimensions(3, 2, &sBlkCount, &tBlkCount, &sBlkSize, &tBlkSize); SetBlockDimensions(3, 2, &sBlkCount, &tBlkCount, &sBlkSize, &tBlkSize);
SetSpans(sBlkSize, tBlkSize, &tSpan, &sBlkSpan, &tBlkSpan, &writeStride); SetSpans(sBlkSize, tBlkSize, &tSpan, &sBlkSpan, &tBlkSpan, &writeStride);
ENCODE_LOOP_BLOCKS { *dst++ = 0xff; } ENCODE_LOOP_BLOCKS
{
*dst++ = 0xff;
}
ENCODE_LOOP_SPANS ENCODE_LOOP_SPANS
break; break;
@ -1135,7 +1138,10 @@ static void EncodeRGB8halfscale(u8* dst, const u8* src, EFBCopyFormat format, bo
case EFBCopyFormat::A8: case EFBCopyFormat::A8:
SetBlockDimensions(3, 2, &sBlkCount, &tBlkCount, &sBlkSize, &tBlkSize); SetBlockDimensions(3, 2, &sBlkCount, &tBlkCount, &sBlkSize, &tBlkSize);
SetSpans(sBlkSize, tBlkSize, &tSpan, &sBlkSpan, &tBlkSpan, &writeStride); SetSpans(sBlkSize, tBlkSize, &tSpan, &sBlkSpan, &tBlkSpan, &writeStride);
ENCODE_LOOP_BLOCKS { *dst++ = 0xff; } ENCODE_LOOP_BLOCKS
{
*dst++ = 0xff;
}
ENCODE_LOOP_SPANS ENCODE_LOOP_SPANS
break; break;

View file

@ -319,7 +319,7 @@ static inline u32 DecodePixel_RGB565(u16 val)
int r, g, b, a; int r, g, b, a;
r = Convert5To8((val >> 11) & 0x1f); r = Convert5To8((val >> 11) & 0x1f);
g = Convert6To8((val >> 5) & 0x3f); g = Convert6To8((val >> 5) & 0x3f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }
@ -331,7 +331,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
{ {
r = Convert5To8((val >> 10) & 0x1f); r = Convert5To8((val >> 10) & 0x1f);
g = Convert5To8((val >> 5) & 0x1f); g = Convert5To8((val >> 5) & 0x1f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
} }
else else
@ -339,7 +339,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
a = Convert3To8((val >> 12) & 0x7); a = Convert3To8((val >> 12) & 0x7);
r = Convert4To8((val >> 8) & 0xf); r = Convert4To8((val >> 8) & 0xf);
g = Convert4To8((val >> 4) & 0xf); g = Convert4To8((val >> 4) & 0xf);
b = Convert4To8((val)&0xf); b = Convert4To8((val) & 0xf);
} }
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }

View file

@ -31,7 +31,7 @@ static inline u32 DecodePixel_RGB565(u16 val)
int r, g, b, a; int r, g, b, a;
r = Convert5To8((val >> 11) & 0x1f); r = Convert5To8((val >> 11) & 0x1f);
g = Convert6To8((val >> 5) & 0x3f); g = Convert6To8((val >> 5) & 0x3f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }
@ -43,7 +43,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
{ {
r = Convert5To8((val >> 10) & 0x1f); r = Convert5To8((val >> 10) & 0x1f);
g = Convert5To8((val >> 5) & 0x1f); g = Convert5To8((val >> 5) & 0x1f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
} }
else else
@ -51,7 +51,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
a = Convert3To8((val >> 12) & 0x7); a = Convert3To8((val >> 12) & 0x7);
r = Convert4To8((val >> 8) & 0xf); r = Convert4To8((val >> 8) & 0xf);
g = Convert4To8((val >> 4) & 0xf); g = Convert4To8((val >> 4) & 0xf);
b = Convert4To8((val)&0xf); b = Convert4To8((val) & 0xf);
} }
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }

View file

@ -37,7 +37,7 @@ static inline u32 DecodePixel_RGB565(u16 val)
int r, g, b, a; int r, g, b, a;
r = Convert5To8((val >> 11) & 0x1f); r = Convert5To8((val >> 11) & 0x1f);
g = Convert6To8((val >> 5) & 0x3f); g = Convert6To8((val >> 5) & 0x3f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }
@ -49,7 +49,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
{ {
r = Convert5To8((val >> 10) & 0x1f); r = Convert5To8((val >> 10) & 0x1f);
g = Convert5To8((val >> 5) & 0x1f); g = Convert5To8((val >> 5) & 0x1f);
b = Convert5To8((val)&0x1f); b = Convert5To8((val) & 0x1f);
a = 0xFF; a = 0xFF;
} }
else else
@ -57,7 +57,7 @@ static inline u32 DecodePixel_RGB5A3(u16 val)
a = Convert3To8((val >> 12) & 0x7); a = Convert3To8((val >> 12) & 0x7);
r = Convert4To8((val >> 8) & 0xf); r = Convert4To8((val >> 8) & 0xf);
g = Convert4To8((val >> 4) & 0xf); g = Convert4To8((val >> 4) & 0xf);
b = Convert4To8((val)&0xf); b = Convert4To8((val) & 0xf);
} }
return r | (g << 8) | (b << 16) | (a << 24); return r | (g << 8) | (b << 16) | (a << 24);
} }

View file

@ -73,9 +73,9 @@ public:
protected: protected:
VertexLoaderBase(const TVtxDesc& vtx_desc, const VAT& vtx_attr) VertexLoaderBase(const TVtxDesc& vtx_desc, const VAT& vtx_attr)
: m_vertex_size{GetVertexSize(vtx_desc, vtx_attr)}, m_native_components{GetVertexComponents( : m_vertex_size{GetVertexSize(vtx_desc, vtx_attr)},
vtx_desc, vtx_attr)}, m_native_components{GetVertexComponents(vtx_desc, vtx_attr)}, m_VtxAttr{vtx_attr},
m_VtxAttr{vtx_attr}, m_VtxDesc{vtx_desc} m_VtxDesc{vtx_desc}
{ {
} }

View file

@ -34,8 +34,7 @@ private:
using SizeTable = EnumMap<EnumMap<u32, ColorFormat::RGBA8888>, VertexComponentFormat::Index16>; using SizeTable = EnumMap<EnumMap<u32, ColorFormat::RGBA8888>, VertexComponentFormat::Index16>;
static constexpr SizeTable s_table_size = []() consteval static constexpr SizeTable s_table_size = []() consteval {
{
SizeTable table{}; SizeTable table{};
using VCF = VertexComponentFormat; using VCF = VertexComponentFormat;
@ -45,6 +44,5 @@ private:
table[VCF::Index16] = {2u, 2u, 2u, 2u, 2u, 2u}; table[VCF::Index16] = {2u, 2u, 2u, 2u, 2u, 2u};
return table; return table;
} }();
();
}; };

View file

@ -31,8 +31,7 @@ private:
2>, 2>,
VertexComponentFormat::Index16>; VertexComponentFormat::Index16>;
static constexpr SizeTable s_table_size = []() consteval static constexpr SizeTable s_table_size = []() consteval {
{
SizeTable table{}; SizeTable table{};
using VCF = VertexComponentFormat; using VCF = VertexComponentFormat;
@ -145,6 +144,5 @@ private:
table[VCF::Index16][true][NCC::NTB][FMT::InvalidFloat7] = 6; table[VCF::Index16][true][NCC::NTB][FMT::InvalidFloat7] = 6;
return table; return table;
} }();
();
}; };

View file

@ -30,8 +30,7 @@ private:
EnumMap<EnumMap<EnumMap<u32, CoordComponentCount::XYZ>, ComponentFormat::InvalidFloat7>, EnumMap<EnumMap<EnumMap<u32, CoordComponentCount::XYZ>, ComponentFormat::InvalidFloat7>,
VertexComponentFormat::Index16>; VertexComponentFormat::Index16>;
static constexpr SizeTable s_table_size = []() consteval static constexpr SizeTable s_table_size = []() consteval {
{
SizeTable table{}; SizeTable table{};
using VCF = VertexComponentFormat; using VCF = VertexComponentFormat;
@ -65,6 +64,5 @@ private:
table[VCF::Index16][FMT::InvalidFloat7] = {2, 2}; table[VCF::Index16][FMT::InvalidFloat7] = {2, 2};
return table; return table;
} }();
();
}; };

View file

@ -33,8 +33,7 @@ private:
EnumMap<EnumMap<EnumMap<u32, TexComponentCount::ST>, ComponentFormat::InvalidFloat7>, EnumMap<EnumMap<EnumMap<u32, TexComponentCount::ST>, ComponentFormat::InvalidFloat7>,
VertexComponentFormat::Index16>; VertexComponentFormat::Index16>;
static constexpr SizeTable s_table_size = []() consteval static constexpr SizeTable s_table_size = []() consteval {
{
SizeTable table{}; SizeTable table{};
using VCF = VertexComponentFormat; using VCF = VertexComponentFormat;
@ -68,6 +67,5 @@ private:
table[VCF::Index16][FMT::InvalidFloat7] = {2, 2}; table[VCF::Index16][FMT::InvalidFloat7] = {2, 2};
return table; return table;
} }();
();
}; };