eq Namespace Reference

The Equalizer client library. More...


Namespaces

namespace  base
 Equalizer utility layer.
namespace  server
 The Equalizer server library.
namespace  net
 Equalizer network layer.
namespace  util
 Equalizer utility classes.

Classes

class  AGLEventHandler
 The event handler for agl windows. More...
class  AGLMessagePump
 Processes OS messages on AGL/Carbon. More...
class  AGLPipe
 Equalizer default implementation of an AGL pipe. More...
class  AGLWindowIF
 The interface defining the minimum functionality for an AGL window. More...
class  AGLWindow
 Equalizer default implementation of an AGL window. More...
class  AGLWindowEvent
 A window-system event for an AGLWindowIF. More...
class  Canvas
 The canvas. More...
class  CanvasVisitor
 A visitor to traverse non-const canvases and children. More...
class  Channel
 A channel represents a two-dimensional viewport within a Window. More...
class  ChannelStatistics
 Holds one statistics event, used for profiling. More...
class  ChannelVisitor
 A visitor to traverse a non-const channels. More...
class  Client
 The client represents a network node in the cluster. More...
class  ColorMask
 Defines which parts of the color buffer are to be written. More...
class  CommandQueue
 Augments an net::CommandQueue to pump system-specific events where required by the underlying window/operating system. More...
class  Compositor
 A facility class for image assembly operations. More...
class  Compressor
 The mirror class for use easily all function of a dso compressor. More...
class  Config
 The configuration groups all processes of the application in a single net::Session. More...
class  ConfigCommitVisitor
 Commits all dirty config object at the beginning of each frame. More...
class  ConfigDeserializer
 Helper class to receive a config, which is a net::Session. More...
struct  ConfigEvent
 A config event. More...
class  ConfigParams
 Parameters for choosing and running a configuration. More...
class  ConfigStatistics
 Holds one statistics event, used for profiling. More...
class  ConfigVisitor
 A visitor to traverse non-const configs and children. More...
struct  ResizeEvent
 Event for a resized entitity (Window, Channel, View). More...
struct  PointerEvent
 Event for a pointer motion or click. More...
struct  KeyEvent
 Event for a key press. 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 internal events. More...
class  EventHandler
 Base class for window system-specific event handlers. More...
class  Frame
 A holder for a frame data and parameters. More...
class  FrameBufferObject
 A C++ class to abstract GL frame buffer objects. More...
class  FrameData
 A frame data holds multiple images and is used by frames. More...
class  FrameDataStatistics
 Holds one statistics event, used for profiling. More...
class  Frustum
 A distributed Object for frustum data. More...
class  Global
 Global parameter handling for the Equalizer client library. More...
class  GLXEventHandler
 The event handler for glX. More...
class  GLXMessagePump
 Implements a message pump for the X11 window system. More...
class  GLXPipe
 Equalizer default implementation of a GLX window. More...
class  GLXWindowIF
 The interface defining the minimum functionality for a GLX window. More...
class  GLXWindow
 Equalizer default implementation of a GLX window. More...
class  GLXWindowEvent
 A window-system event for a GLXWindowIF. More...
class  Image
 A holder for pixel data. More...
class  Layout
 A Layout groups one or more View which logically belong together. More...
class  LayoutVisitor
 A visitor to traverse non-const layouts and children. More...
class  MessagePump
 Defines an interface to process OS messages/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  NodeVisitor
 A visitor to traverse non-const nodes and children. More...
class  Object
 Base class for all distributed, inheritable objects in the eq namespace. More...
class  ObjectManager
 A facility class to managed OpenGL objects across shared contexts. More...
class  Observer
 An Observer looks at one or more views from a certain position (head matrix) with a given eye separation. More...
class  ObserverVisitor
 A visitor to traverse non-const observers. More...
class  OSPipe
 The interface definition for OS-specific pipe code. More...
class  OSWindow
 The interface definition for OS-specific windowing code. More...
