Equalizer  1.6.1
Namespaces | Classes | Typedefs | Enumerations | Functions
eq Namespace Reference

The Equalizer client library. More...

Namespaces

 agl
 The system abstraction layer for Apple OpenGL and Carbon.
 
 fabric
 The Equalizer data synchronization fabric.
 
 glx
 The system abstraction layer for X11 and glX.
 
 util
 Equalizer utility classes.
 
 wgl
 The system abstraction layer for Windows OpenGL.
 

Classes

class  Canvas
 A canvas represents a logical 2D projection surface. More...
 
class  Channel
 A channel represents a two-dimensional viewport within a Window. More...
 
class  ChannelStatistics
 Samples one channel statistics event. More...
 
class  Client
 The client represents a network node of the application in the cluster. More...
 
class  CommandQueue
 
class  Compositor
 A set of functions performing compositing for a set of input frames. More...
 
class  ComputeContext
 The interface definition for API-specific GPGPU handling. More...
 
class  Config
 A configuration is a visualization session driven by an application. More...
 
struct  ConfigEvent
 
class  ConfigStatistics
 Samples one Config statistics event. More...
 
class  CUDAContext
 CUDA implementation of a ComputeContext. More...
 
struct  ResizeEvent
 Event for a size or position change on a Window, Channel or View. More...
 
struct  PointerEvent
 Event for a pointer (mouse) motion or click. More...
 
struct  KeyEvent
 Event for a key press or release. More...
 
struct  MagellanEvent
 Event for a SpaceMouse movement or click. More...
 
struct  UserEvent
 User-defined event. More...
 
struct  Event
 Event structure to report window system and other events. More...
 
class  EventHandler
 Base class for window system-specific event handlers. More...
 
class  EventICommand
 A command specialization for config events. More...
 
class  Exception
 Exception class for Equalizer operations. More...
 
class  Frame
 A holder for a frame data and related parameters. More...
 
class  FrameData
 A holder for multiple images. More...
 
class  GLException
 OpenGL Exception. More...
 
class  Global
 Global parameter handling for the Equalizer client library. More...
 
class  GLWindow
 A system window for OpenGL rendering. More...
 
class  Image
 A holder for pixel data. More...
 
class  Layout
 A layout groups one or more View, logically belonging together. More...
 
class  MessagePump
 An interface to process system messages or events. More...
 
class  Node
 A Node represents a single computer in the cluster. More...
 
class  NodeFactory
 The node factory is a per-node singleton used to create and release Equalizer resource instances. More...
 
class  Observer
 An Observer looks at one or more views from a certain position (head matrix) with a given eye separation. More...
 
class  Pipe
 A Pipe represents a graphics card (GPU) on a Node. More...
 
struct  PixelData
 The pixel data structure manages the pixel information for images. More...
 
class  Segment
 A segment covers a sub-area of a Canvas. More...
 
class  Server
 Proxy object for the connection to an Equalizer server. More...
 
struct  Statistic
 A statistics event. More...
 
class  StatisticSampler
 Utility to sample an statistics event. More...
 
class  SystemPipe
 The interface definition for system-specific GPU handling. More...
 
class  SystemWindow
 The interface definition for system-specific windowing code. More...
 
class  Version
 Information about the current Equalizer version. More...
 
class  View
 A View is a 2D area of a Layout. More...
 
class  Window
 A Window represents an on-screen or off-screen drawable. More...
 
class  WindowStatistics
 A statistics sampler for window-related events. More...
 
class  WindowSystemIF
 The interface for windowing toolkits. More...
 
class  WindowSystem
 The list of possible window systems. More...
 

Typedefs

typedef agl::EventHandler AGLEventHandler
 
typedef agl::Pipe AGLPipe
 
typedef agl::Window AGLWindow
 
typedef agl::WindowEvent AGLWindowEvent
 
typedef agl::WindowIF AGLWindowIF
 
typedef glx::Pipe GLXPipe
 
typedef glx::WindowIF GLXWindowIF
 
