Equalizer  1.12.0
Parallel Rendering Framework
eq::fabric Namespace Reference

The Equalizer data synchronization fabric. More...

Classes

class  Canvas
 A canvas represents a logical 2D projection surface. More...
 
class  Channel
 Base data transport class for channels. More...
 
class  Client
 A client represents a network node of the application in the cluster. More...
 
class  ColorMask
 Defines which parts of the color buffer are to be written. More...
 
class  Config
 Base data class for a configuration. More...
 
class  ConfigParams
 Parameters for running a configuration. More...
 
class  ConfigVisitor
 A visitor to traverse configs and all children. More...
 
struct  DrawableConfig
 Stores the characteristics of a window's frame buffer configuration. More...
 
class  ElementVisitor
 A visitor to traverse non-leaf elements and their children in a tree. More...
 
class  Equalizer
 Base data transport class for equalizers. More...
 
class  Error
 A wrapper for error codes to allow intuitive bool-like usage. More...
 
class  ErrorRegistry
 The registry translating error codes to strings. More...
 
struct  Event
 Event structure to report window system and other events. More...
 
class  Frame
 A holder for a frame data and related parameters. More...
 
class  FrameData
 
class  Frustum
 A distributed object for frustum data. More...
 
class  Global
 Global parameter handling for the Equalizer fabric namespace. More...
 
struct  GPUInfo
 A structure containing GPU-specific information. More...
 
struct  KeyEvent
 Event for a key press or release. More...
 
class  Layout
 Base data transport class for layouts. More...
 
class  LeafVisitor
 A visitor to traverse leaf nodes of a graph. More...
 
struct  MagellanEvent
 Event for a SpaceMouse movement or click. More...
 
class  Node
 Base data transport class for nodes. More...
 
class  Object
 Internal base class for all distributed, inheritable Equalizer objects. More...
 
class  Observer
 Base data transport class for observers. More...
 
class  Pipe
 Base data transport class for pipes. More...
 
class  Pixel
 Holds a pixel decomposition specification with methods for manipulation. More...
 
class  PixelViewport
 Holds a 2D pixel viewport with methods for manipulation. More...
 
struct  PointerEvent
 Event for a pointer (mouse) motion or click. More...
 
class  Projection
 A projector definition defining a view frustum. More...
 
class  Range
 A fractional database range with methods for manipulation. More...
 
class  RenderContext
 The context applied to a channel during rendering operations. More...
 
struct  ResizeEvent
 Event for a size or position change on a Window, Channel or View. More...
 
class  Segment
 Base data transport class for segments. More...
 
class  Server
 Base co::Node class for a server. More...
 
struct  Statistic
 A statistics event. More...
 
class  SubPixel
 Holds a subpixel decomposition specification along with some methods for manipulation. More...
 
class  SwapBarrier
 A swapbarrier is set on a Compound to synchronize the swap buffer between windows. More...
 
class  Tile
 
struct  UserEvent
 User-defined event. More...
 
class  View
 Base data transport class for views. More...
 
class  Viewport
 A fractional viewport with methods for manipulation. More...
 
class  Wall
 A wall defining a view frustum. More...
 
class  Window
 Base data transport class for windows. More...
 
class  WindowSettings
 A set of settings to setup an eq::fabric::Window. More...
 
class  Zoom
 A zoom specification with methods for manipulation. More...
 

Typedefs

typedef std::vector< ErrorErrors
 A vector of eq::fabric::Error.
 
typedef std::vector< StatisticStatistics
 A vector of eq::Statistic events.
 
typedef std::vector< ViewportViewports
 A vector of eq::Viewport.
 
typedef co::ObjectOCommand EventOCommand
 
typedef lunchbox::RefPtr< ClientClientPtr
 
typedef lunchbox::RefPtr< const ClientConstClientPtr
 
typedef lunchbox::RefPtr< SwapBarrierSwapBarrierPtr
 
typedef lunchbox::RefPtr< const SwapBarrierSwapBarrierConstPtr
 

Enumerations

