The compound. More...
#include <compound.h>

Classes | |
| struct | InheritData |
Public Types | |
| enum | EyeMask { EYE_UNDEFINED = 0, EYE_CYCLOP_BIT = 1<<eq::EYE_CYCLOP, EYE_LEFT_BIT = 1<<eq::EYE_LEFT, EYE_RIGHT_BIT = 1<<eq::EYE_RIGHT } |
Eye pass bit mask for which the compound is enabled. More... | |
| enum | ColorMask { COLOR_MASK_NONE = 0, COLOR_MASK_RED = 0x02, COLOR_MASK_GREEN = 0x04, COLOR_MASK_BLUE = 0x08, COLOR_MASK_ALL = 0xff } |
The color mask bits, used for anaglyphic stereo. More... | |
|
typedef stde::hash_map < std::string, net::Barrier * > | BarrierMap |
|
typedef stde::hash_map < std::string, Frame * > | FrameMap |
Public Member Functions | |
| Compound () | |
| Constructs a new Compound. | |
| Compound (const Compound &from, Config *config, Compound *parent) | |
| Constructs a new, deep copy of the passed compound. | |
| virtual | ~Compound () |
| Destruct the compound and all children. | |
Data Access | |
| void | addChild (Compound *child) |
| Adds a new child to this compound. | |
| bool | removeChild (Compound *child) |
| Removes a child from this compound. | |
| bool | isLeaf () const |
| bool | isDestination () const |
| const CompoundVector & | getChildren () const |
| Compound * | getParent () const |
| Compound * | getRoot () |
| const Compound * | getRoot () const |
| Compound * | getNext () const |
| Config * | getConfig () |
| const Config * | getConfig () const |
| Node * | getNode () |
| void | setName (const std::string &name) |
| const std::string & | getName () const |
| void | setChannel (Channel *channel) |
| Set the channel of this compound. | |
| Channel * | getChannel () |
| Return the channel of this compound. | |
| const Channel * | getChannel () const |
| Window * | getWindow () |
| const Window * | getWindow () const |
| Pipe * | getPipe () |
| const Pipe * | getPipe () const |
| Frustum & | getFrustum () |
| void | addEqualizer (Equalizer *equalizer) |
| Attach a load balancer to this compound. | |
| const EqualizerVector & | getEqualizers () const |
| Get the attached load balancers. | |
| void | setTasks (const uint32_t tasks) |
| Set the tasks to be executed by the compound, overwriting previous tasks. | |
| void | enableTask (const eq::Task task) |
| Add a task to be executed by the compound, preserving previous tasks. | |
| uint32_t | getTasks () const |
| void | setBuffers (const uint32_t buffers) |
| Set the image buffers to be used by the compound during recomposition, overwriting previous buffers. | |
| void | enableBuffer (const eq::Frame::Buffer buffer) |
| Add a image buffer to be used by the compound, preserving previous buffers. | |
| uint32_t | getBuffers () const |
| void | setViewport (const eq::Viewport &vp) |
| const eq::Viewport & | getViewport () const |
| void | setRange (const eq::Range &range) |
| const eq::Range & | getRange () const |
| void | setPeriod (const uint32_t period) |
| uint32_t | getPeriod () const |
| void | setPhase (const uint32_t phase) |
| uint32_t | getPhase () const |
| void | setPixel (const eq::Pixel &pixel) |
| const eq::Pixel & | getPixel () const |
| void | setSubPixel (const eq::SubPixel &subpixel) |
| const eq::SubPixel & | getSubPixel () const |
| void | setZoom (const eq::Zoom &zoom) |
| const eq::Zoom & | getZoom () const |
| void | setMaxFPS (const float fps) |
| float | getMaxFPS () const |
| void | setUsage (const float usage) |
| float | getUsage () const |
| void | setTaskID (const uint32_t id) |
| uint32_t | getTaskID () const |
IO object access. | |
| void | setSwapBarrier (SwapBarrier *barrier) |
| Set a swap barrier. | |
| const SwapBarrier * | getSwapBarrier () const |
| void | addInputFrame (Frame *frame) |
| Add a new input frame for this compound. | |
| const FrameVector & | getInputFrames () const |
| void | addOutputFrame (Frame *frame) |
| Add a new output frame for this compound. | |
| const FrameVector & | getOutputFrames () const |
Inherit data access needed during channel update. | |
Inherit data are the actual, as opposed to configured, attributes and data used by the compound. The inherit data is updated at the beginning of each update(). | |
| uint32_t | getInheritBuffers () const |
| const eq::PixelViewport & | getInheritPixelViewport () const |
| const Vector4i & | getInheritOverdraw () const |
| const eq::Viewport & | getInheritViewport () const |
| const eq::Range & | getInheritRange () const |
| const eq::Pixel & | getInheritPixel () const |
| const eq::SubPixel & | getInheritSubPixel () const |
| const eq::Zoom & | getInheritZoom () const |
| uint32_t | getInheritPeriod () const |
| uint32_t | getInheritPhase () const |
| float | getInheritMaxFPS () const |
| int32_t | getInheritIAttribute (const IAttribute attr) const |
| const FrustumData & | getInheritFrustumData () const |
| uint32_t | getInheritTasks () const |
| uint32_t | getInheritEyes () const |
| const Channel * | getInheritChannel () const |
| bool | testInheritTask (const eq::Task task) const |
| void | unsetInheritTask (const eq::Task task) |
| Delete an inherit task, if it was set. | |
| bool | testInheritEye (const eq::Eye eye) const |
Frustum Operations | |
| void | setWall (const eq::Wall &wall) |
| Set the compound's frustum using a wall description. | |
| const eq::Wall & | getWall () const |
| void | setProjection (const eq::Projection &projection) |
| Set the compound's frustum using a projection description. | |
| const eq::Projection & | getProjection () const |
| eq::Frustum::Type | getFrustumType () const |
| const eq::Frustum & | getFrustum () const |
| void | updateFrustum () |
| Update the frustum from the view or segment. | |
| uint32_t | getEyes () const |
| void | setEyes (const uint32_t eyes) |
| Set the eyes to be used by the compound. | |
| void | enableEye (const uint32_t eyes) |
| Add eyes to be used by the compound. | |
Compound Operations. | |
| VisitorResult | accept (CompoundVisitor &visitor) const |
| Traverse the compound and all children using a compound visitor. | |
| VisitorResult | accept (CompoundVisitor &visitor) |
| Non-const version of accept(). | |
| void | activate () |
| Activate the compound tree. | |
| void | deactivate () |
| Deactivate the compound tree. | |
| void | setActive (const bool active) |
| Set the active state of this compound only. | |
| bool | isActive () const |
| void | init () |
| Initializes this compound. | |
| void | exit () |
| Exits this compound. | |
| void | update (const uint32_t frameNumber) |
| Updates this compound. | |
| void | updateInheritData (const uint32_t frameNumber) |
| Update the inherit data of this compound. | |
Compound listener interface. | |
| void | addListener (CompoundListener *listener) |
| Register a compound listener. | |
| void | removeListener (CompoundListener *listener) |
| Deregister a compound listener. | |
| void | fireUpdatePre (const uint32_t frameNumber) |
| Notify all listeners that the compound is about to be updated. | |
Friends | |
| class | Config |
| The config the compound is attached to, only set on the root compound. | |
Attributes | |
|
| |
| enum | IAttribute { IATTR_STEREO_MODE, IATTR_STEREO_ANAGLYPH_LEFT_MASK, IATTR_STEREO_ANAGLYPH_RIGHT_MASK, IATTR_HINT_OFFSET, IATTR_FILL1, IATTR_FILL2, IATTR_ALL } |
| void | setIAttribute (const IAttribute attr, const int32_t value) |
| int32_t | getIAttribute (const IAttribute attr) const |
| static const std::string & | getIAttributeString (const IAttribute attr) |
The compound.
Definition at line 54 of file compound.h.
Eye pass bit mask for which the compound is enabled.
| EYE_UNDEFINED |
use inherited eye(s) |
| EYE_CYCLOP_BIT |
monoscopic 'middle' eye |
| EYE_LEFT_BIT |
left eye |
| EYE_RIGHT_BIT |
right eye |
Definition at line 73 of file compound.h.
The color mask bits, used for anaglyphic stereo.
Definition at line 82 of file compound.h.
| eq::server::Compound::~Compound | ( | ) | [virtual] |
Destruct the compound and all children.
Definition at line 145 of file compound.cpp.
References eq::server::Equalizer::attach(), and eq::server::Config::removeCompound().

