Classes | |
struct | Header |
struct | PaletteRange |
Public Types | |
enum | Type { TYPE_UNKNOWN = 0, TYPE_ILBM, TYPE_PBM } |
Public Member Functions | |
void | destroy () |
bool | loadStream (Common::SeekableReadStream &stream) |
const Header * | getHeader () const |
const Graphics::Surface * | getSurface () const |
const byte * | getPalette () const |
const Common::Array< PaletteRange > & | getPaletteRanges () const |
uint16 | getPaletteColorCount () const |
void | setNumRelevantPlanes (const uint8 numRelevantPlanes) |
void | setPixelPacking (const bool pixelPacking) |
Public Member Functions inherited from Image::ImageDecoder | |
virtual bool | hasPalette () const |
virtual bool | hasTransparentColor () const |
virtual uint32 | getTransparentColor () const |
|
virtual |
Destroy this decoder's surface and palette.
This should be called by a loadStream() implementation as well as by the destructor.
Implements Image::ImageDecoder.
|
virtual |
Load an image from the specified stream.
loadStream() should implicitly call destroy() to free the memory of the last loadStream() call.
stream | Input stream. |
Implements Image::ImageDecoder.
|
inlinevirtual |
Get the decoded surface.
This surface is owned by this ImageDecoder and remains valid until destroy() or loadStream() is called, or until the destructor of this ImageDecoder is called.
Implements Image::ImageDecoder.
|
inlinevirtual |
Get the decoded palette.
This palette is owned by this ImageDecoder and remains valid until destroy() or loadStream() is called, or until the destructor of this ImageDecoder is called.
The format of the palette is the same as that of the PaletteManager's palette. (interleaved RGB values).
Reimplemented from Image::ImageDecoder.
|
inlinevirtual |
Return the number of colors in the palette.
Reimplemented from Image::ImageDecoder.
|
inline |
The number of planes to decode, also determines the pixel packing if _packPixels is true. 8 == decode all planes, map 1 pixel in 1 byte. (default, no packing even if _packPixels is true)
NOTE: this property must be reset manually, and is not reset by a call to destroy().
|
inline |
Enables pixel packing, the amount of packing is determined by _numRelevantPlanes 1 == decode first plane, pack 8 pixels in 1 byte. This makes _surface->w 1/8th of _header.width 2 == decode first 2 planes, pack 4 pixels in 1 byte. This makes _surface->w 1/4th of _header.width 4 == decode first 4 planes, pack 2 pixels in 1 byte. This makes _surface->w half of _header.width Packed bitmaps won't have a proper surface format since there is no way to tell it to use 1, 2 or 4 bits per pixel
NOTE: this property must be reset manually, and is not reset by a call to destroy().