enum  ErrorCode {
  ERROR_NONE = 0, ERROR_FBO_UNSUPPORTED, ERROR_FRAMEBUFFER_STATUS, ERROR_FRAMEBUFFER_UNSUPPORTED,
  ERROR_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT, ERROR_FRAMEBUFFER_INCOMPLETE_ATTACHMENT, ERROR_FRAMEBUFFER_INCOMPLETE_DIMENSIONS, ERROR_FRAMEBUFFER_INCOMPLETE_FORMATS,
  ERROR_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER, ERROR_FRAMEBUFFER_INCOMPLETE_READ_BUFFER, ERROR_FRAMEBUFFER_INITIALIZED, ERROR_FRAMEBUFFER_INVALID_SIZE,
  ERROR_FRAMEBUFFER_INVALID_SAMPLES, ERROR_CUDACONTEXT_DEVICE_NOTFOUND, ERROR_CUDACONTEXT_INIT_FAILED, ERROR_CUDACONTEXT_MISSING_SUPPORT,
  ERROR_WINDOWSYSTEM_UNKNOWN, ERROR_NODE_LAUNCH, ERROR_NODE_CONNECT, ERROR_PIPE_NODE_NOTRUNNING,
  ERROR_SYSTEMPIPE_PIXELFORMAT_NOTFOUND, ERROR_SYSTEMPIPE_CREATECONTEXT_FAILED, ERROR_SYSTEMPIPE_CREATEWINDOW_FAILED, ERROR_AGLPIPE_DISPLAYS_NOTFOUND,
  ERROR_AGLPIPE_DEVICE_NOTFOUND, ERROR_GLXPIPE_DEVICE_NOTFOUND, ERROR_GLXPIPE_GLX_NOTFOUND, ERROR_GLXPIPE_GLXEWINIT_FAILED,
  ERROR_WGL_CREATEAFFINITYDC_FAILED, ERROR_WGLPIPE_ENUMDISPLAYS_FAILED, ERROR_WGLPIPE_CREATEDC_FAILED, ERROR_WGLPIPE_ENUMGPUS_FAILED,
  ERROR_WGLPIPE_REGISTERCLASS_FAILED, ERROR_WGLPIPE_SETPF_FAILED, ERROR_WGLPIPE_WGLEWINIT_FAILED, ERROR_WINDOW_PIPE_NOTRUNNING,
  ERROR_WINDOW_PVP_INVALID, ERROR_SYSTEMWINDOW_PIXELFORMAT_NOTFOUND, ERROR_SYSTEMWINDOW_NO_PIXELFORMAT, ERROR_SYSTEMWINDOW_ARB_FLOAT_FB_REQUIRED,
  ERROR_AGLWINDOW_NO_CONTEXT, ERROR_AGLWINDOW_CREATECONTEXT_FAILED, ERROR_AGLWINDOW_CREATEPBUFFER_FAILED, ERROR_AGLWINDOW_SETPBUFFER_FAILED,
  ERROR_AGLWINDOW_CREATEWINDOW_FAILED, ERROR_AGLWINDOW_SETWINDOW_FAILED, ERROR_GLXWINDOW_NO_DRAWABLE, ERROR_GLXWINDOW_NO_DISPLAY,
  ERROR_GLXWINDOW_CREATECONTEXT_FAILED, ERROR_GLXWINDOW_CREATEWINDOW_FAILED, ERROR_GLXWINDOW_GLXQUERYVERSION_FAILED, ERROR_GLXWINDOW_GLX_1_3_REQUIRED,
  ERROR_GLXWINDOW_NO_FBCONFIG, ERROR_GLXWINDOW_NO_VISUAL, ERROR_GLXWINDOW_CREATEPBUFFER_FAILED, ERROR_GLXWINDOW_FBCONFIG_REQUIRED,
  ERROR_WGLWINDOW_NO_DRAWABLE, ERROR_WGLWINDOW_SETPIXELFORMAT_FAILED, ERROR_WGLWINDOW_REGISTERCLASS_FAILED, ERROR_WGLWINDOW_FULLSCREEN_FAILED,
  ERROR_WGLWINDOW_CREATEWINDOW_FAILED, ERROR_WGLWINDOW_ARB_PBUFFER_REQUIRED, ERROR_WGLWINDOW_CREATEPBUFFER_FAILED, ERROR_WGLWINDOW_SETAFFINITY_PF_FAILED,
  ERROR_WGLWINDOW_CHOOSE_PF_ARB_FAILED, ERROR_WGLWINDOW_CREATECONTEXT_FAILED, ERROR_CHANNEL_WINDOW_NOTRUNNING, ERROR_PBO_UNSUPPORTED,
  ERROR_PBO_NOT_INITIALIZED, ERROR_PBO_SIZE_TOO_SMALL, ERROR_PBO_TYPE_UNSUPPORTED, ERROR_CUSTOM = LB_64KB
}
 Defines errors produced by Equalizer classes. More...
 