class  Pipe
 A Pipe represents a graphics card (GPU) on a Node. More...
class  PipeStatistics
 Holds one statistics event, used for profiling. More...
class  PipeVisitor
 A visitor to traverse non-const pipes and children. More...
class  Pixel
 Holds a pixel decomposition specification along with some methods for manipulation. More...
class  PixelViewport
 Holds a pixel viewport along with some methods for manipulation. More...
class  PluginRegistry
 The registry for all loaded Equalizer plugins. More...
class  Projection
 A projection definition defining a view frustum. More...
class  Range
 Holds a fractional range along with some methods for manipulation. More...
struct  RenderContext
 The context applied by the server during rendering operations. More...
class  ROIEmptySpaceFinder
 Finds largest empty regions. More...
class  ROIFinder
 Processes current rendering target and selects areas for read back. More...
class  ROITracker
 Tracks requested areas for ROI. More...
class  Segment
 A Segment covers a sub-area of a canvas. More...
class  SegmentVisitor
 A visitor to traverse non-const segments. More...
class  Server
 Proxy object for the connection to an Equalizer server. More...
struct  Statistic
 A statistics event. More...
class  StatisticSampler
 Holds one statistics event. More...
class  Texture
 A wrapper around GL textures. More...
class  Version
 Information about the current Equalizer version. More...
class  View
 A View is a 2D area of a Layout. More...
class  Viewport
 Holds a fractional viewport along with some methods for manipulation. More...
class  ViewVisitor
 A visitor to traverse non-const views. More...
class  Wall
 A wall defining a view frustum. More...
class  WGLEventHandler
 The event processing for WGL. More...
class  WGLMessagePump
 Processes OS messages on Win32 systems. More...
class  WGLPipe
 Equalizer default implementation of a WGL window. More...
class  WGLWindowIF
 The interface defining the minimum functionality for a WGL window. More...
class  WGLWindow
 Equalizer default implementation of a WGL window. More...
class  WGLWindowEvent
 A window-system event for a WGLWindowIF. More...
class  Window
 A Window represents an on-screen or off-screen drawable, and manages an OpenGL context. More...
class  WindowStatistics
 Holds one statistics event, used for profiling. More...
class  WindowVisitor
 A visitor to traverse a non-const windows and children. More...
class  X11Connection
 A X11 Display connection wrapper. More...
class  Zoom
 Holds a zoom specification along with some methods for manipulation. More...

Typedefs

typedef std::vector< Node * > NodeVector
 A vector of pointers to eq::Node.
typedef std::vector< Pipe * > PipeVector
 A vector of pointers to eq::Pipe.
typedef std::vector< Window * > WindowVector
 A vector of pointers to eq::Window.
typedef std::vector< Channel * > ChannelVector
 A vector of pointers to eq::Channel.
typedef std::vector< Frame * > FrameVector
 A vector of pointers to eq::Frame.
typedef std::vector< Image * > ImageVector
 A vector of pointers to eq::Image.
typedef std::vector< Texture * > TextureVector
 A vector of pointers to eq::Texture.
typedef std::vector< Observer * > ObserverVector
 A vector of pointers to eq::Observer.
typedef std::vector< Canvas * > CanvasVector
 A vector of pointers to eq::Canvas.
typedef std::vector< Layout * > LayoutVector
 A vector of pointers to eq::Layout.
typedef std::vector< Segment * > SegmentVector
 A vector of pointers to eq::Segment.
typedef std::vector< View * > ViewVector
 A vector of pointers to eq::View.
typedef std::vector< ViewportViewportVector
 A vector of eq::Viewport.
typedef std::vector
< PixelViewport
PixelViewportVector
 A vector of eq::PixelViewport.
typedef std::vector< StatisticStatistics
 A vector of eq::Statistic events.
typedef base::RefPtr< ClientClientPtr
 A reference-counted pointer to an eq::Client.
typedef base::RefPtr< ServerServerPtr
 A reference-counted pointer to an eq::Server.
