23 #include <eq/client/frame.h>
24 #include <eq/client/types.h>
28 namespace detail {
class Image; }
35 class Image :
public boost::noncopyable
58 const uint32_t internalFormat );
125 EQ_API
void setZoom(
const Zoom& zoom );
128 EQ_API
const Zoom&
getZoom()
const;
140 const uint32_t name );
260 const float quality );
293 EQ_API
bool readback(
const uint32_t buffers,
const PixelViewport& pvp,
297 EQ_API
void finishReadback(
const Zoom&,
const GLEWContext* );
311 const PixelViewport& pvp,
const Zoom& zoom,
317 const GLEWContext* glewContext );
325 EQ_API
void finishReadback(
const GLEWContext* glewContext );
342 const Vector2i& position,
346 EQ_API
bool writeImage(
const std::string& filename,
350 EQ_API
bool writeImages(
const std::string& filenameTemplate )
const;
353 EQ_API
bool readImage(
const std::string& filename,
357 void setOffset( int32_t x, int32_t y );
366 EQ_API std::vector< uint32_t >
373 EQ_API std::vector< uint32_t >
374 findTransferers(
const Frame::Buffer buffer,
const GLEWContext* gl )
379 const uint32_t name );
384 const GLEWContext* glewContext );
387 EQ_API uint32_t getDownloaderName(
const Frame::Buffer buffer )
const;
391 detail::Image*
const _impl;
394 const void* _getBufferKey(
const Frame::Buffer buffer )
const;
397 const void* _getCompressorKey(
const Frame::Buffer buffer )
const;
410 const uint32_t externalFormat,
411 const uint32_t pixelSize,
412 const bool hasAlpha );
414 bool _readback(
const Frame::Buffer buffer,
const Zoom& zoom,
417 bool _startReadback(
const Frame::Buffer buffer,
const Zoom& zoom,
420 void _finishReadback(
const Frame::Buffer buffer,
const GLEWContext* );
EQ_API bool writeImages(const std::string &filenameTemplate) const
Write all valid pixel data as separate images.
EQ_API bool hasTextureData(const Frame::Buffer buffer) const
EQ_API bool getAlphaUsage() const
EQ_API uint32_t getInternalFormat(const Frame::Buffer buffer) const
EQ_API bool writeImage(const std::string &filename, const Frame::Buffer buffer) const
Write the pixel data as rgb image file.
EQ_API Frame::Type getStorageType() const
EQ_API bool startReadback(const uint32_t buffers, const PixelViewport &pvp, const Zoom &zoom, util::ObjectManager &glObjects)
Start reading back an image from the frame buffer.
EQ_API const PixelViewport & getPixelViewport() const
EQ_API bool upload(const Frame::Buffer buffer, util::Texture *texture, const Vector2i &position, util::ObjectManager &glObjects) const
Upload this image to the frame buffer or a texture.
EQ_API void flush()
Free all cached data of this image.
The pixel data structure manages the pixel information for images.
EQ_API void setPixelData(const Frame::Buffer buffer, const PixelData &data)
Set the pixel data of the given image buffer.
EQ_API const uint8_t * getPixelPointer(const Frame::Buffer buffer) const
Buffer
The buffer format defines which components of the frame are to be used during readback and assembly...
A wrapper around OpenGL textures.
EQ_API uint32_t getExternalFormat(const Frame::Buffer buffer) const
Get the external format of the given buffer.
EQ_API const Zoom & getZoom() const
Type
The storage type for pixel data.
EQ_API void deleteGLObjects(util::ObjectManager &om)
Delete all OpenGL objects allocated from the given object manager.
EQ_API void setZoom(const Zoom &zoom)
Sets the zoom factor to be used for compositing.
EQ_API bool hasPixelData(const Frame::Buffer buffer) const
EQ_API Image()
Construct a new Image.
EQ_API void setInternalFormat(const Frame::Buffer buffer, const uint32_t internalFormat)
Set the internal format for the given buffer.
EQ_API const PixelData & compressPixelData(const Frame::Buffer)
EQ_API void setStorageType(const Frame::Type type)
Set the frame pixel storage type.
EQ_API void validatePixelData(const Frame::Buffer buffer)
Allocate an image buffer without initialization.
EQ_API void useCompressor(const Frame::Buffer buffer, const uint32_t name)
Set a compressor to be used during transmission of the image.
EQ_API uint32_t getPixelDataSize(const Frame::Buffer buffer) const
EQ_API float getQuality(const Frame::Buffer buffer) const
EQ_API bool readback(const uint32_t buffers, const PixelViewport &pvp, const Zoom &zoom, util::ObjectManager &glObjects)
Read back an image from the frame buffer.
A facility class to manage OpenGL objects across shared contexts.
EQ_API void clearPixelData(const Frame::Buffer buffer)
Clear and validate an image buffer.
EQ_API bool hasAsyncReadback() const
EQ_API void setQuality(const Frame::Buffer buffer, const float quality)
Set the minimum quality after a full download-compression path.
EQ_API const util::Texture & getTexture(const Frame::Buffer buffer) const
Get the texture of this image.
EQ_API bool readImage(const std::string &filename, const Frame::Buffer buffer)
Read pixel data from an uncompressed rgb image file.
EQ_API void reset()
Reset the image to its default state.
EQ_API uint32_t getPixelSize(const Frame::Buffer buffer) const
Get the size, in bytes, of one pixel in the external pixel data.
EQ_API void setPixelViewport(const PixelViewport &pvp)
Set the internal pixel viewport of the image.
EQ_API bool hasAlpha() const
virtual EQ_API ~Image()
Destruct the Image.
EQ_API const PixelData & getPixelData(const Frame::Buffer) const
EQ_API void resetPlugins()
Deallocate all transfer and compression plugins.
EQ_API void setAlphaUsage(const bool enabled)
Set alpha data preservation during download and compression.