summaryrefslogtreecommitdiffstats
path: root/src/common/fixed_point.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-02-14don't use static inside constexpr functionarades791-6/+6
Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation where possiblearades791-6/+6
Signed-off-by: arades79 <scravers@protonmail.com>
2022-10-18fixed_point: Mark default constructor as constexprLioncash1-2/+2
Ensures that a fixed-point value is always initialized This likely also fixes several cases of uninitialized values being operated on, since we have multiple areas in the codebase where the default constructor is being used like: Common::FixedPoint<50, 14> current_sample{}; and is then followed up with an arithmetic operation like += or something else, which operates directly on FixedPoint's internal data member, which would previously be uninitialized.
2022-10-18fixed_point: Mark copy/move assignment operators and constructors as constexprLioncash1-3/+6
Given these are just moving a raw value around, these can sensibly be made constexpr to make the interface more useful.
2022-10-18fixed_point: Mark std::swap and move constructor as noexceptLioncash1-2/+2
These shouldn't throw and can influence how some standard algorithms will work.
2022-10-18fixed_point: Mark relevant member function [[nodiscard]]Lioncash1-14/+14
Marks member functions as discard, where ignoring the return value would be indicative of a bug or dead code.
2022-10-18fixed_point: Make to_uint() non-constLioncash1-2/+2
This calls round_up(), which is a non-const member function, so if a fixed-point instantiation ever calls to_uint(), it'll result in a compiler error. This allows the member function to work. While we're at it, we can actually mark to_long_floor() as const, since it's not modifying any member state.
2022-10-18fixed_point: Use defaulted comparisonsLioncash1-23/+1
Collapses all of the comparison functions down to a single line.
2022-10-18fixed_point: Use variable templates and concepts where applicableLioncash1-72/+48
Makes a few things a little less noisy and removes the need for SFINAE in quite a few functions.
2022-10-17fixed_point: Replace CONSTEXPR14 with constexprMorph1-50/+42
As we require the latest C++ standards to compile yuzu, checking for C++14 constexpr is not needed.
2022-10-17general: Add missing pragma onceMorph1-4/+1
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-23/+3
[REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-22Project AndioKelebek11-0/+726