Equalizer  1.2.1
Public Member Functions
eq::util::Texture Class Reference

A wrapper around OpenGL textures. More...

#include <texture.h>

+ Inheritance diagram for eq::util::Texture:
+ Collaboration diagram for eq::util::Texture:

List of all members.

Public Member Functions

 Texture (const GLenum target, const GLEWContext *const glewContext=0)
 Construct a new Texture.
virtual ~Texture ()
 Destruct the texture.
const GLEWContext * glewGetContext () const
void setGLEWContext (const GLEWContext *context)
Data Access.
GLenum getTarget () const
uint32_t getCompressorTarget () const
GLuint getInternalFormat () const
void setExternalFormat (const uint32_t format, const uint32_t type)
 Set the external data format and type.
GLuint getFormat () const
GLuint getType () const
GLuint getName () const
int32_t getWidth () const
int32_t getHeight () const
bool isValid () const
Operations.
void init (const GLuint internalFormat, const int32_t width, const int32_t height)
 Initialize an OpenGL texture.
void flush ()
 Clear the texture, including deleting the GL texture name.
void applyZoomFilter (const ZoomFilter filter) const
void applyWrap () const
void copyFromFrameBuffer (const GLuint internalFormat, const fabric::PixelViewport &pvp)
 Copy the specified area from the current read buffer to the texture at 0,0.
void upload (const int32_t width, const int32_t height, const void *ptr)
 Copy the specified buffer to the texture at 0,0.
void download (void *buffer) const
 Copy the texture data from the GPU to the given memory address.
void bind () const
 Bind the texture.
void bindToFBO (const GLenum target, const int32_t width, const int32_t height)
 Create and bind a texture to the current FBO.
void resize (const int32_t width, const int32_t height)
 Resize the texture.
void writeRGB (const std::string &filename) const
 Write the texture data as an rgb image file.
Wrap existing GL textures
void flushNoDelete ()
 Flush the texture without deleting the GL texture name.
void setGLData (const GLuint id, const GLuint internalFormat, const int32_t width, const int32_t height)
 Use an OpenGL texture created externally.

Detailed Description

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.

Definition at line 40 of file texture.h.


Constructor & Destructor Documentation

eq::util::Texture::Texture ( const GLenum  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.

Version:
1.0
virtual eq::util::Texture::~Texture ( ) [virtual]

Destruct the texture.

Version:
1.0

Member Function Documentation

void eq::util::Texture::bind ( ) const

Bind the texture.

Version:
1.0
void eq::util::Texture::bindToFBO ( const GLenum  target,
const int32_t  width,
const int32_t  height 
)

Create and bind a texture to the current FBO.

Version:
1.0
void eq::util::Texture::copyFromFrameBuffer ( const GLuint  internalFormat,
const fabric::PixelViewport pvp 
)

Copy the specified area from the current read buffer to the texture at 0,0.

Version:
1.0
void eq::util::Texture::download ( void *  buffer) const

Copy the texture data from the GPU to the given memory address.

Version:
1.0

Clear the texture, including deleting the GL texture name.

Version:
1.0

Flush the texture without deleting the GL texture name.

Version:
1.0
GLuint eq::util::Texture::getFormat ( ) const [inline]
Returns:
the external data format of the texture, e.g., GL_RGBA.
Version:
1.0

Definition at line 89 of file texture.h.

int32_t eq::util::Texture::getHeight ( ) const [inline]
Returns:
the current height.
Version:
1.0

Definition at line 104 of file texture.h.

GLuint eq::util::Texture::getInternalFormat ( ) const [inline]
Returns:
the internal (GPU) pixel format of the texture.
See also:
init()
Version:
1.0

Definition at line 73 of file texture.h.

GLuint eq::util::Texture::getName ( ) const [inline]
Returns:
the OpenGL texture name.
Version:
1.0

Definition at line 98 of file texture.h.

Referenced by eqAsync::AsyncFetcher::run().

+ Here is the caller graph for this function:

GLenum eq::util::Texture::getTarget ( ) const [inline]
Returns:
the target of the texture.
Version:
1.0

Definition at line 60 of file texture.h.

GLuint eq::util::Texture::getType ( ) const [inline]
Returns:
the external data type of the texture, e.g., GL_HALF_FLOAT.
Version:
1.0

Definition at line 95 of file texture.h.

int32_t eq::util::Texture::getWidth ( ) const [inline]
Returns:
the current width.
Version:
1.0

Definition at line 101 of file texture.h.

void eq::util::Texture::init ( const GLuint  internalFormat,
const int32_t  width,
const int32_t  height 
)

Initialize an OpenGL texture.

Parameters:
internalFormatthe OpenGL texture internal format.
widththe width of the texture.
heightthe height of the texture.
Version:
1.0

Referenced by eqAsync::AsyncFetcher::run().

+ Here is the caller graph for this function:

Returns:
true if the texture can be bound.
Version:
1.0
void eq::util::Texture::resize ( const int32_t  width,
const int32_t  height 
)

Resize the texture.

Version:
1.0
void eq::util::Texture::setExternalFormat ( const uint32_t  format,
const uint32_t  type 
)

Set the external data format and type.

Parameters:
formatthe OpenGL format.
typethe OpenGL Type.
Version:
1.0
void eq::util::Texture::setGLData ( const GLuint  id,
const GLuint  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.

Parameters:
idThe OpenGL texture name.
internalFormatthe OpenGL texture internal format.
widththe width of the texture.
heightthe height of the texture.
Version:
1.0
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.

Version:
1.0

Referenced by eqAsync::AsyncFetcher::run().

+ Here is the caller graph for this function:

void eq::util::Texture::writeRGB ( const std::string &  filename) const

Write the texture data as an rgb image file.

Version:
1.0

The documentation for this class was generated from the following file:
Generated on Fri Jun 8 2012 15:44:36 for Equalizer 1.2.1 by  doxygen 1.8.0