Crazy Eddie's GUI System  0.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
CEGUI::Texture Class Referenceabstract

Abstract base class specifying the required interface for Texture objects. More...

Inherits CEGUI::AllocatedObject< Texture >.

Inherited by CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::DirectFBTexture, CEGUI::IrrlichtTexture, CEGUI::NullTexture, CEGUI::OgreTexture, CEGUI::OpenGLESTexture, and CEGUI::OpenGLTexture.

+ Collaboration diagram for CEGUI::Texture:

Public Types

enum  PixelFormat {
  PF_RGB, PF_RGBA, PF_RGBA_4444, PF_RGB_565,
  PF_PVRTC2, PF_PVRTC4, PF_RGB_DXT1, PF_RGBA_DXT1,
  PF_RGBA_DXT3, PF_RGBA_DXT5
}
 Enumerated type containing the supported pixel formats that can be passed to loadFromMemory. More...
 

Public Member Functions

virtual ~Texture ()
 Destructor for Texture base class.
 
virtual const StringgetName () const =0
 Returns the name given to the texture when it was created. More...
 
virtual const SizefgetSize () const =0
 Returns the current pixel size of the texture. More...
 
virtual const SizefgetOriginalDataSize () const =0
 Returns the original pixel size of the data loaded into the texture. More...
 
virtual const Vector2fgetTexelScaling () const =0
 Returns pixel to texel scale values that should be used for converting pixel values to texture co-ords. More...
 
virtual void loadFromFile (const String &filename, const String &resourceGroup)=0
 Loads the specified image file into the texture. The texture is resized as required to hold the image. More...
 
virtual void loadFromMemory (const void *buffer, const Sizef &buffer_size, PixelFormat pixel_format)=0
 Loads (copies) an image in memory into the texture. The texture is resized as required to hold the image. More...
 
virtual void blitFromMemory (const void *sourceData, const Rectf &area)=0
 Performs an area memory blit to the texture. More...
 
virtual void blitToMemory (void *targetData)=0
 Performs a complete blit from the texture surface to memory. More...
 
virtual bool isPixelFormatSupported (const PixelFormat fmt) const =0
 Return whether the specified pixel format is supported by the system for the CEGUI::Texture implementation. More...
 

Detailed Description

Abstract base class specifying the required interface for Texture objects.

Texture objects are created via the Renderer. The actual inner workings of any Texture object are dependant upon the Renderer (and underlying API) in use. This base class defines the minimal set of functions that is required for the rest of the system to work. Texture objects are only created through the Renderer object's texture creation functions.

Member Enumeration Documentation

Enumerated type containing the supported pixel formats that can be passed to loadFromMemory.

Enumerator
PF_RGB 

Each pixel is 3 bytes. RGB in that order.

PF_RGBA 

Each pixel is 4 bytes. RGBA in that order.

PF_RGBA_4444 

Each pixel is 2 bytes. RGBA in that order.

PF_RGB_565 

Each pixel is 2 bytes. RGB in that order.

PF_PVRTC2 

PVR texture compression. Each pixel is 2 bits.

PF_PVRTC4 

PVR texture compression. Each pixel is 4 bits.

PF_RGB_DXT1 

S3 DXT1 texture compression (RGB).

PF_RGBA_DXT1 

S3 DXT1 texture compression (RGBA).

PF_RGBA_DXT3 

S3 DXT1 texture compression (RGBA).

PF_RGBA_DXT5 

S3 DXT1 texture compression (RGBA).

Member Function Documentation

virtual void CEGUI::Texture::blitFromMemory ( const void *  sourceData,
const Rectf area 
)
pure virtual

Performs an area memory blit to the texture.

Parameters
sourceDatainput data, the size must match area described by the given Rect
areaarea where the blit will happen
Note
The pixel format must match current Texture's pixel format!

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual void CEGUI::Texture::blitToMemory ( void *  targetData)
pure virtual

Performs a complete blit from the texture surface to memory.

Parameters
targetDatathe buffer where the target is stored
Note
You have to (correctly) preallocate the target buffer!

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual const String& CEGUI::Texture::getName ( ) const
pure virtual

Returns the name given to the texture when it was created.

Returns
Reference to a String object that holds the name of the texture.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual const Sizef& CEGUI::Texture::getOriginalDataSize ( ) const
pure 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.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual const Sizef& CEGUI::Texture::getSize ( ) const
pure virtual

Returns the current pixel size of the texture.

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

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual const Vector2f& CEGUI::Texture::getTexelScaling ( ) const
pure 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.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual bool CEGUI::Texture::isPixelFormatSupported ( const PixelFormat  fmt) const
pure virtual

Return whether the specified pixel format is supported by the system for the CEGUI::Texture implementation.

The result of this call will vary according to the implementaion API
and the capabilities of the hardware.
Note
Whether the CEGUI system as a whole will make use of support for any given pixel format will depend upon that format being recognised and supported by both the renderer module implementation and the ImageCodec module that is used to load texture data.
Parameters
fmtOne of the PixelFormat enumerated values specifying the pixel format that is to be tested.
Returns
  • true if the specified PixelFormat is supported.
  • false if the specified PixelFormat is not supported.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual void CEGUI::Texture::loadFromFile ( const String filename,
const String resourceGroup 
)
pure virtual

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

Parameters
filenameThe filename of the image file that is to be loaded into the texture
resourceGroupResource group identifier to be passed to the resource provider when loading the image file.
Returns
Nothing.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.

virtual void CEGUI::Texture::loadFromMemory ( const void *  buffer,
const Sizef buffer_size,
PixelFormat  pixel_format 
)
pure virtual

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

Parameters
bufferPointer to the buffer containing the image data.
buffer_sizeSize of the buffer (in pixels as specified by pixelFormat)
pixel_formatPixelFormat value describing the format contained in buffPtr.
Returns
Nothing.

Implemented in CEGUI::OpenGLTexture, CEGUI::OpenGLESTexture, CEGUI::Direct3D10Texture, CEGUI::Direct3D11Texture, CEGUI::Direct3D9Texture, CEGUI::IrrlichtTexture, CEGUI::OgreTexture, CEGUI::NullTexture, and CEGUI::DirectFBTexture.