typedef glx::Window GLXWindow
 
typedef glx::EventHandler GLXEventHandler
 
typedef glx::WindowEvent GLXWindowEvent
 
typedef fabric::LeafVisitor
< Segment
SegmentVisitor
 A visitor to traverse segments. More...
 
typedef fabric::LeafVisitor< ViewViewVisitor
 A visitor to traverse views. More...
 
typedef fabric::LeafVisitor
< Observer
ObserverVisitor
 A visitor to traverse channels. More...
 
typedef fabric::LeafVisitor
< Channel
ChannelVisitor
 A visitor to traverse channels. More...
 
typedef fabric::ElementVisitor
< Canvas, SegmentVisitor
CanvasVisitor
 A visitor to traverse canvases and children. More...
 
typedef fabric::ElementVisitor
< Window, ChannelVisitor
WindowVisitor
 A visitor to traverse windows and children. More...
 
typedef fabric::ElementVisitor
< Pipe, WindowVisitor
PipeVisitor
 A visitor to traverse pipes and children. More...
 
typedef fabric::ElementVisitor
< Node, PipeVisitor
NodeVisitor
 A visitor to traverse nodes and children. More...
 
typedef fabric::ElementVisitor
< Layout, ViewVisitor
LayoutVisitor
 A visitor to traverse layouts and children. More...
 
typedef fabric::ConfigVisitor
< Config, ObserverVisitor,
LayoutVisitor, CanvasVisitor,
NodeVisitor
ConfigVisitor
 A visitor to traverse configs and children. More...
 
typedef fabric::ElementVisitor
< Server, ConfigVisitor
ServerVisitor
 A visitor to traverse servers and children. More...
 
typedef std::vector< Config * > Configs
 A vector of pointers to eq::Config.
 
typedef std::vector< Server * > Servers
 A vector of pointers to eq::Server.
 
typedef std::vector< Node * > Nodes
 A vector of pointers to eq::Node.
 
typedef std::vector< Pipe * > Pipes
 A vector of pointers to eq::Pipe.
 
typedef std::vector< Window * > Windows
 A vector of pointers to eq::Window.
 
typedef std::vector< Channel * > Channels
 A vector of pointers to eq::Channel.
 
typedef std::vector< Frame * > Frames
 A vector of pointers to eq::Frame.
 
typedef std::vector< Image * > Images
 A vector of pointers to eq::Image.
 
typedef std::vector< Observer * > Observers
 A vector of pointers to eq::Observer.
 
typedef std::vector< Canvas * > Canvases
 A vector of pointers to eq::Canvas.
 
typedef std::vector< Layout * > Layouts
 A vector of pointers to eq::Layout.
 
typedef std::vector< Segment * > Segments
 A vector of pointers to eq::Segment.
 
typedef std::vector< View * > Views
 A vector of pointers to eq::View.
 
typedef std::vector< Viewport > Viewports
 A vector of eq::Viewport.
 
typedef std::vector
< PixelViewport > 
PixelViewports
 A vector of eq::PixelViewport.
 
typedef std::vector< StatisticStatistics
 A vector of eq::Statistic events.
 
typedef Configs::const_iterator ConfigsCIter
 A const_iterator over a eq::Config vector.
 
typedef Servers::const_iterator ServersCIter
 A const_iterator over a eq::Server vector.
 
typedef Nodes::const_iterator NodesCIter
 A const_iterator over a eq::Node vector.
 
typedef Pipes::const_iterator PipesCIter
 A const_iterator over a eq::Pipe vector.
 
typedef Windows::const_iterator WindowsCIter
 A const_iterator over a eq::Window vector.
 
typedef Channels::const_iterator ChannelsCIter
 A const_iterator over a eq::Channel vector.
 
typedef Frames::iterator FramesIter
 An iterator over a eq::Frame vector.
 
typedef Frames::const_iterator FramesCIter
 A const_iterator over a eq::Frame vector.
 