| void eq::server::Compound::addChild | ( | Compound * | child | ) |
Adds a new child to this compound.
| child | the child. |
Definition at line 212 of file compound.cpp.
Referenced by eq::server::Loader::addOutputCompounds(), and Compound().

| bool eq::server::Compound::removeChild | ( | Compound * | child | ) |
Removes a child from this compound.
| child | the child |
true if the child was removed, false otherwise. Definition at line 220 of file compound.cpp.
| bool eq::server::Compound::isLeaf | ( | ) | const [inline] |
Definition at line 128 of file compound.h.
Referenced by updateInheritData().

| bool eq::server::Compound::isDestination | ( | ) | const |
Definition at line 429 of file compound.cpp.
References getChannel(), and getParent().
Referenced by activate(), deactivate(), updateFrustum(), updateInheritData(), eq::server::CompoundInitVisitor::visit(), and eq::server::CompoundExitVisitor::visit().


| const CompoundVector& eq::server::Compound::getChildren | ( | ) | const [inline] |
Definition at line 134 of file compound.h.
Referenced by eq::server::LoadEqualizer::notifyUpdatePre().

| Compound* eq::server::Compound::getParent | ( | ) | const [inline] |
Definition at line 137 of file compound.h.
Referenced by eq::server::DFREqualizer::attach(), isDestination(), and eq::server::DFREqualizer::notifyUpdatePre().

