Equalizer 1.0

eq::Image Class Reference

A holder for pixel data. More...

#include <image.h>

Collaboration diagram for eq::Image:

List of all members.

Classes

struct  Attachment
struct  Memory

Public Member Functions

 Image ()
 Construct a new Image.
virtual ~Image ()
 Destruct the Image.
Image parameters
void setInternalFormat (const Frame::Buffer buffer, const uint32_t internalFormat)
 Set the internal format for the given buffer.
uint32_t getInternalFormat (const Frame::Buffer buffer) const
uint32_t getExternalFormat (const Frame::Buffer buffer) const
 Get the external format of the given buffer.
uint32_t getPixelSize (const Frame::Buffer buffer) const
 Get the size, in bytes, of one pixel in the external pixel data.
bool hasAlpha () const
void setStorageType (const Frame::Type type)
 Set the frame pixel storage type.
Frame::Type getStorageType () const
void setPixelViewport (const PixelViewport &pvp)
 Set the internal pixel viewport of the image.
const PixelViewportgetPixelViewport () const
void reset ()
 Reset the image to its default state.
void flush ()
 Free all cached data of this image.
Pixel Data Access
const uint8_t * getPixelPointer (const Frame::Buffer buffer) const
uint8_t * getPixelPointer (const Frame::Buffer buffer)
uint32_t getPixelDataSize (const Frame::Buffer buffer) const
const PixelDatagetPixelData (const Frame::Buffer) const
const PixelDatacompressPixelData (const Frame::Buffer)
bool hasPixelData (const Frame::Buffer buffer) const
void clearPixelData (const Frame::Buffer buffer)
 Clear and validate an image buffer.
void validatePixelData (const Frame::Buffer buffer)
 Allocate an image buffer without initialization.
void setPixelData (const Frame::Buffer buffer, const PixelData &data)
 Set the pixel data of the given image buffer.
void setAlphaUsage (const bool enabled)
 Set alpha data preservation during download and compression.
bool getAlphaUsage () const
void setQuality (const Frame::Buffer buffer, const float quality)
 Set the minimum quality after a full download-compression path.
float getQuality (const Frame::Buffer buffer) const
Texture Data Access
const util::TexturegetTexture (const Frame::Buffer buffer) const
 Get the texture of this image.
bool hasTextureData (const Frame::Buffer buffer) const
Operations
bool readback (const uint32_t buffers, const PixelViewport &pvp, const Zoom &zoom, util::ObjectManager< const void * > *glObjects)
 Read back an image from the frame buffer.
bool readback (const Frame::Buffer buffer, const util::Texture *texture, const GLEWContext *glewContext)
void upload (const Frame::Buffer buffer, util::Texture *texture, const Vector2i &position, util::ObjectManager< const void * > *glObjects) const
 Upload this image to the frame buffer or a texture.
bool writeImage (const std::string &filename, const Frame::Buffer buffer) const
 Write the pixel data as rgb image file.
bool writeImages (const std::string &filenameTemplate) const
 Write all valid pixel data as separate images.
bool readImage (const std::string &filename, const Frame::Buffer buffer)
 Read pixel data from an uncompressed rgb image file.
void setOffset (int32_t x, int32_t y)
Internal
std::vector< uint32_t > findCompressors (const Frame::Buffer buffer) const
void findTransferers (const Frame::Buffer buffer, const GLEWContext *glewContext, std::vector< uint32_t > &names)
bool allocCompressor (const Frame::Buffer buffer, const uint32_t name)
bool allocDownloader (const Frame::Buffer buffer, const uint32_t name, const GLEWContext *glewContext)
uint32_t getDownloaderName (const Frame::Buffer buffer) const

Detailed Description

A holder for pixel data.

An image holds color and depth information for one rectangular region.

Definition at line 42 of file image.h.


Constructor & Destructor Documentation

eq::Image::Image ( )

Construct a new Image.

Version:
1.0
virtual eq::Image::~Image ( ) [virtual]

Destruct the Image.

Version:
1.0

Member Function Documentation

void eq::Image::clearPixelData ( const Frame::Buffer  buffer)

Clear and validate an image buffer.

RGBA and BGRA buffers are initialized with (0,0,0,255). DEPTH_UNSIGNED_INT buffers are initialized with 255. All other buffers are zero-initialized. Validates the buffer.

Parameters:
bufferthe image buffer to clear.
Version:
1.0
const PixelData& eq::Image::compressPixelData ( const Frame::Buffer  )
Returns:
the pixel data, compressing it if needed.
Version:
1.0
void eq::Image::flush ( )

Free all cached data of this image.

Version:
1.0
bool eq::Image::getAlphaUsage ( ) const [inline]
Returns:
true if alpha data can not be ignored.
Version:
1.0

Definition at line 211 of file image.h.

uint32_t eq::Image::getExternalFormat ( const Frame::Buffer  buffer) const [inline]

Get the external format of the given buffer.

The external format describes the layout of the pixel data in main memory. It is determined by the plugin used during download. The external format also determines the pixel size and alpha availability.

Parameters:
bufferthe frame buffer attachment.
Returns:
the external format of the pixel data.
Version:
1.0

Definition at line 83 of file image.h.

uint32_t eq::Image::getInternalFormat ( const Frame::Buffer  buffer) const
Returns:
the internal format of the pixel data.
Version:
1.0
const PixelData& eq::Image::getPixelData ( const Frame::Buffer  ) const
Returns:
the pixel data.
Version:
1.0
uint32_t eq::Image::getPixelDataSize ( const Frame::Buffer  buffer) const
Returns:
the total size of the pixel data in bytes.
Version:
1.0
const uint8_t* eq::Image::getPixelPointer ( const Frame::Buffer  buffer) const
Returns:
a pointer to the raw pixel data.
Version:
1.0
uint8_t* eq::Image::getPixelPointer ( const Frame::Buffer  buffer)
Returns:
a pointer to the raw pixel data.
Version:
1.0
uint32_t eq::Image::getPixelSize ( const Frame::Buffer  buffer) const [inline]

