image: Remove inheritance from Netbpm

This inheritance made no sense
This commit is contained in:
Bananymous 2023-11-29 20:56:05 +02:00
parent fdb6dc94ba
commit 8564b59e14
4 changed files with 9 additions and 18 deletions

View File

@ -70,7 +70,7 @@ BAN::UniqPtr<Image> Image::load_from_file(BAN::StringView path)
case 0x3350: case 0x3350:
case 0x3250: case 0x3250:
case 0x3150: case 0x3150:
if (auto res = Netbpm::create(addr, st.st_size); res.is_error()) if (auto res = load_netbpm(addr, st.st_size); res.is_error())
fprintf(stderr, "%s\n", strerror(res.error().get_error_code())); fprintf(stderr, "%s\n", strerror(res.error().get_error_code()));
else else
image = res.release_value(); image = res.release_value();

View File

@ -22,15 +22,17 @@ public:
bool render_to_framebuffer(); bool render_to_framebuffer();
protected: private:
Image(uint64_t width, uint64_t height, BAN::Vector<Color>&& bitmap) Image(uint64_t width, uint64_t height, BAN::Vector<Color>&& bitmap)
: m_width(width) : m_width(width)
, m_height(height) , m_height(height)
, m_bitmap(BAN::move(bitmap)) , m_bitmap(BAN::move(bitmap))
{ } { }
protected: private:
const uint64_t m_width; const uint64_t m_width;
const uint64_t m_height; const uint64_t m_height;
const BAN::Vector<Color> m_bitmap; const BAN::Vector<Color> m_bitmap;
friend class BAN::UniqPtr<Image>;
}; };

View File

@ -29,7 +29,7 @@ BAN::Optional<uint64_t> parse_u64(const uint8_t*& data, size_t data_size)
return {}; return {};
} }
BAN::ErrorOr<BAN::UniqPtr<Netbpm>> Netbpm::create(const void* mmap_addr, size_t size) BAN::ErrorOr<BAN::UniqPtr<Image>> load_netbpm(const void* mmap_addr, size_t size)
{ {
if (size < 11) if (size < 11)
{ {
@ -88,7 +88,7 @@ BAN::ErrorOr<BAN::UniqPtr<Netbpm>> Netbpm::create(const void* mmap_addr, size_t
printf("Netbpm image %llux%llu\n", *width, *height); printf("Netbpm image %llux%llu\n", *width, *height);
BAN::Vector<Color> bitmap; BAN::Vector<Image::Color> bitmap;
TRY(bitmap.resize(*width * *height)); TRY(bitmap.resize(*width * *height));
// Fill bitmap // Fill bitmap
@ -104,5 +104,5 @@ BAN::ErrorOr<BAN::UniqPtr<Netbpm>> Netbpm::create(const void* mmap_addr, size_t
} }
} }
return TRY(BAN::UniqPtr<Netbpm>::create(*width, *height, BAN::move(bitmap))); return TRY(BAN::UniqPtr<Image>::create(*width, *height, BAN::move(bitmap)));
} }

View File

@ -1,14 +1,3 @@
#include "Image.h" #include "Image.h"
class Netbpm : public Image BAN::ErrorOr<BAN::UniqPtr<Image>> load_netbpm(const void* mmap_addr, size_t size);
{
public:
static BAN::ErrorOr<BAN::UniqPtr<Netbpm>> create(const void* mmap_addr, size_t size);
private:
Netbpm(uint64_t width, uint64_t height, BAN::Vector<Color>&& bitmap)
: Image(width, height, BAN::move(bitmap))
{ }
friend class BAN::UniqPtr<Netbpm>;
};