Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends

CEGUI::IrrlichtTexture Class Reference

Implementation of the CEGUI::Texture class for the Irrlicht engine. More...

Inheritance diagram for CEGUI::IrrlichtTexture:
Collaboration diagram for CEGUI::IrrlichtTexture:

List of all members.

Public Member Functions

void setIrrlichtTexture (irr::video::ITexture *tex)
 set the underlying Irrlicht texture represented by this Texture.
irr::video::ITexture * getIrrlichtTexture () const
 return a pointer to the Irrlicht texture represented by this Texture.
void setOriginalDataSize (const Size &sz)
 Sets what the texture should consider as the original data size.
const SizegetSize () const
 Returns the current pixel size of the texture.
const SizegetOriginalDataSize () const
 Returns the original pixel size of the data loaded into the texture.
const Vector2getTexelScaling () const
 Returns pixel to texel scale values that should be used for converting pixel values to texture co-ords.
void loadFromFile (const String &filename, const String &resourceGroup)
 Loads the specified image file into the texture. The texture is resized as required to hold the image.
void loadFromMemory (const void *buffer, const Size &buffer_size, PixelFormat pixel_format)
 Loads (copies) an image in memory into the texture. The texture is resized as required to hold the image.
void saveToMemory (void *buffer)
 Save / dump the content of the texture to a memory buffer. The dumped pixel format is always RGBA (4 bytes per pixel).

Static Public Member Functions

static std::string getUniqueName ()
 return a std::string containing a unique name.

Protected Member Functions

 IrrlichtTexture (IrrlichtRenderer &owner, irr::video::IVideoDriver &driver)
 Construct a basic texture.
 IrrlichtTexture (IrrlichtRenderer &owner, irr::video::IVideoDriver &driver, const String &filename, const String &resourceGroup)
 Construct a texture from the specified file.
 IrrlichtTexture (IrrlichtRenderer &owner, irr::video::IVideoDriver &driver, const Size &size)
 Construct a texture with the given size.
 ~IrrlichtTexture ()
 destructor.
void createIrrlichtTexture (const Size &sz)
 create the underlying Irrlicht texture with the given size
void freeIrrlichtTexture ()
 release the underlying irrlicht texture currently used.
void updateCachedScaleValues ()
 updates cached scale value used to map pixels to texture co-ords.

Protected Attributes

irr::video::IVideoDriver & d_driver
 Irrlicht video driver we're to use.
irr::video::ITexture * d_texture
 ptr to underlying irrlicht texture.
Size d_size
 Size of the texture.
Size d_dataSize
 original pixel of size data loaded into texture
Vector2 d_texelScaling
 cached pixel to texel mapping scale values.
IrrlichtRendererd_owner
 reference to the IrrlichtRenderer that created this texture

Static Protected Attributes

static uint32 d_textureNumber
 Counter used to provide unique texture names.

Friends

TextureIrrlichtRenderer::createTexture ()
TextureIrrlichtRenderer::createTexture (const String &, const String &)
TextureIrrlichtRenderer::createTexture (const Size &)
void IrrlichtRenderer::destroyTexture (Texture &)

Detailed Description

Implementation of the CEGUI::Texture class for the Irrlicht engine.


Member Function Documentation

const Size& CEGUI::IrrlichtTexture::getOriginalDataSize (  )  const [virtual]

Returns the original pixel size of the data loaded into the texture.

Returns:
reference to a Size object that describes the original size, in pixels, of the data loaded into the texture.

Implements CEGUI::Texture.

const Size& CEGUI::IrrlichtTexture::getSize (  )  const [virtual]

Returns the current pixel size of the texture.

Returns:
Reference to a Size object that describes the size of the texture in pixels.

Implements CEGUI::Texture.

const Vector2& CEGUI::IrrlichtTexture::getTexelScaling (  )  const [virtual]

Returns pixel to texel scale values that should be used for converting pixel values to texture co-ords.

Returns:
Reference to a Vector2 object that describes the scaling values required to accurately map pixel positions to texture co-ordinates.

Implements CEGUI::Texture.

void CEGUI::IrrlichtTexture::loadFromFile ( const String filename,
const String resourceGroup 
) [virtual]

Loads the specified image file into the texture. The texture is resized as required to hold the image.

Parameters:
filename The filename of the image file that is to be loaded into the texture
resourceGroup Resource group identifier to be passed to the resource provider when loading the image file.
Returns:
Nothing.

Implements CEGUI::Texture.

void CEGUI::IrrlichtTexture::loadFromMemory ( const void *  buffer,
const Size buffer_size,
PixelFormat  pixel_format 
) [virtual]

Loads (copies) an image in memory into the texture. The texture is resized as required to hold the image.

Parameters:
buffer Pointer to the buffer containing the image data.
buffer_size Size of the buffer (in pixels as specified by pixelFormat)
pixel_format PixelFormat value describing the format contained in buffPtr.
Returns:
Nothing.

Implements CEGUI::Texture.

void CEGUI::IrrlichtTexture::saveToMemory ( void *  buffer  )  [virtual]

Save / dump the content of the texture to a memory buffer. The dumped pixel format is always RGBA (4 bytes per pixel).

Parameters:
buffer Pointer to the buffer that is to receive the image data. You must make sure that this buffer is large enough to hold the dumped texture data, the required pixel dimensions can be established by calling getSize.

Implements CEGUI::Texture.

void CEGUI::IrrlichtTexture::setOriginalDataSize ( const Size sz  ) 

Sets what the texture should consider as the original data size.

Note:
This also causes the texel scaling values to be updated.