enum  Eye {
  EYE_CYCLOP_BIT = 0, EYE_LEFT_BIT = 1, EYE_RIGHT_BIT = 2, EYE_UNDEFINED = 0,
  EYE_CYCLOP = 1 << EYE_CYCLOP_BIT, EYE_LEFT = 1 << EYE_LEFT_BIT, EYE_RIGHT = 1 << EYE_RIGHT_BIT, EYE_LAST = EYE_RIGHT,
  NUM_EYES = 3, EYES_STEREO = EYE_LEFT | EYE_RIGHT, EYES_ALL = 7
}
 Eye pass bit mask for which is enabled. More...
 
enum  FocusMode { FOCUSMODE_FIXED = FIXED, FOCUSMODE_RELATIVE_TO_ORIGIN = RELATIVE_TO_ORIGIN, FOCUSMODE_RELATIVE_TO_OBSERVER = RELATIVE_TO_OBSERVER }
 The algorithm to use for observer focal distance calculation. More...
 
enum  IAttribute {
  UNDEFINED = -0xfffffff, SOCKET = lunchbox::Thread::SOCKET, CORE = lunchbox::Thread::CORE, SOCKET_MAX = lunchbox::Thread::SOCKET_MAX,
  RELATIVE_TO_OBSERVER = -17, RELATIVE_TO_ORIGIN = -16, FIXED = -15, RGBA32F = -14,
  RGBA16F = -13, FBO = -12, LOCAL_SYNC = -11, DRAW_SYNC = -10,
  ASYNC = -9, PBUFFER = -8, WINDOW = -7, VERTICAL = -6,
  QUAD = -5, ANAGLYPH = -4, PASSIVE = -3, NICEST = -2,
  AUTO = -1, OFF = 0, ON = 1, FASTEST = ON,
  HORIZONTAL = ON
}
 Possible values for integer attributes. More...
 
enum  LogTopics {
  LOG_INIT = co::LOG_CUSTOM << 0, LOG_ASSEMBLY = co::LOG_CUSTOM << 1, LOG_TASKS = co::LOG_CUSTOM << 2, LOG_LB1 = co::LOG_CUSTOM << 3,
  LOG_LB2 = co::LOG_CUSTOM << 4, LOG_VIEW = co::LOG_CUSTOM << 5, LOG_CUSTOM = co::LOG_CUSTOM << 6
}
 Defines selective logging classes enabled by setting LB_LOG_TOPICS. More...
 
enum  NodeType { NODETYPE_SERVER = co::NODETYPE_USER }
 Node types to identify connecting nodes. More...
 
enum  Task {
  TASK_NONE = LB_BIT_NONE, TASK_DEFAULT = LB_BIT1, TASK_VIEW = LB_BIT2, TASK_CLEAR = LB_BIT3,
  TASK_DRAW = LB_BIT4, TASK_ASSEMBLE = LB_BIT5, TASK_READBACK = LB_BIT6, TASK_ALL = LB_BIT_ALL_32,
  TASK_RENDER = (TASK_CLEAR | TASK_DRAW | TASK_READBACK)
}
 Tasks define the actions executed by a channel during rendering. More...
 

Functions

template<class CFG , class C , class S , class L >
std::ostream & operator<< (std::ostream &, const Canvas< CFG, C, S, L > &)
 
template<class W , class C >
EQFABRIC_INL std::ostream & operator<< (std::ostream &, const Channel< W, C > &)
 
std::ostream & operator<< (std::ostream &os, const ColorMask &mask)
 
template<class S , class C , class O , class L , class CV , class N , class V >
EQFABRIC_INL std::ostream & operator<< (std::ostream &os, const Config< S, C, O, L, CV, N, V > &config)
 
EQFABRIC_API co::DataOStream & operator<< (co::DataOStream &os, const ConfigParams &)
 
EQFABRIC_API co::DataIStream & operator>> (co::DataIStream &is, ConfigParams &)
 
std::ostream & operator<< (std::ostream &os, const DrawableConfig &config)
 
EQFABRIC_API co::DataOStream & operator<< (co::DataOStream &os, const Equalizer &)
 