typedef Images::const_iterator ImagesCIter
 A const_iterator over a eq::Image vector.
 
typedef Observers::const_iterator ObserversCIter
 A const_iterator over a eq::Observer vector.
 
typedef Canvases::const_iterator CanvasesCIter
 A const_iterator over a eq::Canvas vector.
 
typedef Layouts::const_iterator LayoutsCIter
 A const_iterator over a eq::Layout vector.
 
typedef Segments::const_iterator SegmentsCIter
 A const_iterator over a eq::Segment vector.
 
typedef Views::const_iterator ViewsCIter
 A const_iterator over a eq::View vector.
 
typedef Viewports::const_iterator ViewportsCIter
 A const_iterator over a eq::Viewport vector.
 
typedef
PixelViewports::const_iterator 
PixelViewportsCIter
 A const_iterator over a eq::PixelViewport vector.
 
typedef Statistics::const_iterator StatisticsCIter
 A const_iterator over a eq::Statistic events vector.
 
typedef lunchbox::RefPtr< ClientClientPtr
 A reference-counted pointer to an eq::Client.
 
typedef lunchbox::RefPtr
< const Client
ConstClientPtr
 A reference-counted pointer to a const eq::Client.
 
typedef lunchbox::RefPtr< ServerServerPtr
 A reference-counted pointer to an eq::Server.
 
typedef lunchbox::RefPtr
< FrameData
FrameDataPtr
 A reference-counted pointer to an eq::FrameData.
 
typedef lunchbox::RefPtr
< const FrameData
ConstFrameDataPtr
 A reference-counted pointer to a const eq::FrameData.
 
typedef util::BitmapFont
< const void * > 
BitmapFont
 The bitmap font used in the client library. More...
 
typedef util::ObjectManager
< const void * > 
ObjectManager
 The OpenGL object manager used in the client library. More...
 
typedef vmml::frustum_culler
< float > 
FrustumCullerf
 < A const_iterator over a std::string vector More...
 
typedef std::vector< uint8_t > Vectorub
 A vector of bytes.
 
typedef std::vector< uint16_t > Vectorus
 A vector of unsigned shorts.
 
typedef wgl::EventHandler WGLEventHandler
 
typedef wgl::Pipe WGLPipe
 
typedef wgl::Window WGLWindow
 
typedef wgl::WindowEvent WGLWindowEvent
 
typedef wgl::WindowIF WGLWindowIF
 

Enumerations

enum  KeyCode {
  KC_ESCAPE = 256, KC_BACKSPACE, KC_RETURN, KC_TAB,
  KC_HOME, KC_LEFT, KC_UP, KC_RIGHT,
  KC_DOWN, KC_PAGE_UP, KC_PAGE_DOWN, KC_END,
  KC_F1, KC_F2, KC_F3, KC_F4,
  KC_F5, KC_F6, KC_F7, KC_F8,
  KC_F9, KC_F10, KC_F11, KC_F12,
  KC_F13, KC_F14, KC_F15, KC_F16,
  KC_F17, KC_F18, KC_F19, KC_F20,
  KC_F21, KC_F22, KC_F23, KC_F24,
  KC_SHIFT_L, KC_SHIFT_R, KC_CONTROL_L, KC_CONTROL_R,
  KC_ALT_L, KC_ALT_R, KC_VOID = 0xFFFFFF
}
 Yet another key code table to report keys in a window system independent way. More...
 
enum  PointerButton {
  PTR_BUTTON_NONE = LB_BIT_NONE, PTR_BUTTON1 = LB_BIT1, PTR_BUTTON2 = LB_BIT2, PTR_BUTTON3 = LB_BIT3,
  PTR_BUTTON4 = LB_BIT4, PTR_BUTTON5 = LB_BIT5, PTR_BUTTON6 = LB_BIT6, PTR_BUTTON7 = LB_BIT7
}
 Mouse pointer button definition. More...
 
