Equalizer  2.1.0
Parallel Rendering Framework
eq::Frame Class Reference

A holder for a frame data and related parameters. More...

#include <frame.h>

+ Inheritance diagram for eq::Frame:
+ Collaboration diagram for eq::Frame:

Public Member Functions

EQ_API Frame ()
 Construct a new frame. More...
 
virtual EQ_API ~Frame ()
 Destruct the frame. More...
 
Data Access
EQ_API void setZoomFilter (const ZoomFilter zoomFilter)
 Set the filter applied to zoomed assemble operations. More...
 
EQ_API ZoomFilter getZoomFilter () const
 
EQ_API const ImagesgetImages () const
 
EQ_API void setFrameData (FrameDataPtr data)
 Set the data for this frame. More...
 
EQ_API FrameDataPtr getFrameData ()
 
EQ_API ConstFrameDataPtr getFrameData () const
 
EQ_API Buffer getBuffers () const
 
EQ_API void disableBuffer (const Buffer buffer)
 Disable the usage of a frame buffer attachment for all images. More...
 
EQ_API void setAlphaUsage (const bool useAlpha)
 Set alpha usage for newly allocated images. More...
 
EQ_API void setQuality (const Buffer buffer, const float quality)
 Set the minimum quality after compression. More...
 
EQ_API void useCompressor (const Buffer buffer, const uint32_t name)
 Sets a compressor for compression for following transmissions. More...
 
Operations
EQ_API void clear ()
 
void deleteGLObjects (util::ObjectManager &om)
 
EQ_API void readback (util::ObjectManager &glObjects, const DrawableConfig &config, const PixelViewports &regions, const RenderContext &context)
 Read back a set of images. More...
 
EQ_API Images startReadback (util::ObjectManager &glObjects, const DrawableConfig &config, const PixelViewports &regions, const RenderContext &context)
 Start reading back a set of images for this frame. More...
 
void setReady ()
 Set the frame ready. More...
 
EQ_API bool isReady () const
 Test the readiness of the frame. More...
 
EQ_API void waitReady (const uint32_t timeout=LB_TIMEOUT_INDEFINITE) const
 Wait for the frame to become available. More...
 
void addListener (lunchbox::Monitor< uint32_t > &listener)
 Add a listener which will be incremented when the frame is ready. More...
 
void removeListener (lunchbox::Monitor< uint32_t > &listener)
 Remove a frame listener. More...
 
- Public Member Functions inherited from eq::fabric::Frame
EQFABRIC_API Frame ()
 Construct a new frame. More...
 
EQFABRIC_API const std::vector< uint128_t > & getInputNodes (const Eye eye) const
 
EQFABRIC_API const co::NodeIDs & getInputNetNodes (const Eye eye) const
 
EQFABRIC_API void setName (const std::string &name)
 Set the name of the frame. More...
 
EQFABRIC_API const std::string & getName () const
 
EQFABRIC_API const Vector2i & getOffset () const
 
EQFABRIC_API void setOffset (const Vector2i &offset)
 Set the position of the frame wrt the channel. More...
 
EQFABRIC_API void setZoom (const Zoom &zoom)
 Set the zoom for this frame holder. More...
 
EQFABRIC_API const ZoomgetZoom () const
 
EQFABRIC_API const co::ObjectVersion & getDataVersion (const Eye) const
 

Additional Inherited Members

- Public Types inherited from eq::fabric::Frame
enum  Buffer : uint32_t {
  none = LB_BIT_NONE, Buffer::undefined = LB_BIT1, Buffer::color = LB_BIT5, Buffer::depth = LB_BIT9,
  all = LB_BIT_ALL_32
}
 Components of the frame are to be used during readback and assembly. More...
 
enum  Type { TYPE_MEMORY, TYPE_TEXTURE }
 The storage type for pixel data. More...
 
- Protected Member Functions inherited from eq::fabric::Frame
virtual ChangeType getChangeType () const
 
virtual EQFABRIC_API void getInstanceData (co::DataOStream &os)
 
virtual EQFABRIC_API void applyInstanceData (co::DataIStream &is)
 
EQFABRIC_API void _setDataVersion (const unsigned i, const co::ObjectVersion &ov)
 
EQFABRIC_API std::vector< uint128_t > & _getInputNodes (const unsigned i)
 
