From 11b623b1fd8bdb2bebaf126f8c14520e82310764 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 24 Jan 2024 11:43:39 -0500 Subject: [PATCH] LibGfx: Add data_size() accessors to Bitmap and CMYKBitmap These return the size of the data in bytes. --- Userland/Libraries/LibGfx/Bitmap.h | 8 +++++++- Userland/Libraries/LibGfx/CMYKBitmap.h | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibGfx/Bitmap.h b/Userland/Libraries/LibGfx/Bitmap.h index 120f7db254..abfba94033 100644 --- a/Userland/Libraries/LibGfx/Bitmap.h +++ b/Userland/Libraries/LibGfx/Bitmap.h @@ -142,6 +142,7 @@ public: [[nodiscard]] ARGB32* begin(); [[nodiscard]] ARGB32* end(); + [[nodiscard]] size_t data_size() const; [[nodiscard]] IntRect rect() const { return { {}, m_size }; } [[nodiscard]] IntSize size() const { return m_size; } @@ -282,7 +283,12 @@ ALWAYS_INLINE ARGB32* Bitmap::begin() ALWAYS_INLINE ARGB32* Bitmap::end() { - return reinterpret_cast(reinterpret_cast(m_data) + (m_size.height() * m_pitch)); + return reinterpret_cast(reinterpret_cast(m_data) + data_size()); +} + +ALWAYS_INLINE size_t Bitmap::data_size() const +{ + return m_size.height() * m_pitch; } template<> diff --git a/Userland/Libraries/LibGfx/CMYKBitmap.h b/Userland/Libraries/LibGfx/CMYKBitmap.h index 497e864616..811a01edac 100644 --- a/Userland/Libraries/LibGfx/CMYKBitmap.h +++ b/Userland/Libraries/LibGfx/CMYKBitmap.h @@ -32,6 +32,7 @@ public: [[nodiscard]] CMYK* begin(); [[nodiscard]] CMYK* end(); + [[nodiscard]] size_t data_size() const { return m_data.size(); } ErrorOr> to_low_quality_rgb() const; @@ -67,7 +68,7 @@ inline CMYK* CMYKBitmap::begin() inline CMYK* CMYKBitmap::end() { - return reinterpret_cast(m_data.data() + m_data.size()); + return reinterpret_cast(m_data.data() + data_size()); } }