enum  LogTopics {
  LOG_PLUGIN = lunchbox::LOG_PLUGIN, LOG_INIT = fabric::LOG_INIT, LOG_ASSEMBLY = fabric::LOG_CUSTOM << 0, LOG_TASKS = fabric::LOG_CUSTOM << 1,
  LOG_STATS = fabric::LOG_CUSTOM << 2, LOG_SERVER = fabric::LOG_CUSTOM << 3, LOG_CUSTOM = 0x10000
}
 Defines selective logging classes enabled by setting LB_LOG_TOPICS. More...
 
enum  WindowSystemEnum {
  WINDOW_SYSTEM_NONE = 0, WINDOW_SYSTEM_AGL, WINDOW_SYSTEM_GLX, WINDOW_SYSTEM_WGL,
  WINDOW_SYSTEM_ALL
}
 
enum  ZoomFilter { FILTER_NEAREST = 0x2600, FILTER_LINEAR = 0x2601 }
 Filtering algorithm to applied during zoom operations. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const ConfigEvent *event)
 Print the config event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const Event &)
 Print the event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const Event::Type &)
 Print the event type to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const ResizeEvent &)
 Print the resize event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const PointerEvent &)
 Print the pointer event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const KeyEvent &)
 Print the key event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const MagellanEvent &)
 Print the space mouse event to the given output stream. More...
 
std::ostream & operator<< (std::ostream &os, const EventICommand &command)
 Print the event command to the given output stream. More...
 
std::ostream & operator<< (std::ostream &, const FrameData &)
 Print the frame data to the given output stream. More...
 
void debugGLError (const std::string &when, const GLenum error, const char *file, const int line)
 Output an error OpenGL in a human-readable form to LBWARN.
 
std::string glError (const GLenum error)
 
void XSetCurrentDisplay (Display *display)
 Set the current X display connection. More...
 
Display * XGetCurrentDisplay ()
 
bool _init (const int argc, char **argv, NodeFactory *nodeFactory)
 
bool init (const int argc, char **argv, NodeFactory *nodeFactory)
 Initialize the Equalizer client library. More...
 
bool exit ()
 De-initialize the Equalizer client library. More...
 
ConfiggetConfig (const int argc, char **argv)
 Convenience function to retrieve a configuration. More...
 
void releaseConfig (Config *config)
 Convenience function to release a configuration. More...
 
std::ostream & operator<< (std::ostream &, const Statistic::Type &)
 Output the statistic type to an std::ostream. More...
 
std::ostream & operator<< (std::ostream &, const Statistic &)
 Output the statistic to an std::ostream. More...
 
std::ostream & operator<< (std::ostream &os, const WindowSystem &)
 Print the window system name to the given output stream. More...
 
co::DataOStream & operator<< (co::DataOStream &os, const WindowSystem &)
 co::Object serializer. More...
 
co::DataIStream & operator>> (co::DataIStream &is, WindowSystem &ws)
 WindowSystem deserializer. More...
 

Detailed Description

The Equalizer client library.

This namespace implements the application-visible API to access the Equalizer server.

The Client represents the application instance and co::Node. A Client can connect to a Server to retrieve a Config.

The Server, Config, Node, Window and Channel hierarchy represents the rendering entities as described in the configuration file. Each process in the cluster only has the local entities instantiated, that is, there is at most one node per process. The Config is a co::Session, which is normally used to register distributed objects based on eq::Object or co::Object.

The Canvas, Segment, Layout, View and Observer hierarchy represents the physical projection system, logical layout and tracked users. Applications which want to be multi-view capable typically extend the View to attach application-specific data, e.g., a camera position or model.

A ConfigVisitor, NodeVisitor, PipeVisitor, WindowVisitor, ChannelVisitor, CanvasVisitor, SegmentVisitor, LayoutVisitor, ViewVisitor or ObserverVisitor may be used to traverse the corresponding entity and to execute methods for each child of the hierarchy.