EQFABRIC_API co::DataIStream & operator>> (co::DataIStream &is, Equalizer &)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const Equalizer::Mode)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const Error &)
 Print the error in a human-readable format. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Event &)
 Print the event to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Event::Type &)
 Print the event type to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const ResizeEvent &)
 Print the resize event to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const PointerEvent &)
 Print the pointer event to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const KeyEvent &)
 Print the key event to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const MagellanEvent &)
 Print the space mouse event to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const Eye &eye)
 
std::ostream & operator<< (std::ostream &os, const FocusMode &mode)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Frame &)
 Print the frame to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Frame::Type)
 Print the frame type to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Frame::Buffer)
 Print the frame buffer value to the given output stream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const Frustum &)
 
std::ostream & operator<< (std::ostream &os, const GPUInfo &info)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const IAttribute value)
 
EQFABRIC_API bool init (const int argc, char **argv)
 Initialize the Equalizer fabric namespace. More...
 
EQFABRIC_API bool exit ()
 De-initialize the Equalizer fabric namespace. More...
 
template<class C , class L , class V >
std::ostream & operator<< (std::ostream &, const Layout< C, L, V > &)
 
template<class C , class N , class P , class V >
EQFABRIC_INL std::ostream & operator<< (std::ostream &, const Node< C, N, P, V > &)
 
template<class C , class O >
EQFABRIC_INL std::ostream & operator<< (std::ostream &, const Observer< C, O > &)
 
template<class N , class P , class W , class V >
EQFABRIC_INL std::ostream & operator<< (std::ostream &, const Pipe< N, P, W, V > &)
 
std::ostream & operator<< (std::ostream &os, const Pixel &pixel)
 
std::ostream & operator<< (std::ostream &os, const PixelViewport &pvp)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &os, const Projection &)
 
std::ostream & operator<< (std::ostream &os, const Range &range)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const RenderContext &)
 
template<class C , class S , class CH >
std::ostream & operator<< (std::ostream &, const Segment< C, S, CH > &)
 
template<class CL , class S , class CFG , class NF , class N , class V >
EQFABRIC_INL std::ostream & operator<< (std::ostream &, const Server< CL, S, CFG, NF, N, V > &)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Statistic::Type &)
 Output the statistic type to an std::ostream. More...
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Statistic &)
 Output the statistic to an std::ostream. More...
 
std::ostream & operator<< (std::ostream &os, const SubPixel &subPixel)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const SwapBarrier &)
 
template<class L , class V , class O >
EQFABRIC_INL std::ostream & operator<< (std::ostream &os, const View< L, V, O > &view)
 
std::ostream & operator<< (std::ostream &os, const Viewport &vp)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Wall &)
 
EQFABRIC_API std::ostream & operator<< (std::ostream &, const Wall::Type &)
 
template<class P , class W , class C , class Settings >
EQFABRIC_INL std::ostream & operator<< (std::ostream &os, const Window< P, W, C, Settings > &window)
 
std::ostream & operator<< (std::ostream &os, const Zoom &zoom)
 

Variables

static const uint32_t LOAD_EQUALIZER = 1
 
static const uint32_t TREE_EQUALIZER = LOAD_EQUALIZER << 1
 
static const uint32_t VIEW_EQUALIZER = LOAD_EQUALIZER << 2
 
static const uint32_t TILE_EQUALIZER = LOAD_EQUALIZER << 3
 
static const uint32_t MONITOR_EQUALIZER = LOAD_EQUALIZER << 4
 
static const uint32_t DFR_EQUALIZER = LOAD_EQUALIZER << 5
 
static const uint32_t FRAMERATE_EQUALIZER = LOAD_EQUALIZER << 6
 
static const uint32_t EQUALIZER_ALL = LB_BIT_ALL_32
 

Detailed Description

The Equalizer data synchronization fabric.

This namespace implements the common data management and transport layer between the Equalizer applications, the server and the administrative interface, which use the eq, eq::server and eq::admin namespace, respectively.

Enumeration Type Documentation

Defines errors produced by Equalizer classes.

Definition at line 29 of file errorCodes.h.

Eye pass bit mask for which is enabled.

Enumerator
EYE_CYCLOP 

monoscopic 'middle' eye

EYE_LEFT 

left eye

EYE_RIGHT 

right eye

EYE_LAST 

the last eye

EYES_STEREO 

left and right eye

EYES_ALL 

all eyes

Definition at line 33 of file fabric/eye.h.

The algorithm to use for observer focal distance calculation.