Get the size, in bytes, of one pixel in the external pixel data.

Parameters:
bufferthe frame buffer attachment.
See also:
getExternalFormat()
Version:
1.0

Definition at line 93 of file image.h.

const PixelViewport& eq::Image::getPixelViewport ( ) const [inline]
Returns:
the internal pixel viewport.
Version:
1.0

Definition at line 133 of file image.h.

float eq::Image::getQuality ( const Frame::Buffer  buffer) const
Returns:
the minimum quality.
Version:
1.0
Frame::Type eq::Image::getStorageType ( ) const [inline]
Returns:
the pixel data storage type.
Version:
1.0

Definition at line 117 of file image.h.

const util::Texture& eq::Image::getTexture ( const Frame::Buffer  buffer) const

Get the texture of this image.

Version:
1.0
bool eq::Image::hasAlpha ( ) const
Returns:
true if the image has a color buffer with alpha values.
See also:
getExternalFormat()
Version:
1.0
bool eq::Image::hasPixelData ( const Frame::Buffer  buffer) const [inline]
Returns:
true if the image has valid pixel data for the buffer.
Version:
1.0

Definition at line 172 of file image.h.

bool eq::Image::hasTextureData ( const Frame::Buffer  buffer) const
Returns:
true if the image has texture data for the buffer.
Version:
1.0
bool eq::Image::readback ( const uint32_t  buffers,
const PixelViewport pvp,
const Zoom zoom,
util::ObjectManager< const void * > *  glObjects 
)

Read back an image from the frame buffer.

Parameters:
buffersbit-wise combination of the Frame::Buffer components.
pvpthe area of the frame buffer wrt the drawable.
zoomthe scale factor to apply during readback.
glObjectsthe GL object manager for the current GL context.
Returns:
true when data was read back, false on error.
Version:
1.0
bool eq::Image::readImage ( const std::string &  filename,
const Frame::Buffer  buffer 
)

Read pixel data from an uncompressed rgb image file.

Version:
1.0
void eq::Image::reset ( )

Reset the image to its default state.

This method does not free allocated memory or plugins. Invalidates all pixel data.

See also:
flush()
Version:
1.0
void eq::Image::setAlphaUsage ( const bool  enabled)

Set alpha data preservation during download and compression.

Version:
1.0
void eq::Image::setInternalFormat ( const Frame::Buffer  buffer,
const uint32_t  internalFormat 
)

Set the internal format for the given buffer.

The internal format descibes the format of the pixel data source, typically an OpenGL frame buffer or texture. The internal formats used by Equalizer use the same numerical value as their OpenGL counterpart.

Parameters:
bufferthe frame buffer attachment.
internalFormatthe internal format.
Version:
1.0
void eq::Image::setPixelData ( const Frame::Buffer  buffer,
const PixelData data 
)

Set the pixel data of the given image buffer.

Previous data for the buffer is overwritten. Validates the buffer. Depending on the given PixelData parameters, the pixel data is copied, decompressed or cleared.

Parameters:
bufferthe image buffer to set.
datathe pixel data.
Version:
1.0
void eq::Image::setPixelViewport ( const PixelViewport pvp)

Set the internal pixel viewport of the image.

The image pixel data and textures will be invalidated. The pixel data describes the size of the image on the destination (GPU). Each downloaded buffer has its own size, which is potentially different from the image PVP.

Parameters:
pvpthe pixel viewport.
Version:
1.0
void eq::Image::setQuality ( const Frame::Buffer  buffer,
const float  quality 
)

Set the minimum quality after a full download-compression path.

The automatic selection of a download and compression plugin will never always choose plugins which maintain at least the given quality. A quality of 1.0 enables a lossless transmission path, and a quality of 0.0 disables all quality quarantees.

Parameters:
bufferthe frame buffer attachment.
qualitythe minimum quality to maintain.
Version:
1.0
void eq::Image::setStorageType ( const Frame::Type  type) [inline]

Set the frame pixel storage type.

Images of storage type TYPE_MEMORY are read back from the frame buffer into main memory using a transfer plugin. The data can be accessed through the PixelData.

Image of storage type TYPE_TEXTURE read frame buffer data into a texture, which can be accessed using getTexture().

Version:
1.0

Definition at line 114 of file image.h.

void eq::Image::upload ( const Frame::Buffer  buffer,
util::Texture texture,
const Vector2i position,
util::ObjectManager< const void * > *  glObjects 
) const

Upload this image to the frame buffer or a texture.

If a texture is given, the upload is performed to the it. Otherwise the pixel data is uploaded to the frame buffer. The texture will be initialized using the parameters corresponding to the requested buffer.

Parameters:
bufferthe buffer type.
texturethe target texture, or 0 for frame buffer upload.
positionthe destination offset wrt current GL viewport.
glObjectsthe OpenGL object manager for the current context.
Version:
1.0
void eq::Image::validatePixelData ( const Frame::Buffer  buffer)

Allocate an image buffer without initialization.

Version:
1.0
bool eq::Image::writeImage ( const std::string &  filename,
const Frame::Buffer  buffer 
) const

Write the pixel data as rgb image file.

Version:
1.0
bool eq::Image::writeImages ( const std::string &  filenameTemplate) const

Write all valid pixel data as separate images.

Version:
1.0

The documentation for this class was generated from the following file:
Generated on Sun May 8 2011 19:11:09 for Equalizer 1.0 by  doxygen 1.7.3