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.