The SystemWindow is used by the Window and abstracts window-system specific functionality. The GLWindow implements generic OpenGL functionality, and is in turn sub-classed by the interfaces GLXWindowIF, AGLWindowIF and WGLWindowIF, which extend the GLWindow by GLX, AGL and WGL-specific functionality. The GLXWindow, AGLWindow and WGLWindow implement the aforementioned interfaces.

The SystemPipe, GLXPipe, AGLPipe and WGLPipe hierarchy implements a similar abstraction for GPU-specific functionality.

The GLXMessagePump, AGLMessagePump and WGLMessagePump are used by the node and pipe threads to detect and dispatch system events. The GLXEventHandler, AGLEventHandler and WGLEventHandler receive these events and transform them into a AGLWindowEvent, GLXWindowEvent or WGLWindowEvent, respectively.

The window events are dispatched to the corresponding SystemWindow, which can execute window system specific tasks. The SystemWindow implementations forward the generic Event to the window. The window will handle the necessary events locally, and will transform the WindowEvent into a ConfigEvent, which is sent to the application node using Config::sendEvent().

The Event is a union of the possible concrete PointerEvent, KeyEvent, ResizeEvent, MagellanEvent, Statistic or UserEvent and may contain a valid RenderContext for a PointerEvent. The RenderContext describes the rendering setup of the last Channel draw operation on the pointer position.

During scalable rendering, a Frame is used to represent an output frame during Channel::frameReadback or an input frame during Channel::frameAssemble. Each Frame holds a FrameData, which is a container for images and links the input with the output frames. An Image represents a 2D framebuffer area, containing color and/or depth information.

Typedef Documentation

typedef util::BitmapFont< const void* > eq::BitmapFont

The bitmap font used in the client library.

Definition at line 221 of file eq/client/types.h.

A visitor to traverse canvases and children.

Definition at line 113 of file eq/client/types.h.

A visitor to traverse channels.

See Also
Channel::accept()

Definition at line 110 of file eq/client/types.h.

A visitor to traverse configs and children.

Definition at line 129 of file eq/client/types.h.

typedef vmml::frustum_culler< float > eq::FrustumCullerf

< A const_iterator over a std::string vector

Frustum culling helper

Definition at line 250 of file eq/client/types.h.

A visitor to traverse layouts and children.

Definition at line 125 of file eq/client/types.h.

A visitor to traverse nodes and children.

Definition at line 122 of file eq/client/types.h.

typedef util::ObjectManager< const void* > eq::ObjectManager

The OpenGL object manager used in the client library.

Definition at line 224 of file eq/client/types.h.

A visitor to traverse channels.

See Also
Channel::accept()

Definition at line 107 of file eq/client/types.h.

A visitor to traverse pipes and children.

Definition at line 119 of file eq/client/types.h.

A visitor to traverse segments.

See Also
Segment::accept()

Definition at line 101 of file eq/client/types.h.

A visitor to traverse servers and children.

Definition at line 132 of file eq/client/types.h.

A visitor to traverse views.

See Also
View::accept()

Definition at line 104 of file eq/client/types.h.

A visitor to traverse windows and children.

Definition at line 116 of file eq/client/types.h.

Enumeration Type Documentation

Yet another key code table to report keys in a window system independent way.

Ordinary keys (letters, numbers, etc) are reported using the corresponding ascii code. The naming is oriented on the X11 keysym naming.

Definition at line 36 of file event.h.

Defines selective logging classes enabled by setting LB_LOG_TOPICS.

Enumerator
LOG_PLUGIN 

Plugin usage (2)

LOG_INIT 

Initialization (512)

LOG_ASSEMBLY 

Compositing tasks (1024)

LOG_TASKS 

Rendering tasks (2048)

LOG_STATS 

Statistic events (4096)

LOG_SERVER 

Server-side logs (8192)

LOG_CUSTOM 

User-defined log topics (65536)

Definition at line 26 of file client/log.h.

Mouse pointer button definition.

The enums are defined as masks, so that the state of all buttons can be OR'd using the same enum.

Version
1.0

Definition at line 88 of file event.h.

Enumerator
WINDOW_SYSTEM_AGL 