Enumerator
FOCUSMODE_FIXED 

Focus on physical projection.

FOCUSMODE_RELATIVE_TO_ORIGIN 

Focus distance relative and in -Z axis of origin.

FOCUSMODE_RELATIVE_TO_OBSERVER 

Focus distance relative and in direction of observer.

Definition at line 29 of file focusMode.h.

Possible values for integer attributes.

Enumerator
UNDEFINED 

Undefined value.

SOCKET 

CPU thread affinity: -64k..-1024.

CORE 

Core thread affinity: 1..oo.

SOCKET_MAX 

Highes bindable CPU.

RELATIVE_TO_OBSERVER 

focal convergence relative to observer

RELATIVE_TO_ORIGIN 

focal convergence relative to origin

FIXED 

config or observer focus fixed on wall/projection

RGBA32F 

Float32 framebuffer (WindowSettings::IATTR_PLANES_COLOR)

RGBA16F 

Float16 framebuffer (WindowSettings::IATTR_PLANES_COLOR)

FBO 

FBO drawable (WindowSettings::IATTR_HINT_DRAWABLE)

LOCAL_SYNC 

Full local sync (Node::IATTR_THREAD_MODEL)

DRAW_SYNC 

Local draw sync (Node::IATTR_THREAD_MODEL)

ASYNC 

No local sync (Node::IATTR_THREAD_MODEL)

PBUFFER 

PBuffer drawable (WindowSettings::IATTR_HINT_DRAWABLE)

WINDOW 

Window drawable (WindowSettings::IATTR_HINT_DRAWABLE)

VERTICAL 

Vertical load-balancing.

QUAD 

Quad-buffered stereo decomposition.

ANAGLYPH 

Anaglyphic stereo decomposition.

PASSIVE 

Passive stereo rendering.

NICEST 

Nicest statistics gathering (WindowSettings::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS)

AUTO 

Automatic selection (various attributes)

OFF 

disabled (various attributes)

ON 

enabled (various attributes)

FASTEST 

Fastest statistics gathering (WindowSettings::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS)

HORIZONTAL 

Horizontal load-balancing.

Definition at line 30 of file iAttribute.h.

Defines selective logging classes enabled by setting LB_LOG_TOPICS.

Enumerator
LOG_INIT 

Log initialization (512)

LOG_ASSEMBLY 

Compositing tasks (1024)

LOG_TASKS 

Rendering tasks (2048)

LOG_CUSTOM 

32768

Definition at line 28 of file fabric/log.h.

Node types to identify connecting nodes.

Enumerator
NODETYPE_SERVER 

A server node.

Definition at line 28 of file nodeType.h.

Tasks define the actions executed by a channel during rendering.

Enumerator
TASK_DEFAULT 

leaf: all, other ASSEMBLE|READBACK|VIEW

TASK_VIEW 

View start/finish.

TASK_CLEAR 

Clear the framebuffer.

TASK_DRAW 

Draw data to the framebuffer.

TASK_ASSEMBLE 

Combine input frames.

TASK_READBACK 

Read results to output frames.

Definition at line 30 of file task.h.

Function Documentation

EQFABRIC_API bool eq::fabric::exit ( )

De-initialize the Equalizer fabric namespace.

Returns
true if the library was successfully de-initialized, false otherwise.
Version
1.0
EQFABRIC_API bool eq::fabric::init ( const int  argc,
char **  argv 
)

Initialize the Equalizer fabric namespace.

exit() should be called independent of the return value of this function.

Parameters
argcthe command line argument count.
argvthe command line argument values.
Returns
true if the library was successfully initialized, false otherwise.
Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  os,
const Error  
)

Print the error in a human-readable format.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Statistic::Type  
)

Output the statistic type to an std::ostream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Statistic  
)

Output the statistic to an std::ostream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Frame  
)

Print the frame to the given output stream.

Version
1.4
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Frame::Type   
)

Print the frame type to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Frame::Buffer   
)

Print the frame buffer value to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Event  
)

Print the event to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const Event::Type  
)

Print the event type to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const ResizeEvent  
)

Print the resize event to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const PointerEvent  
)

Print the pointer event to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const KeyEvent  
)

Print the key event to the given output stream.

Version
1.0
EQFABRIC_API std::ostream& eq::fabric::operator<< ( std::ostream &  ,
const MagellanEvent  
)

Print the space mouse event to the given output stream.

Version
1.0