typedef vmml::matrix
< 3, 3, double > 
Matrix3d
 A 3x3 double matrix.
typedef vmml::matrix
< 4, 4, double > 
Matrix4d
 A 4x4 double matrix.
typedef vmml::matrix< 3, 3, float > Matrix3f
 A 3x3 float matrix.
typedef vmml::matrix< 4, 4, float > Matrix4f
 A 4x4 float matrix.
typedef vmml::vector< 2, int > Vector2i
 A two-component integer vector.
typedef vmml::vector< 3, int > Vector3i
 A three-component integer vector.
typedef vmml::vector< 4, int > Vector4i
 A four-component integer vector.
typedef vmml::vector< 3, double > Vector3d
 A three-component double vector.
typedef vmml::vector< 4, double > Vector4d
 A four-component double vector.
typedef vmml::vector< 2, float > Vector2f
 A four-component float vector.
typedef vmml::vector< 3, float > Vector3f
 A four-component float vector.
typedef vmml::vector< 4, float > Vector4f
 A four-component float vector.
typedef vmml::vector
< 3, unsigned char > 
Vector3ub
 A three-component byte vector.
typedef vmml::frustum< float > Frustumf
 A frustum definition.
typedef vmml::frustum_culler
< float > 
FrustumCullerf
 Frustum culling helper.
typedef std::vector< std::string > StringVector
 A vector of std::string.
typedef std::vector< uint8_t > UByteVector
 A vector of bytes.
typedef std::vector< uint16_t > UShortVector
 A vector of unsigned shorts.

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 = EQ_BIT_NONE, PTR_BUTTON1 = EQ_BIT1, PTR_BUTTON2 = EQ_BIT2, PTR_BUTTON3 = EQ_BIT3,
  PTR_BUTTON4 = EQ_BIT4, PTR_BUTTON5 = EQ_BIT5
}
 Mouse pointer button definition. More...
enum  Eye { EYE_CYCLOP = 0, EYE_LEFT, EYE_RIGHT, EYE_ALL }
 Defines an eye pass.
enum  IAttrValue {
  UNDEFINED = -0xfffffff, RGBA32F = -13, RGBA16F = -12, FBO = -11,
  LOCAL_SYNC = -10, DRAW_SYNC = -9, ASYNC = -8, PBUFFER = -7,
  WINDOW = -6, VERTICAL = -5, QUAD = -4, ANAGLYPH = -3,
  NICEST = -2, AUTO = -1, OFF = 0, ON = 1,
  FASTEST = ON, HORIZONTAL = ON
}
 Possible values for integer attributes. More...
enum  LogTopics {
  LOG_ASSEMBLY = net::LOG_CUSTOM << 0, LOG_TASKS = net::LOG_CUSTOM << 1, LOG_EVENTS = net::LOG_CUSTOM << 2, LOG_STATS = net::LOG_CUSTOM << 3,
  LOG_INIT = net::LOG_CUSTOM << 4, LOG_SERVER = net::LOG_CUSTOM << 5, LOG_CUSTOM = 0x10000
}
 Defines selective logging classes enabled by setting EQ_LOG_TOPICS. More...
enum  NodeType { TYPE_EQ_SERVER = net::TYPE_EQNET_USER }
 Node types to identify connecting nodes. More...
enum  Task {
  TASK_NONE = EQ_BIT_NONE, TASK_DEFAULT = EQ_BIT1, TASK_VIEW = EQ_BIT2, TASK_CLEAR = EQ_BIT5,
  TASK_CULL = EQ_BIT9, TASK_DRAW = EQ_BIT13, TASK_ASSEMBLE = EQ_BIT17, TASK_READBACK = EQ_BIT21,
  TASK_ALL = EQ_BIT_ALL
}
 Tasks define the actions executed by a channel during rendering. More...
enum  VisitorResult { TRAVERSE_CONTINUE, TRAVERSE_TERMINATE, TRAVERSE_PRUNE }
 The result code from any visit operation. More...
