diff --git a/Userland/Libraries/LibGfx/FourCC.h b/Userland/Libraries/LibGfx/FourCC.h index 2b2bdb9a3a..6747cc33d8 100644 --- a/Userland/Libraries/LibGfx/FourCC.h +++ b/Userland/Libraries/LibGfx/FourCC.h @@ -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(cc[0]) << 24) + | (static_cast(cc[1]) << 16) + | (static_cast(cc[2]) << 8) + | static_cast(cc[3]); + } + char cc[4]; };