| Compound* eq::server::Compound::getRoot | ( | ) | [inline] |
Definition at line 141 of file compound.h.
References getRoot().
Referenced by getRoot(), and setSwapBarrier().


| Compound * eq::server::Compound::getNext | ( | ) | const |
Definition at line 233 of file compound.cpp.
| void eq::server::Compound::setChannel | ( | Channel * | channel | ) |
Set the channel of this compound.
The compound uses the channel for all rendering operations executed by this compound.
| channel | the channel. |
Definition at line 257 of file compound.cpp.
Referenced by eq::server::Loader::addOutputCompounds().

| Channel * eq::server::Compound::getChannel | ( | ) |
Return the channel of this compound.
Note that the channel is inherited, that is, if this compound has no channel, the parent's channel is returned.
Definition at line 271 of file compound.cpp.
References getChannel().
Referenced by eq::server::DFREqualizer::attach(), getChannel(), isActive(), isDestination(), eq::server::DFREqualizer::notifyUpdatePre(), updateFrustum(), updateInheritData(), eq::server::CompoundUpdateInputVisitor::visit(), eq::server::CompoundInitVisitor::visit(), eq::server::CompoundExitVisitor::visit(), and eq::server::CompoundActivateVisitor::visit().


| Frustum& eq::server::Compound::getFrustum | ( | ) | [inline] |
Definition at line 185 of file compound.h.
| void eq::server::Compound::addEqualizer | ( | Equalizer * | equalizer | ) |
Attach a load balancer to this compound.
Definition at line 312 of file compound.cpp.
References eq::server::Equalizer::attach().
Referenced by Compound().


| const EqualizerVector& eq::server::Compound::getEqualizers | ( | ) | const [inline] |
Get the attached load balancers.
Definition at line 191 of file compound.h.
| void eq::server::Compound::setTasks | ( | const uint32_t | tasks | ) | [inline] |
Set the tasks to be executed by the compound, overwriting previous tasks.
Tasks define which actions are executed by the compound, and provide a flexible way of configuring the decomposition and recomposition. A separate html design document describes them in depth.
| tasks | the compound tasks. |
Definition at line 204 of file compound.h.
| void eq::server::Compound::enableTask | ( | const eq::Task | task | ) | [inline] |
Add a task to be executed by the compound, preserving previous tasks.
| task | the compound task to add. |
Definition at line 211 of file compound.h.
| uint32_t eq::server::Compound::getTasks | ( | ) | const [inline] |
Definition at line 214 of file compound.h.
| void eq::server::Compound::setBuffers | ( | const uint32_t | buffers | ) | [inline] |
Set the image buffers to be used by the compound during recomposition, overwriting previous buffers.
| buffers | the compound image buffers. |
Definition at line 222 of file compound.h.
| void eq::server::Compound::enableBuffer | ( | const eq::Frame::Buffer | buffer | ) | [inline] |
Add a image buffer to be used by the compound, preserving previous buffers.
| buffer | the compound image buffer to add. |
Definition at line 230 of file compound.h.
| uint32_t eq::server::Compound::getBuffers | ( | ) | const [inline] |
Definition at line 234 of file compound.h.
| void eq::server::Compound::setSwapBarrier | ( | SwapBarrier * | barrier | ) |
Set a swap barrier.
Windows of compounds with the same swap barrier name will enter a barrier before executing eq::Window::swap. Setting an empty string disables the swap barrier.
| barrier | the swap barrier. |
Definition at line 378 of file compound.cpp.
References getRoot().

