Crazy Eddie's GUI System  0.8.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
CEGUI::Direct3D9Texture Class Reference

Texture implementation for the Direct3D9Renderer. More...

+ Inheritance diagram for CEGUI::Direct3D9Texture:
+ Collaboration diagram for CEGUI::Direct3D9Texture:

Public Member Functions

void setDirect3D9Texture (LPDIRECT3DTEXTURE9 tex)
 set the D3D9 texture that this Texture is based on to the specified texture.
 
LPDIRECT3DTEXTURE9 getDirect3D9Texture () const
 Return the internal D3D9 texture used by this Texture object. More...
 
void setOriginalDataSize (const Sizef &sz)
 Sets what the texture should consider as the original data size. More...
 
void preD3DReset ()
 auto called via the Renderer prior to Reset on the Direct3DDevice9.
 
void postD3DReset ()
 auto called via the Renderer after Reset on the Direct3DDevice9.
 
const StringgetName () const
 Returns the name given to the texture when it was created. More...
 
const SizefgetSize () const
 Returns the current pixel size of the texture. More...
 
const SizefgetOriginalDataSize () const
 Returns the original pixel size of the data loaded into the texture. More...
 
const Vector2fgetTexelScaling () const
 Returns pixel to texel scale values that should be used for converting pixel values to texture co-ords. More...
 
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. More...
 
void loadFromMemory (const void *buffer, const Sizef &buffer_size, PixelFormat pixel_format)
 Loads (copies) an image in memory into the texture. The texture is resized as required to hold the image. More...
 
void blitFromMemory (const void *sourceData, const Rectf &area)
 Performs an area memory blit to the texture. More...
 
void blitToMemory (void *targetData)
 Performs a complete blit from the texture surface to memory. More...
 
bool isPixelFormatSupported (const PixelFormat fmt) const
 Return whether the specified pixel format is supported by the system for the CEGUI::Texture implementation. More...
 
- Public Member Functions inherited from CEGUI::Texture
virtual ~Texture ()
 Destructor for Texture base class.
 

Protected Member Functions

 Direct3D9Texture (Direct3D9Renderer &owner, const String &name)
 Basic constructor.
 
 Direct3D9Texture (Direct3D9Renderer &owner, const String &name, const String &filename, const String &resourceGroup)
 Construct texture from an image file.
 
 Direct3D9Texture (Direct3D9Renderer &owner, const String &name, const Sizef &sz)
 Construct texture with a given size.
 
 Direct3D9Texture (Direct3D9Renderer &owner, const String &name, LPDIRECT3DTEXTURE9 tex)
 Construct texture that wraps an existing D3D9 texture.
 
virtual ~Direct3D9Texture ()
 Destructor.
 
void createDirect3D9Texture (const Sizef sz, D3DFORMAT format)
 create internal texture.
 
void cleanupDirect3D9Texture ()
 clean up the internal texture.
 
IDirect3DSurface9 * getTextureSurface () const
 get the IDirect3DSurface9 interface for the underlying texture.
 
void updateCachedScaleValues ()
 updates cached scale value used to map pixels to texture co-ords.
 
void updateTextureSize ()
 set d_size to actual texture size (d_dataSize is used if query fails)
 

Protected Attributes

Direct3D9Rendererd_owner
 Direct3D9Renderer object that created and owns this texture.
 
LPDIRECT3DTEXTURE9 d_texture
 The D3D9 texture we're wrapping.
 
Sizef d_size
 Size of the texture.
 
Sizef d_dataSize
 original pixel of size data loaded into texture
 
Vector2f d_texelScaling
 cached pixel to texel mapping scale values.
 
D3DSURFACE_DESC d_savedSurfaceDesc
 holds info about the texture surface before we released it for reset.
 
bool d_savedSurfaceDescValid
 true when d_savedSurfaceDesc is valid and texture can be restored.
 
const String d_name
 Name the texture was created with.
 

Friends

TextureDirect3D9Renderer::createTexture (const String &)
 
TextureDirect3D9Renderer::createTexture (const String &, const String &, const String &)
 
TextureDirect3D9Renderer::createTexture (const String &, const Sizef &)
 
TextureDirect3D9Renderer::createTexture (const String &, LPDIRECT3DTEXTURE9 tex)
 
void Direct3D9Renderer::destroyTexture (Texture &)
 
void Direct3D9Renderer::destroyTexture (const String &)
 

Additional Inherited Members

- Public Types inherited from CEGUI::Texture
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...
 

Detailed Description

Texture implementation for the Direct3D9Renderer.

Member Function Documentation

void CEGUI::Direct3D9Texture::blitFromMemory ( const void *  sourceData,
const Rectf area 
)
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!

Implements CEGUI::Texture.

void CEGUI::Direct3D9Texture::blitToMemory ( void *  targetData)
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!

Implements CEGUI::Texture.

LPDIRECT3DTEXTURE9 CEGUI::Direct3D9Texture::getDirect3D9Texture ( ) const

Return the internal D3D9 texture used by this Texture object.

Returns
Pointer to the D3D9 texture interface that this object is using.
const String& CEGUI::Direct3D9Texture::getName ( ) const
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.

Implements CEGUI::Texture.

const Sizef& CEGUI::Direct3D9Texture::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 Sizef& CEGUI::Direct3D9Texture::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 Vector2f& CEGUI::Direct3D9Texture::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.

bool CEGUI::Direct3D9Texture::isPixelFormatSupported ( const PixelFormat  fmt) const
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.

Implements CEGUI::Texture.

void CEGUI::Direct3D9Texture::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
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.

Implements CEGUI::Texture.

void CEGUI::Direct3D9Texture::loadFromMemory ( const void *  buffer,
const Sizef 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
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.

Implements CEGUI::Texture.

void CEGUI::Direct3D9Texture::setOriginalDataSize ( const Sizef sz)

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

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