Crazy Eddies GUI System: CEGUI::OpenGLTexture Class Reference

Crazy Eddies GUI System 0.7.6

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | Friends
CEGUI::OpenGLTexture Class Reference

Texture implementation for the OpenGLRenderer. More...

Inheritance diagram for CEGUI::OpenGLTexture:
[legend]
Collaboration diagram for CEGUI::OpenGLTexture:
[legend]

List of all members.

## 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.
void | setTextureSize (const Size &sz)
| set the size of the internal texture.
void | grabTexture ()
| Grab the texture to a local buffer.
void | restoreTexture ()
| Restore the texture from the locally buffered copy previously create by a call to grabTexture.
const Size & | getSize () const
| Returns the current pixel size of the texture.
const Size & | getOriginalDataSize () const
| Returns the original pixel size of the data loaded into the texture.
const Vector2 & | getTexelScaling () 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).
## 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.
OpenGLRenderer & | d_owner
| OpenGLRenderer that created and owns this OpenGLTexture.
## Friends
Texture & | OpenGLRenderer::createTexture (void)
Texture & | OpenGLRenderer::createTexture (const String &, const String &)
Texture & | OpenGLRenderer::createTexture (const Size &)
Texture & | OpenGLRenderer::createTexture (GLuint, const Size &)
void | OpenGLRenderer::destroyTexture (Texture &)

## 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:

  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::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:

  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::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:

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

set the size of the internal texture.

Parameters:

  sz | size 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:

  RendererException | thrown if the hardware is unable to support a texture large enough to fulfill the requested size.

Returns:
  Nothing.