Equalizer  1.8.0
Parallel Rendering Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
eqPly::Pipe Class Reference

The representation of one GPU. More...

#include <pipe.h>

+ Inheritance diagram for eqPly::Pipe:
+ Collaboration diagram for eqPly::Pipe:

Public Member Functions

 Pipe (eq::Node *parent)
 
const FrameDatagetFrameData () const
 
- Public Member Functions inherited from eq::Pipe
EQ_API Pipe (Node *parent)
 Construct a new pipe. More...
 
void waitExited () const
 
void notifyMapped ()
 
EQ_API void waitFrameFinished (const uint32_t frameNumber) const
 
EQ_API EventOCommand sendError (const uint32_t error)
 Send a pipe error event to the application node. More...
 
EQ_API void waitFrameLocal (const uint32_t frameNumber) const
 
virtual EQ_API bool processEvent (const Event &event)
 Process a received event. More...
 
void startThread ()
 
void exitThread ()
 
void cancelThread ()
 
bool startTransferThread ()
 
bool hasTransferThread () const
 
virtual EQ_API void setDirty (const uint64_t bits)
 
EQ_API co::CommandQueue * getPipeThreadQueue ()
 
co::CommandQueue * getMainThreadQueue ()
 
co::CommandQueue * getCommandThreadQueue ()
 
co::CommandQueue * getTransferThreadQueue ()
 
EQ_API ConfiggetConfig ()
 
EQ_API const ConfiggetConfig () const
 
EQ_API ClientPtr getClient ()
 
EQ_API ServerPtr getServer ()
 
bool isRunning () const
 
EQ_API bool isStopped () const
 
EQ_API uint32_t getCurrentFrame () const
 Return the current frame number. More...
 
EQ_API uint32_t getFinishedFrame () const
 
EQ_API WindowSystem getWindowSystem () const
 Return the window system used by this pipe. More...
 
EQ_API void setSystemPipe (SystemPipe *pipe)
 Set the system-specific pipe implementation. More...
 
EQ_API SystemPipegetSystemPipe ()
 
EQ_API const SystemPipegetSystemPipe () const
 
EQ_API void setComputeContext (ComputeContext *ctx)
 Set the compute-specific context. More...
 
EQ_API const ComputeContextgetComputeContext () const
 
EQ_API ComputeContextgetComputeContext ()
 
virtual EQ_API MessagePumpcreateMessagePump ()
 Create a new MessagePump for this pipe. More...
 
MessagePumpgetMessagePump ()
 
FramegetFrame (const co::ObjectVersion &frameVersion, const Eye eye, const bool output)
 
co::QueueSlave * getQueue (const uint128_t &queueID)
 
void flushFrames (util::ObjectManager &om)
 
const ViewgetView (const co::ObjectVersion &viewVersion) const
 
ViewgetView (const co::ObjectVersion &viewVersion)
 
- Public Member Functions inherited from eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >
NodegetNode ()
 
const NodegetNode () const
 
const WindowsgetWindows () const
 
uint32_t getPort () const
 Returns the port number of this pipe. More...
 
EQFABRIC_INL void setPort (const uint32_t port)
 
uint32_t getDevice () const
 Returns the device number of this pipe. More...
 
EQFABRIC_INL void setDevice (const uint32_t device)
 
const PixelViewportgetPixelViewport () const
 
EQFABRIC_INL void setPixelViewport (const PixelViewport &pvp)
 Set the pipe's pixel viewport. More...
 
void notifyPixelViewportChanged ()
 
EQFABRIC_INL PipePath getPath () const
 
EQFABRIC_INL VisitorResult accept (PipeVisitor &visitor)
 Perform a depth-first traversal of this pipe. More...
 
EQFABRIC_INL VisitorResult accept (PipeVisitor &visitor) const
 Const-version of accept(). More...
 
virtual EQFABRIC_INL void backup ()
 
virtual EQFABRIC_INL void restore ()
 
void create (eq::Window **window)
 
void release (eq::Window *window)
 