enum  WindowSystem {
  WINDOW_SYSTEM_NONE = 0, WINDOW_SYSTEM_AGL, WINDOW_SYSTEM_GLX, WINDOW_SYSTEM_WGL,
  WINDOW_SYSTEM_ALL
}
 The list of possible window systems. More...

Functions

std::ostream & operator<< (std::ostream &os, const ColorMask &mask)
std::ostream & operator<< (std::ostream &os, const EqCompressorInfo &info)
std::ostream & operator<< (std::ostream &os, const ConfigEvent *event)
std::ostream & operator<< (std::ostream &os, const Event &event)
std::ostream & operator<< (std::ostream &os, const Event::Type &type)
std::ostream & operator<< (std::ostream &os, const ResizeEvent &event)
std::ostream & operator<< (std::ostream &os, const PointerEvent &event)
std::ostream & operator<< (std::ostream &os, const KeyEvent &event)
std::ostream & operator<< (std::ostream &os, const MagellanEvent &event)
std::ostream & operator<< (std::ostream &, const Statistic &)
std::ostream & operator<< (std::ostream &os, const Eye &eye)
std::ostream & operator<< (std::ostream &os, const Frame::Type type)
std::ostream & operator<< (std::ostream &os, const Frame::Buffer buffer)
std::ostream & operator<< (std::ostream &os, const FrameData *data)
std::ostream & operator<< (std::ostream &os, const Frustum &frustum)
std::ostream & operator<< (std::ostream &os, const IAttrValue value)
 __attribute__ ((packed))
std::ostream & operator<< (std::ostream &os, const Image *image)
bool init (const int argc, char **argv, NodeFactory *nodeFactory)
 Initialize the Equalizer client library.
bool exit ()
 Deinitialize the Equalizer client library.
ConfiggetConfig (const int argc, char **argv)
 Convenience function to retrieve a configuration.
void releaseConfig (Config *config)
 Convenience function to release a configuration.
std::ostream & operator<< (std::ostream &os, const Layout *layout)
std::ostream & operator<< (std::ostream &os, const Observer *observer)
std::ostream & operator<< (std::ostream &os, const Pixel &pixel)
std::ostream & operator<< (std::ostream &os, const PixelViewport &pvp)
ostream & operator<< (ostream &os, const Projection &projection)
std::ostream & operator<< (std::ostream &os, const Range &range)
std::ostream & operator<< (std::ostream &os, const RenderContext &ctx)
std::ostream & operator<< (std::ostream &os, const Server *server)
std::ostream & operator<< (std::ostream &os, const View &view)
std::ostream & operator<< (std::ostream &os, const Viewport &vp)
std::ostream & operator<< (std::ostream &os, const VisitorResult result)
ostream & operator<< (ostream &os, const Wall &wall)
std::ostream & operator<< (std::ostream &os, const Window::DrawableConfig &config)
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 EQWARN.
std::ostream & operator<< (std::ostream &os, const WindowSystem ws)
std::ostream & operator<< (std::ostream &os, const Zoom &zoom)


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 net::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 net::Session, which is normally used to register distributed objects based on eq::Object or eq::net::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 OSWindow is used by the Window and abstracts window-system specific functionality. The interface GLXWindowIF, AGLWindowIF and WGLWindowIF extend the OSWindow interface by GLX, AGL and WGL-specific functionality. The GLXWindow, AGLWindow and WGLWindow implement the aforementioned interfaces.

The OSPipe, 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 OSWindow, which can execute window system specific tasks. The OSWindow 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 and 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.

The ObjectManager, Texture and FrameBufferObject are helper classes for OpenGL functionality.


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 37 of file event.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.

Definition at line 88 of file event.h.

Possible values for integer attributes.

Enumerator:
UNDEFINED  Undefined value.
RGBA32F  Float32 framebuffer (Window::IATTR_PLANES_COLOR).
RGBA16F  Float16 framebuffer (Window::IATTR_PLANES_COLOR).
FBO  FBO drawable (Window::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 (Window::IATTR_HINT_DRAWABLE).
WINDOW  Window drawable (Window::IATTR_HINT_DRAWABLE).
VERTICAL  Vertical load-balancing.
QUAD  Quad-buffered stereo decomposition.
ANAGLYPH  Anaglyphic stereo decomposition.
NICEST  Nicest statisics gathering (Window::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS).
AUTO  Automatic selection (various attributes).
OFF  disabled (various attributes)
ON  enabled (various attributes)
FASTEST  Fastest statisics gathering (Window::IATTR_HINT_STATISTICS, Channel::IATTR_HINT_STATISTICS).
HORIZONTAL  Horizontal load-balancing.

Definition at line 36 of file lib/client/global.h.

Defines selective logging classes enabled by setting EQ_LOG_TOPICS.

Enumerator:
LOG_ASSEMBLY  Log compositing tasks (256).
LOG_TASKS  Log rendering tasks (512).
LOG_EVENTS  Log events (1024).
LOG_STATS  Log statistic events (2048).
LOG_INIT  Log initialization (4096).
LOG_SERVER  Server-side logging (8192).
LOG_CUSTOM  User-defined log topics.

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

Node types to identify connecting nodes.

Enumerator:
TYPE_EQ_SERVER  A server node.

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

enum eq::Task

Tasks define the actions executed by a channel during rendering.

The enum values are spaced apart to leave room for future additions without breaking binary backward compatibility.

Enumerator:
TASK_DEFAULT  leaf: all, other ASSEMBLE|READBACK|VIEW
TASK_VIEW  View start/finish.
TASK_CLEAR  Clear the framebuffer.
TASK_CULL  Cull data [unused].
TASK_DRAW  Draw data to the framebuffer.
TASK_ASSEMBLE  Combine input frames.
TASK_READBACK  Read results to output frames.

Definition at line 31 of file task.h.

The result code from any visit operation.

Enumerator:
TRAVERSE_CONTINUE  continue the traversal
TRAVERSE_TERMINATE  abort the traversal
TRAVERSE_PRUNE  do not traverse current entity downwards

Definition at line 26 of file lib/client/visitorResult.h.

The list of possible window systems.

Enumerator:
WINDOW_SYSTEM_AGL  AGL/Carbon.
WINDOW_SYSTEM_GLX  GLX/X11.
WINDOW_SYSTEM_WGL  WGL/Win32.

Definition at line 28 of file windowSystem.h.


Function Documentation

bool eq::init ( const int  argc,
char **  argv,
NodeFactory *  nodeFactory 
)

Initialize the Equalizer client library.

Parameters:
argc the command line argument count.
argv the command line argument values.
nodeFactory the factory for allocating Equalizer objects.
Returns:
true if the library was successfully initialised, false otherwise.

Definition at line 41 of file client/init.cpp.

References EQERROR, EQINFO, eq::Global::getPluginRegistry(), eq::Version::getString(), eq::net::init(), eq::PluginRegistry::init(), eq::Global::setConfigFile(), and eq::Global::setServer().

Here is the call graph for this function:

bool eq::exit (  ) 

Deinitialize the Equalizer client library.

De-initialize the Equalizer base classes.

Returns:
true if the library was successfully de-initialised, false otherwise.

Definition at line 92 of file client/init.cpp.

References eq::net::exit(), eq::PluginRegistry::exit(), and eq::Global::getPluginRegistry().

Referenced by eq::Client::exitClient().

Here is the call graph for this function:

Here is the caller graph for this function:

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.

Definition at line 106 of file client/init.cpp.

References EQERROR.

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.

Definition at line 139 of file client/init.cpp.

References eq::Config::getServer(), and eq::base::RefPtr< T >::isValid().

Here is the call graph for this function:

Generated on Mon Aug 10 18:58:42 2009 for Equalizer 0.9 by  doxygen 1.5.8