mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibGfx: Make FourCC more useful
A few small changes that didn't seem to deserve separate commits: - Mark it as packed to remove compiler complaints when it's a member of a packed struct. - Add a default constructor for places where we fill in a struct gradually. - Restrict the constructor to exactly 4-character string literals. - Add a to_u32() method for the one place that needs that.
This commit is contained in:
parent
2c24192e1f
commit
0423225290
Notes:
sideshowbarker
2024-07-17 04:34:25 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/0423225290 Pull-request: https://github.com/SerenityOS/serenity/pull/22004
1 changed files with 12 additions and 2 deletions
|
@ -8,8 +8,10 @@
|
|||
|
||||
namespace Gfx {
|
||||
|
||||
struct FourCC {
|
||||
constexpr FourCC(char const* name)
|
||||
struct [[gnu::packed]] FourCC {
|
||||
FourCC() = default;
|
||||
|
||||
constexpr FourCC(char const name[4])
|
||||
{
|
||||
cc[0] = name[0];
|
||||
cc[1] = name[1];
|
||||
|
@ -20,6 +22,14 @@ struct FourCC {
|
|||
bool operator==(FourCC const&) const = default;
|
||||
bool operator!=(FourCC const&) const = default;
|
||||
|
||||
u32 to_u32() const
|
||||
{
|
||||
return (static_cast<u8>(cc[0]) << 24)
|
||||
| (static_cast<u8>(cc[1]) << 16)
|
||||
| (static_cast<u8>(cc[2]) << 8)
|
||||
| static_cast<u8>(cc[3]);
|
||||
}
|
||||
|
||||
char cc[4];
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue