class Core::Portable::BMPReader

class BMPReader:
    public BitmapReader,
    public Core::BMPHandler
{
public:
    // construction

    BMPReader(IO::Stream& stream);

    // methods

    static bool readInplace(
        Bitmap& bitmap,
        const uint8* bitmapFileData,
        uint32 bitmapFileLength
    );

    Bitmap* readImage();
};

Inherited Members

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;

    // 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);