Equalizer
1.6.1
|
A wrapper around OpenGL textures. More...
#include <texture.h>
Public Member Functions | |
Texture (const unsigned target, const GLEWContext *const glewContext=0) | |
Construct a new Texture. More... | |
virtual | ~Texture () |
Destruct the texture. More... | |
const GLEWContext * | glewGetContext () const |
void | setGLEWContext (const GLEWContext *context) |
Data Access. | |
unsigned | getTarget () const |
uint32_t | getCompressorTarget () const |
unsigned | getInternalFormat () const |
void | setExternalFormat (const uint32_t format, const uint32_t type) |
Set the external data format and type. More... | |
unsigned | getFormat () const |
unsigned | getType () const |
unsigned | getName () const |
int32_t | getWidth () const |
int32_t | getHeight () const |
bool | isValid () const |
Operations. | |
void | init (const unsigned internalFormat, const int32_t width, const int32_t height) |
Initialize an OpenGL texture. More... | |
void | flush () |
Clear the texture, including deleting the GL texture name. More... | |
void | applyZoomFilter (const ZoomFilter filter) const |
void | applyWrap () const |
void | copyFromFrameBuffer (const unsigned internalFormat, const fabric::PixelViewport &pvp) |
Copy the specified area from the current read buffer to the texture at 0,0. More... | |
void | upload (const int32_t width, const int32_t height, const void *ptr) |
Copy the specified buffer to the texture at 0,0. More... | |
void | download (void *buffer) const |
Copy the texture data from the GPU to the given memory address. More... | |
void | bind () const |
Bind the texture. More... | |
void | bindToFBO (const unsigned target, const int32_t width, const int32_t height) |
Create and bind a texture to the current FBO. More... | |
void | resize (const int32_t width, const int32_t height) |
Resize the texture. More... | |
void | writeRGB (const std::string &filename) const |
Write the texture data as an rgb image file. More... | |
Wrap existing GL textures | |
void | flushNoDelete () |
Flush the texture without deleting the GL texture name. More... | |
void | setGLData (const unsigned id, const unsigned internalFormat, const int32_t width, const int32_t height) |
Use an OpenGL texture created externally. More... | |
A wrapper around OpenGL textures.
So far used by the Image and Compositor. The target is assumed to be GL_TEXTURE_RECTANGLE_ARB or GL_TEXTURE_2D.
eq::util::Texture::Texture | ( | const unsigned | target, |
const GLEWContext *const | glewContext = 0 |
||
) |
Construct a new Texture.
A GLEWContext might be provided later using setGLEWContext(). It is needed for operations using OpenGL extensions or version 1.2 or later functions.
|
virtual |
Destruct the texture.
void eq::util::Texture::bind | ( | ) | const |
Bind the texture.
void eq::util::Texture::bindToFBO | ( | const unsigned | target, |
const int32_t | width, | ||
const int32_t | height | ||
) |
Create and bind a texture to the current FBO.
void eq::util::Texture::copyFromFrameBuffer | ( | const unsigned | internalFormat, |
const fabric::PixelViewport & | pvp | ||
) |
Copy the specified area from the current read buffer to the texture at 0,0.
void eq::util::Texture::download | ( | void * | buffer | ) | const |
Copy the texture data from the GPU to the given memory address.
void eq::util::Texture::flush | ( | ) |
Clear the texture, including deleting the GL texture name.
void eq::util::Texture::flushNoDelete | ( | ) |
Flush the texture without deleting the GL texture name.
unsigned eq::util::Texture::getFormat | ( | ) | const |
int32_t eq::util::Texture::getHeight | ( | ) | const |
unsigned eq::util::Texture::getInternalFormat | ( | ) | const |
unsigned eq::util::Texture::getName | ( | ) | const |
Referenced by eqAsync::AsyncFetcher::run().
unsigned eq::util::Texture::getTarget | ( | ) | const |
unsigned eq::util::Texture::getType | ( | ) | const |
int32_t eq::util::Texture::getWidth | ( | ) | const |
void eq::util::Texture::init | ( | const unsigned | internalFormat, |
const int32_t | width, | ||
const int32_t | height | ||
) |
Initialize an OpenGL texture.
internalFormat | the OpenGL texture internal format. |
width | the width of the texture. |
height | the height of the texture. |
Referenced by eqAsync::AsyncFetcher::run().
bool eq::util::Texture::isValid | ( | ) | const |
void eq::util::Texture::resize | ( | const int32_t | width, |
const int32_t | height | ||
) |
Resize the texture.
void eq::util::Texture::setExternalFormat | ( | const uint32_t | format, |
const uint32_t | type | ||
) |
Set the external data format and type.
format | the OpenGL format. |
type | the OpenGL Type. |
void eq::util::Texture::setGLData | ( | const unsigned | id, |
const unsigned | internalFormat, | ||
const int32_t | width, | ||
const int32_t | height | ||
) |
Use an OpenGL texture created externally.
The previous GL texture, if any, is deallocated using flush(). The new texture has to be of the correct target, size and internal format. The texture is validated by this method.
id | The OpenGL texture name. |
internalFormat | the OpenGL texture internal format. |
width | the width of the texture. |
height | the height of the texture. |
void eq::util::Texture::upload | ( | const int32_t | width, |
const int32_t | height, | ||
const void * | ptr | ||
) |
Copy the specified buffer to the texture at 0,0.
Referenced by eqAsync::AsyncFetcher::run().
void eq::util::Texture::writeRGB | ( | const std::string & | filename | ) | const |
Write the texture data as an rgb image file.