| const SwapBarrier* eq::server::Compound::getSwapBarrier | ( | ) | const [inline] |
Definition at line 281 of file compound.h.
| void eq::server::Compound::addInputFrame | ( | Frame * | frame | ) |
Add a new input frame for this compound.
| frame | the input frame. |
Definition at line 393 of file compound.cpp.
Referenced by Compound().

| const FrameVector& eq::server::Compound::getInputFrames | ( | ) | const [inline] |
Definition at line 291 of file compound.h.
Referenced by eq::server::CompoundUpdateInputVisitor::visit(), eq::server::CompoundInitVisitor::visit(), and eq::server::CompoundExitVisitor::visit().

| void eq::server::Compound::addOutputFrame | ( | Frame * | frame | ) |
Add a new output frame for this compound.
| frame | the output frame. |
Definition at line 401 of file compound.cpp.
Referenced by Compound().

| const FrameVector& eq::server::Compound::getOutputFrames | ( | ) | const [inline] |
Definition at line 301 of file compound.h.
Referenced by eq::server::CompoundInitVisitor::visit(), and eq::server::CompoundExitVisitor::visit().

| bool eq::server::Compound::testInheritTask | ( | const eq::Task | task | ) | const [inline] |
Definition at line 335 of file compound.h.
Referenced by eq::server::CompoundUpdateInputVisitor::visit(), eq::server::ChannelUpdateVisitor::visitLeaf(), and eq::server::ChannelUpdateVisitor::visitPre().

| void eq::server::Compound::unsetInheritTask | ( | const eq::Task | task | ) | [inline] |
Delete an inherit task, if it was set.
Definition at line 339 of file compound.h.
Referenced by eq::server::CompoundUpdateInputVisitor::visit().

| bool eq::server::Compound::testInheritEye | ( | const eq::Eye | eye | ) | const [inline] |
Definition at line 343 of file compound.h.
| void eq::server::Compound::setWall | ( | const eq::Wall & | wall | ) |
Set the compound's frustum using a wall description.
| wall | the wall description. |
Definition at line 449 of file compound.cpp.
References EQVERB, and eq::server::Frustum::setWall().
Referenced by updateFrustum().


| const eq::Wall& eq::server::Compound::getWall | ( | ) | const [inline] |
Definition at line 359 of file compound.h.
References eq::Frustum::getWall().

| void eq::server::Compound::setProjection | ( | const eq::Projection & | projection | ) |
Set the compound's frustum using a projection description.
| projection | the projection description. |
Definition at line 455 of file compound.cpp.
References EQVERB, and eq::server::Frustum::setProjection().
Referenced by updateFrustum().


| const eq::Projection& eq::server::Compound::getProjection | ( | ) | const [inline] |
Definition at line 369 of file compound.h.
References eq::Frustum::getProjection().

| eq::Frustum::Type eq::server::Compound::getFrustumType | ( | ) | const [inline] |
Definition at line 373 of file compound.h.
References eq::Frustum::getCurrentType().

| const eq::Frustum& eq::server::Compound::getFrustum | ( | ) | const [inline] |
Definition at line 377 of file compound.h.
| void eq::server::Compound::updateFrustum | ( | ) |
Update the frustum from the view or segment.
Definition at line 461 of file compound.cpp.
References EQLOG, eq::server::Segment::getChannel(), getChannel(), eq::Viewport::getCoverage(), eq::Frustum::getCurrentType(), eq::Frustum::getProjection(), eq::server::Channel::getSegment(), eq::server::Channel::getView(), eq::server::Channel::getViewport(), eq::View::getViewport(), eq::server::Segment::getViewport(), eq::Frustum::getWall(), isDestination(), setProjection(), setWall(), eq::Frustum::TYPE_NONE, eq::Frustum::TYPE_PROJECTION, and eq::Frustum::TYPE_WALL.
Referenced by eq::server::CompoundInitVisitor::visit().


