class Core::BMPHandler

#include <corebmphandler.h>

class BMPHandler
{
public:
    // structs

    struct BitmapFileHeader;
    struct BitmapInfoHeader;

    // fields

    static const int kBitmapFileHeaderSize = sizeof(BitmapFileHeader);
    static const int kBitmapInfoHeaderSize = sizeof(BitmapInfoHeader);
    static const uint16 kRegularBitmapType = 0x4d42;
    static const uint16 kCustomBitmapType = 0x4243;
    static const uint16 kUncompressed = 0;
    static const uint16 kBitfields = 3;

    // construction

    BMPHandler(IO::Stream& stream);

    // methods

    static bool isKnownType(uint16 type);
    static BitmapPixelFormat getKnownFormat(const BitmapInfoHeader& info);
    bool readInfo();
    const BitmapInfoHeader& getInfo() const;
    bool readData(void* bufferAddress, uint32 bufferSize);
    bool readBitmapData(BitmapData& bitmapData);
};

// direct descendants

class BMPReader;