# Ogre::FreeImageCodec Class Reference

Codec specialized in images loaded using FreeImage. More...

`#include <OgreFreeImageCodec.h>`

Inheritance diagram for Ogre::FreeImageCodec:

[legend]
List of all members.

## Public Types

typedef SharedPtr< CodecData > | CodecDataPtr
typedef ConstMapIterator< CodecList > | CodecIterator
typedef std::pair< MemoryDataStreamPtr, CodecDataPtr > | DecodeResult
| Result of a decoding; both a decoded data stream and CodecData metadata.

## Public Member Functions

| FreeImageCodec (const String &type, unsigned int fiType)
virtual | ~FreeImageCodec ()
DataStreamPtr | code (MemoryDataStreamPtr &input, CodecDataPtr &pData) const
void | codeToFile (MemoryDataStreamPtr &input, const String &outFileName, CodecDataPtr &pData) const

Provided for efficiency since coding to memory is progressive therefore memory required is unknown leading to reallocations.

Parameters:

  | input | The input data
  | outFileName | The filename to write to
  | pData | Extra information to be passed to the codec (codec type specific)

DecodeResult | decode (DataStreamPtr &input) const

Parameters:

  | input | Stream containing the encoded data

Note:
  Has a variable number of arguments, which depend on the codec type.

virtual String | getType () const
| Returns the type of the codec as a String.
String | magicNumberToFileExt (const char *magicNumberPtr, size_t maxbytes) const

Parameters:

  | magicNumberPtr | Pointer to a stream of bytes which should identify the file. Note that this may be more than needed - each codec may be looking for a different size magic number.
  | maxbytes | The number of bytes passed

Returns:
  A blank string if the magic number was unknown, or a file extension.

String | getDataType () const
| Returns the type of the data that supported by this codec as a String.
virtual bool | magicNumberMatch (const char *magicNumberPtr, size_t maxbytes) const
| Returns whether a magic number header matches this codec.
| AllocatedObject ()
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)

## Static Public Member Functions

static void | startup (void)
| Static method to startup FreeImage and register the FreeImage codecs.
static void | shutdown (void)
| Static method to shutdown FreeImage and unregister the FreeImage codecs.
static void | registerCodec (Codec *pCodec)
| Registers a new codec in the database.
static void | unRegisterCodec (Codec *pCodec)
| Unregisters a codec from the database.
static CodecIterator | getCodecIterator (void)
| Gets the iterator for the registered codecs.
static StringVector | getExtensions (void)
| Gets the file extension list for the registered codecs.
static Codec * | getCodec (const String &extension)
| Gets the codec registered for the passed in file extension.
static Codec * | getCodec (char *magicNumberPtr, size_t maxbytes)
| Gets the codec that can handle the given 'magic' identifier.

## Protected Types

typedef std::map< String, Codec * > | CodecList

## Static Protected Attributes

static CodecList | ms_mapCodecs
| A map that contains all the registered codecs.

## Private Types

typedef std::list< ImageCodec * > | RegisteredCodecList

## Private Member Functions

FIBITMAP * | encode (MemoryDataStreamPtr &input, CodecDataPtr &pData) const
| Common encoding routine.

## Private Attributes

String | mType
unsigned int | mFreeImageType

## Static Private Attributes

static RegisteredCodecList | msCodecList

## Detailed Description

Codec specialized in images loaded using FreeImage.

Remarks:
  The users implementing subclasses of ImageCodec are required to return a valid pointer to a ImageData class from the decode(...) function.

Definition at line 43 of file OgreFreeImageCodec.h.

## Member Typedef Documentation

typedef SharedPtr<CodecData> Ogre::Codec::CodecDataPtr`[inherited]`

| Definition at line 67 of file OgreCodec.h.

typedef ConstMapIterator<CodecList> Ogre::Codec::CodecIterator`[inherited]`

| Definition at line 69 of file OgreCodec.h.

typedef std::map< String, Codec* > Ogre::Codec::CodecList`[protected, inherited]`

