Texture implementation for the OpenGLRenderer.
More...
|
| OpenGLTexture (OpenGLRendererBase &owner, const String &name) |
| Basic constructor.
|
|
| OpenGLTexture (OpenGLRendererBase &owner, const String &name, const String &filename, const String &resourceGroup) |
| Constructor that creates a Texture from an image file.
|
|
| OpenGLTexture (OpenGLRendererBase &owner, const String &name, const Sizef &size) |
| Constructor that creates a Texture with a given size.
|
|
| OpenGLTexture (OpenGLRendererBase &owner, const String &name, GLuint tex, const Sizef &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
|
|
void | initInternalPixelFormatFields (const PixelFormat fmt) |
| initialise the internal format flags for the given CEGUI::PixelFormat.
|
|
void | setTextureSize_impl (const Sizef &sz) |
| internal texture resize function (does not reset format or other fields)
|
|
void | loadUncompressedTextureBuffer (const Rectf &dest_area, const GLvoid *buffer) const |
|
void | loadCompressedTextureBuffer (const Rectf &dest_area, const GLvoid *buffer) const |
|
GLsizei | getCompressedTextureSize (const Sizef &pixel_size) const |
|
Texture implementation for the OpenGLRenderer.
void CEGUI::OpenGLTexture::blitFromMemory |
( |
const void * |
sourceData, |
|
|
const Rectf & |
area |
|
) |
| |
|
virtual |
Performs an area memory blit to the texture.
- Parameters
-
sourceData | input data, the size must match area described by the given Rect |
area | area where the blit will happen |
- Note
- The pixel format must match current Texture's pixel format!
Implements CEGUI::Texture.
void CEGUI::OpenGLTexture::blitToMemory |
( |
void * |
targetData | ) |
|
|
virtual |
Performs a complete blit from the texture surface to memory.
- Parameters
-
targetData | the buffer where the target is stored |
- Note
- You have to (correctly) preallocate the target buffer!
Implements CEGUI::Texture.
const String& CEGUI::OpenGLTexture::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.
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 Sizef& 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 Sizef& 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 Vector2f& 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.
bool CEGUI::OpenGLTexture::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
-
fmt | One 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::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 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
-
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::setTextureSize |
( |
const Sizef & |
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.