virtual void output (std::ostream &) const
 
virtual EQFABRIC_INL uint128_t commit (const uint32_t incarnation=CO_COMMIT_NEXT)
 
EQFABRIC_INL void setIAttribute (const IAttribute attr, const int32_t value)
 
int32_t getIAttribute (const IAttribute attr) const
 
bool isThreaded () const
 
- Public Member Functions inherited from eq::fabric::Object
virtual EQFABRIC_API bool isDirty () const
 
virtual EQFABRIC_API void setName (const std::string &name)
 Set the name of the object. More...
 
EQFABRIC_API const std::string & getName () const
 
EQFABRIC_API void setUserData (co::Object *userData)
 Set user-specific data. More...
 
EQFABRIC_API co::Object * getUserData ()
 
EQFABRIC_API const co::Object * getUserData () const
 
EQFABRIC_API uint32_t getTasks () const
 Return the set of tasks this channel might execute in the worst case. More...
 
EQFABRIC_API uint32_t getSerial () const
 

Protected Member Functions

virtual ~Pipe ()
 Destruct the pipe. More...
 
virtual eq::WindowSystem selectWindowSystem () const
 Choose the window system to be used by this pipe. More...
 
virtual bool configInit (const eq::uint128_t &initID)
 Initialize this pipe. More...
 
virtual bool configExit ()
 De-initialize this pipe. More...
 
virtual void frameStart (const eq::uint128_t &frameID, const uint32_t frameNumber)
 Start rendering a frame. More...
 
- Protected Member Functions inherited from eq::Pipe
EQ_API void startFrame (const uint32_t frameNumber)
 Start a frame by unlocking all child resources. More...
 
EQ_API void releaseFrame (const uint32_t frameNumber)
 Signal the completion of a frame to the parent. More...
 
EQ_API void releaseFrameLocal (const uint32_t frameNumber)
 Release the local synchronization of the parent for a frame. More...
 
virtual EQ_API bool configInitSystemPipe (const uint128_t &initID)
 Initialize the OS-specific pipe. More...
 
virtual EQ_API void frameFinish (const uint128_t &frameID, const uint32_t frameNumber)
 Finish rendering a frame. More...
 
virtual EQ_API void frameDrawFinish (const uint128_t &frameID, const uint32_t frameNumber)
 Finish drawing. More...
 
virtual EQ_API void attach (const uint128_t &id, const uint32_t instanceID)
 
- Protected Member Functions inherited from eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >
 Pipe (Node *parent)
 
virtual EQFABRIC_INL void serialize (co::DataOStream &os, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void deserialize (co::DataIStream &is, const uint64_t dirtyBits)
 
virtual EQFABRIC_INL void notifyDetach ()
 
virtual ChangeType getChangeType () const
 
eq::Window_findWindow (const uint128_t &id)
 
virtual uint64_t getRedistributableBits () const
 
- Protected Member Functions inherited from eq::fabric::Object
EQFABRIC_API Object ()
 Construct a new Object. More...
 
EQFABRIC_API Object (const Object &)
 Construct an unmapped, unregistered copy of an object. More...
 
virtual EQFABRIC_API ~Object ()
 Destruct the object. More...
 
EQFABRIC_API Objectoperator= (const Object &from)
 NOP assignment operator. More...
 
virtual bool hasMasterUserData ()
 
virtual uint32_t getUserDataLatency () const
 
EQFABRIC_API void setTasks (const uint32_t tasks)
 
EQFABRIC_API void postRemove (Object *child)
 
virtual void removeChild (const uint128_t &)
 
template<class C , class S >
void commitChild (C *child, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChild (C *child, const uint32_t incarnation)
 
template<class C , class S >
void commitChildren (const std::vector< C * > &children, S *sender, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, uint32_t cmd, const uint32_t incarnation)
 
template<class C >
void commitChildren (const std::vector< C * > &children, const uint32_t incarnation)
 
template<class C >
void syncChildren (const std::vector< C * > &children)
 
template<class P , class C >
void releaseChildren (const std::vector< C * > &children)
 
EQFABRIC_API bool _cmdSync (co::ICommand &command)
 

Additional Inherited Members

- Public Types inherited from eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >
typedef std::vector< eq::Window * > Windows
 A vector of pointers to windows. More...
 
enum  IAttribute
 Pipe attributes. More...
 
- Public Types inherited from eq::fabric::Object
enum  DirtyBits {
  DIRTY_NAME = Serializable::DIRTY_CUSTOM << 0, DIRTY_USERDATA = Serializable::DIRTY_CUSTOM << 1, DIRTY_TASKS = Serializable::DIRTY_CUSTOM << 2, DIRTY_REMOVED = Serializable::DIRTY_CUSTOM << 3,
  DIRTY_SERIAL = Serializable::DIRTY_CUSTOM << 4, DIRTY_CUSTOM = Serializable::DIRTY_CUSTOM << 6, DIRTY_OBJECT_BITS = DIRTY_NAME | DIRTY_USERDATA
}
 The changed parts of the object since the last pack(). More...
 
- Static Public Member Functions inherited from eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >
static EQFABRIC_INL const
std::string & 
getIAttributeString (const IAttribute attr)
 
- Protected Types inherited from eq::fabric::Pipe< Node, Pipe, eq::Window, PipeVisitor >
enum  DirtyBits
 

Detailed Description

The representation of one GPU.

The pipe object is responsible for maintaining GPU-specific and frame-specific data. The identifier passed by the configuration contains the version of the frame data corresponding to the rendered frame. The pipe's start frame callback synchronizes the thread-local instance of the frame data to this version.

Definition at line 47 of file share/Equalizer/examples/eqPly/pipe.h.

Constructor & Destructor Documentation

virtual eqPly::Pipe::~Pipe ( )
inlineprotectedvirtual

Destruct the pipe.

Version
1.0

Reimplemented from eq::Pipe.

Definition at line 55 of file share/Equalizer/examples/eqPly/pipe.h.

Member Function Documentation

bool eqPly::Pipe::configExit ( )
protectedvirtual

De-initialize this pipe.

Version
1.0

Reimplemented from eq::Pipe.

Definition at line 57 of file eqPly/pipe.cpp.

References eq::Pipe::configExit(), eq::Pipe::getConfig(), and eq::Config::unmapObject().

+ Here is the call graph for this function:

bool eqPly::Pipe::configInit ( const eq::uint128_t &  initID)
protectedvirtual

Initialize this pipe.

Parameters
initIDthe init identifier.
Version
1.0

Reimplemented from eq::Pipe.

Definition at line 45 of file eqPly/pipe.cpp.

References eq::Pipe::configInit(), eq::Pipe::getConfig(), and eq::Config::mapObject().

+ Here is the call graph for this function:

void eqPly::Pipe::frameStart ( const eq::uint128_t &  frameID,
const uint32_t  frameNumber 
)
protectedvirtual

Start rendering a frame.

Called once at the beginning of each frame, to do per-frame updates of pipe-specific data, for example updating the rendering engine. Waits for the node to start the frame, unless the thread model is async. If the thread model is async, the local synchronization is released immediately.

This method has to call startFrame().

Parameters
frameIDthe per-frame identifier.
frameNumberthe frame to start.
See also
Config::startFrame(), Node::startFrame(), Node::waitFrameStarted()
Version
1.0

Reimplemented from eq::Pipe.

Definition at line 65 of file eqPly/pipe.cpp.

References eq::Pipe::frameStart().

+ Here is the call graph for this function:

eq::WindowSystem eqPly::Pipe::selectWindowSystem ( ) const
protectedvirtual

Choose the window system to be used by this pipe.

This function determines which of the supported windowing systems is used by this pipe instance.

Returns
the window system currently used by this pipe.
Version
1.0

Reimplemented from eq::Pipe.

Definition at line 39 of file eqPly/pipe.cpp.

References eq::Pipe::getConfig().

+ Here is the call graph for this function:


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