| Definition at line 52 of file OgreCodec.h.

typedef std::pair<MemoryDataStreamPtr, CodecDataPtr> Ogre::Codec::DecodeResult`[inherited]`

| Result of a decoding; both a decoded data stream and CodecData metadata. Definition at line 122 of file OgreCodec.h.

typedef std::list<ImageCodec*> Ogre::FreeImageCodec::RegisteredCodecList`[private]`

| Definition at line 49 of file OgreFreeImageCodec.h.

## Constructor & Destructor Documentation

Ogre::FreeImageCodec::FreeImageCodec | ( | const String & | type,
|  | unsigned int | fiType
| ) |

virtual Ogre::FreeImageCodec::~FreeImageCodec | ( |  | ) | `[virtual]`

| Definition at line 57 of file OgreFreeImageCodec.h.

## Member Function Documentation

Ogre::AllocatedObject< GeneralAllocPolicy >::AllocatedObject | ( |  | ) | `[explicit, inherited]`

| Definition at line 55 of file OgreMemoryAllocatedObject.h.

DataStreamPtr Ogre::FreeImageCodec::code | ( | MemoryDataStreamPtr & | input,
|  | CodecDataPtr & | pData
| ) | const`[virtual]`

| Implements Ogre::Codec.

void Ogre::FreeImageCodec::codeToFile | ( | MemoryDataStreamPtr & | input,
|  | const String & | outFileName,
|  | CodecDataPtr & | pData
| ) | const`[virtual]`

Provided for efficiency since coding to memory is progressive therefore memory required is unknown leading to reallocations.

Parameters:

  | input | The input data
  | outFileName | The filename to write to
  | pData | Extra information to be passed to the codec (codec type specific)

Implements Ogre::Codec.

DecodeResult Ogre::FreeImageCodec::decode | ( | DataStreamPtr & | input | ) | const`[virtual]`

Parameters:

  | input | Stream containing the encoded data

Note:
  Has a variable number of arguments, which depend on the codec type.

Implements Ogre::Codec.

FIBITMAP* Ogre::FreeImageCodec::encode | ( | MemoryDataStreamPtr & | input,
|  | CodecDataPtr & | pData
| ) | const`[private]`

| Common encoding routine.

static Codec* Ogre::Codec::getCodec | ( | char * | magicNumberPtr,
|  | size_t | maxbytes
| ) | `[static, inherited]`

Gets the codec that can handle the given 'magic' identifier.

Parameters:

  | magicNumberPtr | Pointer to a stream of bytes which should identify the file. Note that this may be more than needed - each codec may be looking for a different size magic number.
  | maxbytes | The number of bytes passed

static Codec* Ogre::Codec::getCodec | ( | const String & | extension | ) | `[static, inherited]`

| Gets the codec registered for the passed in file extension.

static CodecIterator Ogre::Codec::getCodecIterator | ( | void |  | ) | `[static, inherited]`

| Gets the iterator for the registered codecs. Definition at line 89 of file OgreCodec.h.

String Ogre::ImageCodec::getDataType | ( |  | ) | const`[virtual, inherited]`

| Returns the type of the data that supported by this codec as a String. Implements Ogre::Codec. Definition at line 74 of file OgreImageCodec.h.

static StringVector Ogre::Codec::getExtensions | ( | void |  | ) | `[static, inherited]`

| Gets the file extension list for the registered codecs.

virtual String Ogre::FreeImageCodec::getType | ( |  | ) | const`[virtual]`

| Returns the type of the codec as a String. Implements Ogre::Codec.

virtual bool Ogre::Codec::magicNumberMatch | ( | const char * | magicNumberPtr,
|  | size_t | maxbytes
| ) | const`[virtual, inherited]`

Returns whether a magic number header matches this codec.

Parameters:

  | magicNumberPtr | Pointer to a stream of bytes which should identify the file. Note that this may be more than needed - each codec may be looking for a different size magic number.
  | maxbytes | The number of bytes passed

