Crazy Eddies GUI System  0.7.9
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
CEGUI::OpenGLTexture Class Reference

Texture implementation for the OpenGLRenderer. More...

+ Inheritance diagram for CEGUI::OpenGLTexture:
+ Collaboration diagram for CEGUI::OpenGLTexture:

Public Member Functions

void setOpenGLTexture (GLuint tex, const Size &size)
 set the openGL texture that this Texture is based on to the specified texture, with the specified size.
 
GLuint getOpenGLTexture () const
 Return the internal OpenGL texture id used by this Texture object. More...
 
void setTextureSize (const Size &sz)
 set the size of the internal texture. More...
 
void grabTexture ()
 Grab the texture to a local buffer. More...
 
void restoreTexture ()
 Restore the texture from the locally buffered copy previously create by a call to grabTexture.
 
const SizegetSize () const
 Returns the current pixel size of the texture. More...
 
const SizegetOriginalDataSize () const
 Returns the original pixel size of the data loaded into the texture. More...
 
const Vector2getTexelScaling () 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 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. More...
 
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). More...
 
- Public Member Functions inherited from CEGUI::Texture
virtual ~Texture ()
 Destructor for Texture base class.
 

Protected Member Functions

 OpenGLTexture (OpenGLRenderer &owner)
 Basic constructor.
 
 OpenGLTexture (OpenGLRenderer &owner, const String &filename, const String &resourceGroup)
 Constructor that creates a Texture from an image file.
 
 OpenGLTexture (OpenGLRenderer &owner, const Size &size)
 Constructor that creates a Texture with a given size.
 
 OpenGLTexture (OpenGLRenderer &owner, GLuint tex, const Size &size)
 Constructor that wraps an existing GL texture.
 
virtual ~OpenGLTexture ()
 Destructor.
 
void generateOpenGLTexture ()
 generate the OpenGL texture and set some initial options.
 
void updateCachedScaleValues ()
 updates cached scale value used to map pixels to texture co-ords.
 
void cleanupOpenGLTexture ()
 clean up the GL texture, or the grab buffer if it had been grabbed
 

Protected Attributes

GLuint d_ogltexture
 The OpenGL texture we're wrapping.
 
Size d_size
 Size of the texture.
 
uint8 * d_grabBuffer
 cached image data for restoring the texture.
 
Size d_dataSize
 original pixel of size data loaded into texture
 
Vector2 d_texelScaling
 cached pixel to texel mapping scale values.
 
OpenGLRendererd_owner
 OpenGLRenderer that created and owns this OpenGLTexture.
 

Friends

TextureOpenGLRenderer::createTexture (void)
 
TextureOpenGLRenderer::createTexture (const String &, const String &)
 
TextureOpenGLRenderer::createTexture (const Size &)
 
TextureOpenGLRenderer::createTexture (GLuint, const Size &)
 
void OpenGLRenderer::destroyTexture (Texture &)
 

Additional Inherited Members

- Public Types inherited from CEGUI::Texture
enum  PixelFormat { PF_RGB, PF_RGBA }
 Enumerated type containing the supported pixel formats that can be passed to loadFromMemory. More...
 

Detailed Description

Texture implementation for the OpenGLRenderer.

Member Function Documentation

GLuint CEGUI::OpenGLTexture::getOpenGLTexture ( ) const

Return the internal OpenGL texture id used by this Texture object.

Returns
id of the OpenGL texture that this object is using.
const Size& CEGUI::OpenGLTexture::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::OpenGLTexture::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::OpenGLTexture::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::OpenGLTexture::grabTexture ( )

Grab the texture to a local buffer.

This will destroy the OpenGL texture, and restoreTexture must be called before using it again.

void CEGUI::OpenGLTexture::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::OpenGLTexture::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
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::OpenGLTexture::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
bufferPointer 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::OpenGLTexture::setTextureSize ( const Size sz)

set the size of the internal texture.

Parameters
szsize for the internal texture, in pixels.
Note
Depending upon the hardware capabilities, the actual final size of the texture may be larger than what is specified when calling this function. The texture will never be smaller than what you request here. To discover the actual size, call getSize.
Exceptions
RendererExceptionthrown if the hardware is unable to support a texture large enough to fulfill the requested size.
Returns
Nothing.