#ifndef GAME_BMPLOADER_H #define GAME_BMPLOADER_H #include #include "../graphics/Bitmap.h" namespace Bmp { struct BmpFileHeader { uint16_t signature; uint32_t fileSize; uint16_t reserved1; uint16_t reserved2; uint32_t offset; } __attribute__((__packed__)); struct BmpInfoHeader { uint32_t headerSize; uint32_t width; uint32_t height; uint16_t planes; uint16_t bitsPerPixel; uint32_t compression; uint32_t imageSize; uint32_t horizontalResolution; uint32_t verticalResolution; uint32_t colorsUsed; uint32_t colorsImportant; enum CompressionType { Rgb = 0, Rle8, Rle4, Bitfields, Jpeg, Png, Alphabitfields, Cmyk, CmykRle8, CmykRle4, }; } __attribute__((__packed__)); Bitmap loadFromMemory(void *buf, size_t len); Bitmap loadFromFile(const char* path); }; #endif //GAME_BMPLOADER_H