29 namespace detail {
class Image; }
59 const uint32_t internalFormat );
126 EQ_API
void setZoom(
const Zoom& zoom );
129 EQ_API
const Zoom&
getZoom()
const;
132 EQ_API
void setContext(
const RenderContext& context );
135 EQ_API
const RenderContext&
getContext()
const;
266 const float quality );
298 EQ_API
bool startReadback(
const uint32_t buffers,
const PixelViewport& pvp,
299 const RenderContext& context,
const Zoom& zoom,
305 const GLEWContext* glewContext );
330 const Vector2i& position,
341 EQ_API
bool writeImage(
const std::string& filename,
345 EQ_API
bool writeImages(
const std::string& filenameTemplate )
const;
348 EQ_API
bool readImage(
const std::string& filename,
352 void setOffset( int32_t x, int32_t y );
361 EQ_API std::vector< uint32_t >
368 EQ_API std::vector< uint32_t >
369 findTransferers(
const Frame::Buffer buffer,
const GLEWContext* gl )
374 const uint32_t name );
379 const GLEWContext* glewContext );
382 EQ_API uint32_t getDownloaderName(
const Frame::Buffer buffer )
const;
386 Image(
const Image& ) =
delete;
387 Image& operator=(
const Image& ) =
delete;
388 detail::Image*
const _impl;
391 const void* _getBufferKey(
const Frame::Buffer buffer )
const;
394 const void* _getCompressorKey(
const Frame::Buffer buffer )
const;
407 const uint32_t externalFormat,
408 const uint32_t pixelSize,
409 const bool hasAlpha );
411 bool _readback(
const Frame::Buffer buffer,
const Zoom& zoom,
414 bool _startReadback(
const Frame::Buffer buffer,
const Zoom& zoom,
417 void _finishReadback(
const Frame::Buffer buffer,
const GLEWContext* );
419 bool _writeImage(
const std::string& filename,
const Frame::Buffer buffer,
420 const unsigned char* data )
const;
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 const RenderContext & getContext() 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 void setContext(const RenderContext &context)
Set the render context producing this image.
EQ_API Frame::Type getStorageType() const
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 bool startReadback(const uint32_t buffers, const PixelViewport &pvp, const RenderContext &context, const Zoom &zoom, util::ObjectManager &glObjects)
Start reading back an image from the frame buffer.
EQ_API const uint8_t * getPixelPointer(const Frame::Buffer buffer) const
Buffer
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 useCompressor(Frame::Buffer buffer, uint32_t name)
Set a compressor to be used during transmission of the image.
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.
The Equalizer client library.
EQ_API void validatePixelData(const Frame::Buffer buffer)
Allocate an image buffer without initialization.
EQ_API uint32_t getPixelDataSize(const Frame::Buffer buffer) const
EQ_API float getQuality(const Frame::Buffer buffer) const
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 void finishReadback(const GLEWContext *glewContext)
Finish an asynchronous readback.
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.