ScummVM API documentation
Image::IFFDecoder Class Reference
Inheritance diagram for Image::IFFDecoder:
Image::ImageDecoder

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 HeadergetHeader () const
 
const Graphics::SurfacegetSurface () 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
 

Member Function Documentation

◆ destroy()

void Image::IFFDecoder::destroy ( )
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.

◆ loadStream()

bool Image::IFFDecoder::loadStream ( Common::SeekableReadStream stream)
virtual

Load an image from the specified stream.

loadStream() should implicitly call destroy() to free the memory of the last loadStream() call.

Parameters
streamInput stream.
Returns
Whether loading the file succeeded.
See also
getSurface
getPalette

Implements Image::ImageDecoder.

◆ getSurface()

const Graphics::Surface* Image::IFFDecoder::getSurface ( ) const
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.

Returns
The decoded surface, or 0 if no surface is present.

Implements Image::ImageDecoder.

◆ getPalette()

const byte* Image::IFFDecoder::getPalette ( ) const
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).

Returns
The decoded palette, or undefined if no palette is present.

Reimplemented from Image::ImageDecoder.

◆ getPaletteColorCount()

uint16 Image::IFFDecoder::getPaletteColorCount ( ) const
inlinevirtual

Return the number of colors in the palette.

Reimplemented from Image::ImageDecoder.

◆ setNumRelevantPlanes()

void Image::IFFDecoder::setNumRelevantPlanes ( const uint8  numRelevantPlanes)
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().

◆ setPixelPacking()

void Image::IFFDecoder::setPixelPacking ( const bool  pixelPacking)
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().


The documentation for this class was generated from the following file: