20 #ifndef EQ_FRAMEDATA_H
21 #define EQ_FRAMEDATA_H
25 #include <eq/fabric/frameData.h>
26 #include <co/object.h>
27 #include <lunchbox/monitor.h>
28 #include <lunchbox/spinLock.h>
32 namespace detail {
class FrameData; }
50 public lunchbox::Referenced
56 uint32_t internalFormat;
57 uint32_t externalFormat;
60 uint32_t compressorName;
61 uint32_t compressorFlags;
123 const DrawableConfig& config );
153 const DrawableConfig& config,
155 const RenderContext& context );
170 EQ_API
void waitReady(
const uint32_t timeout = LB_TIMEOUT_INDEFINITE )
174 void setVersion(
const uint64_t version );
199 bool addImage(
const co::ObjectVersion& frameDataVersion,
200 const PixelViewport& pvp,
const Zoom& zoom,
201 const RenderContext& context,
const uint32_t buffers,
202 const bool useAlpha, uint8_t* data );
203 void setReady(
const co::ObjectVersion& frameData,
207 virtual ChangeType getChangeType()
const {
return INSTANCE; }
208 virtual void getInstanceData( co::DataOStream& os );
209 virtual void applyInstanceData( co::DataIStream& is );
212 detail::FrameData*
const _impl;
216 const DrawableConfig& config,
220 void _applyVersion(
const uint128_t& version );
223 void _setReady(
const uint64_t version );
225 LB_TS_VAR( _commandThread );
229 EQ_API std::ostream&
operator << ( std::ostream&,
const FrameData& );
232 #endif // EQ_FRAMEDATA_H
lunchbox::Monitor< uint32_t > Listener
Ready listener.
A channel represents a two-dimensional viewport within a Window.
EQ_API void setAlphaUsage(const bool useAlpha)
Set alpha usage for newly allocated images.
virtual EQ_API ~FrameData()
Destruct this frame data.
EQ_API std::ostream & operator<<(std::ostream &os, const ConfigEvent *event)
Print the config event to the given output stream.
EQ_API const Images & getImages() const
The images of this frame data holder.
std::vector< PixelViewport > PixelViewports
A vector of eq::PixelViewport.
EQ_API FrameData()
Construct a new frame data holder.
Buffer
Components of the frame are to be used during readback and assembly.
EQ_API void flush()
Flush the frame by deleting all images.
Type
The storage type for pixel data.
std::vector< Image * > Images
A vector of pointers to eq::Image.
EQ_API bool isReady() const
void useCompressor(const Frame::Buffer buffer, const uint32_t name)
Sets a compressor which will be allocated and used during transmit of the image buffer.
void addListener(Listener &listener)
Add a ready listener.
A holder for multiple images.
The Equalizer client library.
Images startReadback(const Frame &frame, util::ObjectManager &glObjects, const DrawableConfig &config, const PixelViewports ®ions, const RenderContext &context)
Start reading back a set of images for this frame data.
EQ_API void resetPlugins()
Deallocate all transfer and compression plugins on all images.
void setReady()
Set the frame data ready.
EQ_API void clear()
Clear the frame by recycling the attached images.
A facility class to manage OpenGL objects across shared contexts.
EQ_API Image * newImage(const Frame::Type type, const DrawableConfig &config)
Allocate and add a new image.
A holder for a frame data and related parameters.
void deleteGLObjects(util::ObjectManager &om)
Delete data allocated by the given object manager on all images.
EQ_API void waitReady(const uint32_t timeout=LB_TIMEOUT_INDEFINITE) const
Wait for the frame data to become available.
void setQuality(const Frame::Buffer buffer, const float quality)
Set the minimum quality after download and compression.
void removeListener(Listener &listener)
Remove a frame listener.
Holds a 2D pixel viewport with methods for manipulation.