Refactored to pre-calculate the game list row colors at the beginning of the function. If the background color is almost white as it is on Windows, we'll use the previous bluish secondary color instead of grey-scale lightness adjustment.
This broke while refactoring code for the 2.0 release. Resolves Tokyo Mirage Session and Pokken freezing on boot. Probably also affects some other games
Also updated .gitignore
Fixed various issues related to title names:
1. If console language is set to non-English, the title names in Title Manager may be empty.
2. Game list do not show custom names if list style set to icon or small icon.
3. Custom title names for some languages (like JP or CN) appear confusing if re-edited.
4. Unexpected overrides of variable values in ParsedMetaXml.h
The icon view was all broken from having entries inserted with non
loaded icons, resulting in a layout that had the wrong size and no
obvious way to trigger a resizing without incurring a costly window
redraw.
Solution: When the icon is not yet loaded insert a transparent
placeholder icon.
std::is_same_v<decltype(0LL), int64_t> does not evaluate the same on
Linux Clang and MSVC. MSVC returns true but Clang and GCC both returns
false resulting in failing to read the game id from the XML file and
therefore rebuilding the cache.
Solution: Don't rely on the type of 0LL and 0ULL literals but explicitly
provide the type of the field we are trying to read.
2.0 introduced a race condition where the shader cache loading screen could load shaders before the graphic packs finished activating, potentially bypassing custom shaders.
Also removed legacy GraphicPack interface (GraphicPack.cpp/.h) since it was only kept around for Cemuhook and removed u8string variant of cemuLog_force since it's no longer used
* Make PPC threads/texture cache info window columns untranslatable
* Make several window titles translatable
* Make About window text translatable
* Fix <profile name> placeholder not being recognized as translatable
* Miscellaneous improvements to GUI strings
* Add a few missing entries to gitignore
* Adjust Italian translation of Linux files
- Fix target_precompile_headers() usage; the CemuCommon target exposes
the src/Common/precompiled.h precompiled header as part of its public
interface with
target_precompile_headers(CemuCommon PUBLIC precompiled.h), so all the
other targets wanting to use the precompiled header have to link to
the CemuCommon target with
target_precompile_headers(TargetName PRIVATE CemuCommon).
- Set the project version to 2.0
- Set RUNTIME_OUTPUT_DIRECTORY instead of only their _DEBUG and _RELEASE
variants, fixing the compilation when neither build types are defined
- Use a consistent indentation style (tabs, like in the .cpp files)
- Use "modern" variants of some functions, e.g. add_definitions ->
add_compile_definitions
Also adds some code for enabling multi-user support inside apps maybe, but it's probably hardcoded in more places since Cemu currently only shows the active account.
This is just a quick fix. In the future we can look into avoiding hardcoded firmware version numbers. On the console it gets read from some system file
* Update OpenSSL hash functions to OpenSSL 3.0
* Fix invalid sscanf format in DownloadManager
* Fix unset return value warning
* Fix erroneous check on otpMem in iosu_crypto
Doesn't seem like there's a way to bypass the need for default values in their API, and since their versions doesn't seem to be reliable enough to know whether maxDualSourceDrawBuffersEXT exists. This way it's default initialized to 0 which is fine for Cemu.
The previous implementation used an std::stringstream to concatenate
the generated random string.
The new one uses a simple preallocated std::string, as the size of the
output is already known - it is the length parameter.
It also uses std::generate_n() instead of an explicit loop, making the
code more concise and potentially faster, as no calls to
std::string::operator+= are needed.
Calling GenerateRandomString(1'000'000) with the std::stringstream-based
implementation allocated 16 times, for a total of 3'173'516 bytes.
The new one cuts this down to 4 allocs, for a total of 1'076'864 bytes.