Definition at line 144 of file OgreCodec.h.

String Ogre::FreeImageCodec::magicNumberToFileExt | ( | const char * | magicNumberPtr,
|  | size_t | maxbytes
| ) | const`[virtual]`

Parameters:

  | magicNumberPtr | Pointer to a stream of bytes which should identify the file. Note that this may be more than needed - each codec may be looking for a different size magic number.
  | maxbytes | The number of bytes passed

Returns:
  A blank string if the magic number was unknown, or a file extension.

Implements Ogre::Codec.

void Ogre::AllocatedObject< GeneralAllocPolicy >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) | `[inherited]`

| Definition at line 101 of file OgreMemoryAllocatedObject.h.

void Ogre::AllocatedObject< GeneralAllocPolicy >::operator delete | ( | void * | ptr,
|  | void * |
| ) | `[inherited]`

| Definition at line 95 of file OgreMemoryAllocatedObject.h.

void Ogre::AllocatedObject< GeneralAllocPolicy >::operator delete | ( | void * | ptr | ) | `[inherited]`

| Definition at line 89 of file OgreMemoryAllocatedObject.h.

void Ogre::AllocatedObject< GeneralAllocPolicy >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) | `[inherited]`

| Definition at line 112 of file OgreMemoryAllocatedObject.h.

void Ogre::AllocatedObject< GeneralAllocPolicy >::operator delete[] | ( | void * | ptr | ) | `[inherited]`

| Definition at line 106 of file OgreMemoryAllocatedObject.h.

void* Ogre::AllocatedObject< GeneralAllocPolicy >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) | `[inherited]`

| placement operator new Definition at line 73 of file OgreMemoryAllocatedObject.h.

void* Ogre::AllocatedObject< GeneralAllocPolicy >::operator new | ( | size_t | sz | ) | `[inherited]`

| Definition at line 67 of file OgreMemoryAllocatedObject.h.

void* Ogre::AllocatedObject< GeneralAllocPolicy >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) | `[inherited]`

| operator new, with debug line info Definition at line 62 of file OgreMemoryAllocatedObject.h.

void* Ogre::AllocatedObject< GeneralAllocPolicy >::operator new[] | ( | size_t | sz | ) | `[inherited]`

| Definition at line 84 of file OgreMemoryAllocatedObject.h.

void* Ogre::AllocatedObject< GeneralAllocPolicy >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) | `[inherited]`

| array operator new, with debug line info Definition at line 79 of file OgreMemoryAllocatedObject.h.

static void Ogre::Codec::registerCodec | ( | Codec * | pCodec | ) | `[static, inherited]`

| Registers a new codec in the database. Definition at line 76 of file OgreCodec.h. References Ogre::Codec::getType().

static void Ogre::FreeImageCodec::shutdown | ( | void |  | ) | `[static]`

| Static method to shutdown FreeImage and unregister the FreeImage codecs.

static void Ogre::FreeImageCodec::startup | ( | void |  | ) | `[static]`

| Static method to startup FreeImage and register the FreeImage codecs.

static void Ogre::Codec::unRegisterCodec | ( | Codec * | pCodec | ) | `[static, inherited]`

| Unregisters a codec from the database. Definition at line 83 of file OgreCodec.h. References Ogre::Codec::getType().

## Member Data Documentation

unsigned int Ogre::FreeImageCodec::mFreeImageType`[private]`

| Definition at line 47 of file OgreFreeImageCodec.h.

CodecList Ogre::Codec::ms_mapCodecs`[static, protected, inherited]`

| A map that contains all the registered codecs. Definition at line 55 of file OgreCodec.h.

RegisteredCodecList Ogre::FreeImageCodec::msCodecList`[static, private]`

| Definition at line 50 of file OgreFreeImageCodec.h.

String Ogre::FreeImageCodec::mType`[private]`

| Definition at line 46 of file OgreFreeImageCodec.h.

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

- OgreFreeImageCodec.h

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sat Apr 11 13:47:57 2009