| uint32_t eq::server::Compound::getEyes | ( | ) | const [inline] |
Definition at line 383 of file compound.h.
| void eq::server::Compound::setEyes | ( | const uint32_t | eyes | ) | [inline] |
Set the eyes to be used by the compound.
Previously set eyes are overwritten.
| eyes | the compound eyes. |
Definition at line 392 of file compound.h.
| void eq::server::Compound::enableEye | ( | const uint32_t | eyes | ) | [inline] |
Add eyes to be used by the compound.
Previously set eyes are preserved.
| eyes | the compound eyes. |
Definition at line 401 of file compound.h.
| VisitorResult eq::server::Compound::accept | ( | CompoundVisitor & | visitor | ) | const |
Traverse the compound and all children using a compound visitor.
| visitor | the visitor. |
Definition at line 754 of file compound.cpp.
Referenced by activate(), deactivate(), exit(), init(), update(), and eq::server::Channel::update().

| VisitorResult eq::server::Compound::accept | ( | CompoundVisitor & | visitor | ) |
Non-const version of accept().
Definition at line 749 of file compound.cpp.
| void eq::server::Compound::activate | ( | ) |
Activate the compound tree.
Definition at line 763 of file compound.cpp.
References accept(), and isDestination().
Referenced by eq::server::CompoundInitVisitor::visit().


| void eq::server::Compound::deactivate | ( | ) |
Deactivate the compound tree.
Definition at line 771 of file compound.cpp.
References accept(), and isDestination().
Referenced by eq::server::CompoundExitVisitor::visit().


| void eq::server::Compound::setActive | ( | const bool | active | ) | [inline] |
Set the active state of this compound only.
Definition at line 424 of file compound.h.
Referenced by eq::server::CompoundActivateVisitor::visit().

| bool eq::server::Compound::isActive | ( | ) | const |
Definition at line 320 of file compound.cpp.
References getChannel(), and eq::server::Channel::isActive().
Referenced by eq::server::LoadEqualizer::notifyUpdatePre(), eq::server::FramerateEqualizer::notifyUpdatePre(), eq::server::DFREqualizer::notifyUpdatePre(), eq::server::CompoundUpdateOutputVisitor::visit(), eq::server::CompoundUpdateInputVisitor::visit(), eq::server::ChannelUpdateVisitor::visitLeaf(), eq::server::ChannelUpdateVisitor::visitPost(), and eq::server::ChannelUpdateVisitor::visitPre().


| void eq::server::Compound::update | ( | const uint32_t | frameNumber | ) |
Updates this compound.
The compound's parameters for the next frame are computed.
Definition at line 794 of file compound.cpp.
References accept(), eq::net::Object::commit(), and eq::net::Barrier::getHeight().

| void eq::server::Compound::updateInheritData | ( | const uint32_t | frameNumber | ) |
Update the inherit data of this compound.
Definition at line 818 of file compound.cpp.
References eq::Frame::BUFFER_COLOR, eq::Frame::BUFFER_UNDEFINED, EQ_UNDEFINED_UINT32, EYE_CYCLOP_BIT, EYE_UNDEFINED, getChannel(), eq::server::Channel::getView(), isDestination(), isLeaf(), eq::Zoom::NONE, eq::QUAD, eq::TASK_ASSEMBLE, eq::TASK_DEFAULT, eq::TASK_READBACK, eq::TASK_VIEW, and eq::UNDEFINED.
Referenced by eq::server::CompoundUpdateDataVisitor::visit(), and eq::server::CompoundInitVisitor::visit().


| void eq::server::Compound::addListener | ( | CompoundListener * | listener | ) |
Register a compound listener.
Definition at line 332 of file compound.cpp.
Referenced by eq::server::Equalizer::attach().

| void eq::server::Compound::removeListener | ( | CompoundListener * | listener | ) |
Deregister a compound listener.
Definition at line 337 of file compound.cpp.
Referenced by eq::server::Equalizer::attach().

| void eq::server::Compound::fireUpdatePre | ( | const uint32_t | frameNumber | ) |
Notify all listeners that the compound is about to be updated.
Definition at line 345 of file compound.cpp.
Referenced by eq::server::CompoundUpdateDataVisitor::visit().

0.9.1 by
1.6.1