mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:57:44 +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
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…
Add table
Add a link
Reference in a new issue