EQFABRIC_API co::NodeIDs & _getInputNetNodes (const unsigned i)
 

Detailed Description

A holder for a frame data and related parameters.

A Frame has to be set up with a FrameData which ultimately holds the pixel data using images. Input and output frames provided by the eq::Channel are set up correctly with FrameData to connect one output frame to one ore more input frames. Some Frame parameters are (input-)frame-specific, while others are set by the output frame on its data and therefore shared between all input frames.

Definition at line 46 of file frame.h.

Constructor & Destructor Documentation

EQ_API eq::Frame::Frame ( )

Construct a new frame.

Version
1.0
virtual EQ_API eq::Frame::~Frame ( )
virtual

Destruct the frame.

Version
1.0

Reimplemented from eq::fabric::Frame.

Member Function Documentation

void eq::Frame::addListener ( lunchbox::Monitor< uint32_t > &  listener)

Add a listener which will be incremented when the frame is ready.

Parameters
listenerthe listener.
Version
1.0
EQ_API void eq::Frame::disableBuffer ( const Buffer  buffer)

Disable the usage of a frame buffer attachment for all images.

Parameters
bufferthe buffer to disable.
Version
1.0
EQ_API Buffer eq::Frame::getBuffers ( ) const
Returns
the enabled frame buffer attachments.
Version
1.0
EQ_API FrameDataPtr eq::Frame::getFrameData ( )
Returns
the frame's data.
Version
1.3.2
EQ_API ConstFrameDataPtr eq::Frame::getFrameData ( ) const
Returns
the frame's data.
Version
1.4
EQ_API const Images& eq::Frame::getImages ( ) const
Returns
all images of this frame.
Version
1.0
EQ_API ZoomFilter eq::Frame::getZoomFilter ( ) const
Returns
the filter applied to zoomed assemble operations.
Version
1.0
EQ_API bool eq::Frame::isReady ( ) const

Test the readiness of the frame.

Returns
true if the frame is ready, false if not.
Version
1.0
EQ_API void eq::Frame::readback ( util::ObjectManager glObjects,
const DrawableConfig &  config,
const PixelViewports regions,
const RenderContext &  context 
)

Read back a set of images.

The images are added to the data, existing images are retained.

Parameters
glObjectsthe GL object manager for the current GL context.
configthe configuration of the source frame buffer.
regionsthe areas to read back.
contextthe render context producing the pixel data.
Version
1.0
void eq::Frame::removeListener ( lunchbox::Monitor< uint32_t > &  listener)

Remove a frame listener.

Parameters
listenerthe listener.
Version
1.0
EQ_API void eq::Frame::setAlphaUsage ( const bool  useAlpha)

Set alpha usage for newly allocated images.

Version
1.0
EQ_API void eq::Frame::setFrameData ( FrameDataPtr  data)

Set the data for this frame.

Version
1.3.2
EQ_API void eq::Frame::setQuality ( const Buffer  buffer,
const float  quality 
)

Set the minimum quality after compression.

Version
1.0
void eq::Frame::setReady ( )

Set the frame ready.

Equalizer sets the frame automatically ready after readback and after network transmission.

Version
1.0
EQ_API void eq::Frame::setZoomFilter ( const ZoomFilter  zoomFilter)

Set the filter applied to zoomed assemble operations.

Version
1.0
EQ_API Images eq::Frame::startReadback ( util::ObjectManager glObjects,
const DrawableConfig &  config,
const PixelViewports regions,
const RenderContext &  context 
)

Start reading back a set of images for this frame.

The newly read images are added to the data, existing images are retained. The finish for the new images has to be done by the caller. The regions are relative to the current OpenGL viewport.

Parameters
glObjectsthe GL object manager for the current GL context.
configthe configuration of the source frame buffer.
regionsthe areas to read back.
contextthe render context producing the pixel data.
Returns
the new images which need finishReadback.
Version
1.3.2
EQ_API void eq::Frame::useCompressor ( const Buffer  buffer,
const uint32_t  name 
)

Sets a compressor for compression for following transmissions.

EQ_API void eq::Frame::waitReady ( const uint32_t  timeout = LB_TIMEOUT_INDEFINITE) const

Wait for the frame to become available.

Version
1.0

The documentation for this class was generated from the following file: