Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

# Ogre::DDSCodec Class Reference

Codec specialized in loading DDS (Direct Draw Surface) images. More...

`#include <OgreDDSCodec.h>`

Inheritance diagram for Ogre::DDSCodec:

[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
| DDSCodec ()
virtual | ~DDSCodec ()
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 | getDataType () const
| Returns the type of the data that supported by this codec as a String.
## Static Public Member Functions
static void | startup (void)
| Static method to startup and register the DDS codec.
static void | shutdown (void)
| Static method to shutdown and unregister the DDS codec.
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.
## Protected Types
typedef std::map< String, Codec * > | CodecList
## Static Protected Attributes
static CodecList | ms_mapCodecs
| A map that contains all the registered codecs.
## Private Member Functions
void | flipEndian (void *pData, size_t size, size_t count) const
void | flipEndian (void *pData, size_t size) const
PixelFormat | convertFourCCFormat (uint32 fourcc) const
PixelFormat | convertPixelFormat (uint32 rgbBits, uint32 rMask, uint32 gMask, uint32 bMask, uint32 aMask) const
void | unpackDXTColour (PixelFormat pf, const DXTColourBlock &block, ColourValue *pCol) const
| Unpack DXT colours into array of 16 colour values.
void | unpackDXTAlpha (const DXTExplicitAlphaBlock &block, ColourValue *pCol) const
| Unpack DXT alphas into array of 16 colour values.
void | unpackDXTAlpha (const DXTInterpolatedAlphaBlock &block, ColourValue *pCol) const
| Unpack DXT alphas into array of 16 colour values.
## Private Attributes
String | mType
## Static Private Attributes
static DDSCodec * | msInstance
| Single registered codec instance.

## Detailed Description

Codec specialized in loading DDS (Direct Draw Surface) images.

Remarks:
  We implement our own codec here since we need to be able to keep DXT data compressed if the card supports it.

Definition at line 45 of file OgreDDSCodec.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 114 of file OgreCodec.h.

## Constructor & Destructor Documentation

Ogre::DDSCodec::DDSCodec | ( |  | ) |

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

| Definition at line 68 of file OgreDDSCodec.h.

## Member Function Documentation

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

| Implements Ogre::Codec.

void Ogre::DDSCodec::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.

PixelFormat Ogre::DDSCodec::convertFourCCFormat | ( | uint32 | fourcc | ) | const`[private]`

PixelFormat Ogre::DDSCodec::convertPixelFormat | ( | uint32 | rgbBits,
|  | uint32 | rMask,
|  | uint32 | gMask,
|  | uint32 | bMask,
|  | uint32 | aMask
| ) | const`[private]`

DecodeResult Ogre::DDSCodec::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.

void Ogre::DDSCodec::flipEndian | ( | void * | pData,
|  | size_t | size
| ) | const`[private]`

void Ogre::DDSCodec::flipEndian | ( | void * | pData,
|  | size_t | size,
|  | size_t | count
| ) | const`[private]`

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::DDSCodec::getType | ( |  | ) | const`[virtual]`

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

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

| Registers a new codec in the database. Definition at line 76 of file OgreCodec.h.

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

| Static method to shutdown and unregister the DDS codec.

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

| Static method to startup and register the DDS codec.

void Ogre::DDSCodec::unpackDXTAlpha | ( | const DXTInterpolatedAlphaBlock & | block,
|  | ColourValue * | pCol
| ) | const`[private]`

| Unpack DXT alphas into array of 16 colour values.

void Ogre::DDSCodec::unpackDXTAlpha | ( | const DXTExplicitAlphaBlock & | block,
|  | ColourValue * | pCol
| ) | const`[private]`

| Unpack DXT alphas into array of 16 colour values.

void Ogre::DDSCodec::unpackDXTColour | ( | PixelFormat | pf,
|  | const DXTColourBlock & | block,
|  | ColourValue * | pCol
| ) | const`[private]`

| Unpack DXT colours into array of 16 colour values.

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

| Unregisters a codec from the database. Definition at line 83 of file OgreCodec.h.

## Member Data Documentation

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

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

DDSCodec* Ogre::DDSCodec::msInstance`[static, private]`

| Single registered codec instance. Definition at line 65 of file OgreDDSCodec.h.

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

| Definition at line 48 of file OgreDDSCodec.h.

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

- OgreDDSCodec.h

Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Sep 30 10:51:11 2007