AGL/Carbon.

WINDOW_SYSTEM_GLX 

GLX/X11.

WINDOW_SYSTEM_WGL 

WGL/Win32.

Definition at line 57 of file windowSystem.h.

Filtering algorithm to applied during zoom operations.

Enumerator
FILTER_NEAREST 

GL_NEAREST.

FILTER_LINEAR 

GL_LINEAR.

Definition at line 26 of file zoomFilter.h.

Function Documentation

bool eq::exit ( )

De-initialize the Equalizer client library.

Returns
true if the library was successfully de-initialized, false otherwise.
Config* eq::getConfig ( const int  argc,
char **  argv 
)

Convenience function to retrieve a configuration.

This function initializes a local client node, connects it to the server, and retrieves a configuration. On any failure everything is correctly deinitialized and 0 is returned.

Returns
the pointer to a configuration, or 0 upon error.
std::string eq::glError ( const GLenum  error)
Returns
the given error in human-readable form.
bool eq::init ( const int  argc,
char **  argv,
NodeFactory nodeFactory 
)
inline

Initialize the Equalizer client library.

The following command line options are recognized by this function:

  • –eq-logfile <filename> redirect all log output to the given file.
  • –eq-server <hostname> to specify an explicit server address (cf. Global::setServer())
  • –eq-config <filename> to specify the configuration file if an application-specific server is used (cf. Global::setConfigFile())
  • –eq-render-client <filename> to specify an alternate name for the render client executable (default is argv[0]). Also sets the working directory to the director part of the filename.

Please note that further command line parameters are recognized by co::LocalNode::initLocal().

Parameters
argcthe command line argument count.
argvthe command line argument values.
nodeFactorythe factory for allocating Equalizer objects.
Returns
true if the library was successfully initialized, false otherwise.

Definition at line 57 of file client/init.h.

References eq::Version::getABI().

+ Here is the call graph for this function:

std::ostream& eq::operator<< ( std::ostream &  os,
const ConfigEvent *  event 
)

Print the config event to the given output stream.

Version
1.0
std::ostream& eq::operator<< ( std::ostream &  os,
const EventICommand &  command 
)

Print the event command to the given output stream.

Version
1.5.1
std::ostream& eq::operator<< ( std::ostream &  ,
const Statistic::Type &   
)

Output the statistic type to an std::ostream.

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

Output the statistic to an std::ostream.

Version
1.0
std::ostream& eq::operator<< ( std::ostream &  os,
const WindowSystem &   
)

Print the window system name to the given output stream.

Version
1.0
co::DataOStream& eq::operator<< ( co::DataOStream &  os,
const WindowSystem &   
)

co::Object serializer.

Version
1.1.3
std::ostream& eq::operator<< ( std::ostream &  ,
const Event &   
)

Print the event to the given output stream.

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

Print the event type to the given output stream.

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

Print the resize event to the given output stream.

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

Print the pointer event to the given output stream.

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

Print the key event to the given output stream.

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

Print the space mouse event to the given output stream.

Version
1.0
std::ostream& eq::operator<< ( std::ostream &  ,
const FrameData &   
)

Print the frame data to the given output stream.

Version
1.4
co::DataIStream& eq::operator>> ( co::DataIStream &  is,
WindowSystem &  ws 
)

WindowSystem deserializer.

Version
1.1.3
void eq::releaseConfig ( Config *  config)

Convenience function to release a configuration.

This function releases the configuration, disconnects the server, and stops the local client node.

Display* eq::XGetCurrentDisplay ( )
Returns
the current display connection for the calling thread.
void eq::XSetCurrentDisplay ( Display *  display)

Set the current X display connection.

This function stores a per-thread display connection, similar to the current WGL/AGL context. It is used by some eq and eq::util classes to retrieve the display without having to know the eq::Pipe. The GLXPipe sets it automatically. Applications using the GLX window system with a custom SystemPipe implementation have to set it using this function.

Parameters
displaythe current display connection to use.