Equalizer  2.0.0
Parallel Rendering Framework
seq::Application Class Referenceabstract

The main application object. More...

#include <application.h>

+ Inheritance diagram for seq::Application:
+ Collaboration diagram for seq::Application:

Public Member Functions

SEQ_API Application ()
 Construct a new application instance. More...
 
Data Access
SEQ_API co::NodePtr getMasterNode ()
 
Operations
virtual SEQ_API bool init (int argc, char **argv, co::Object *initData)
 Initialize the application instance. More...
 
virtual SEQ_API bool run (co::Object *frameData)
 Run the application main loop. More...
 
virtual SEQ_API bool exit ()
 Exit this application instance. More...
 
SEQ_API void stopRunning ()
 Request that the application leaves its run loop. More...
 
Callbacks
virtual bool clientInit (co::Object *initData)
 Initialize a render client. More...
 
virtual bool clientExit ()
 Exit a render client. More...
 
virtual RenderercreateRenderer ()=0
 Create a new renderer instance. More...
 
virtual SEQ_API void destroyRenderer (Renderer *renderer)
 Delete the given renderer. More...
 
virtual SEQ_API ViewDatacreateViewData (View &view)
 Create a new per-view data instance. More...
 
virtual SEQ_API void destroyViewData (ViewData *viewData)
 Delete the given view data. More...
 
Internal
SEQ_API eq::ConfiggetConfig ()
 
detail::Application * getImpl ()
 
Distributed Object API
SEQ_API bool registerObject (co::Object *object, const uint32_t type)
 Add and register a new object as master instance. More...
 
SEQ_API bool deregister (co::Object *object)
 Remove and deregister an object. More...
 
- Public Member Functions inherited from eq::Client
EQ_API Client ()
 Construct a new client. More...
 
EQ_API bool connectServer (ServerPtr server)
 Open and connect an Equalizer server to the local client. More...
 
EQ_API bool disconnectServer (ServerPtr server)
 Disconnect and close the connection to an Equalizer server. More...
 
EQ_API bool initLocal (const int argc, char **argv) override
 Initialize a local, listening node. More...
 
EQ_API bool exitLocal () override
 De-initialize a local, listening node. More...
 
EQ_API bool hasCommands ()
 
EQ_API bool isRunning () const
 
EQ_API co::CommandQueue * getMainThreadQueue () override
 
void interruptMainThread ()
 Experimental: interrupt main thread queue.
 
EQ_API void setName (const std::string &name)
 Set the name of the configuration. More...
 
EQ_API const std::string & getName () const
 
EQ_API void addActiveLayout (const std::string &activeLayout)
 Add an active layout programmatically, like –eq-layout does. More...
 
const Strings & getActiveLayouts () const
 
const std::string & getGPUFilter () const
 
float getModelUnit () const
 
- Public Member Functions inherited from eq::fabric::Client
EQFABRIC_API bool connectServer (co::NodePtr server)
 Open and connect an Equalizer server to the local client. More...
 
EQFABRIC_API bool disconnectServer (co::NodePtr server)
 Disconnect and close the connection to an Equalizer server. More...
 
EQFABRIC_API void processCommand (const uint32_t timeout=LB_TIMEOUT_INDEFINITE)
 Get and process one pending command from the node command queue. More...
 
virtual EQFABRIC_API bool dispatchCommand (co::ICommand &command)
 

Protected Member Functions

virtual SEQ_API ~Application ()
 Destruct this application instance. More...
 
- Protected Member Functions inherited from eq::Client
virtual EQ_API ~Client ()
 Destruct the client. More...
 
virtual EQ_API void clientLoop ()
 Implements the processing loop for render clients. More...
 
virtual EQ_API void exitClient ()
 Exit the process cleanly on render clients. More...
 
- Protected Member Functions inherited from eq::fabric::Client
EQFABRIC_API Client ()
 Construct a new client.
 

Detailed Description

The main application object.

Definition at line 29 of file application.h.

Constructor & Destructor Documentation

SEQ_API seq::Application::Application ( )

Construct a new application instance.

Version
1.0
virtual SEQ_API seq::Application::~Application ( )
protectedvirtual

Destruct this application instance.

Version
1.0

Referenced by clientExit().

+ Here is the caller graph for this function:

Member Function Documentation

virtual bool seq::Application::clientExit ( )
inlinevirtual

Exit a render client.

Version
1.0

Definition at line 102 of file application.h.

References createRenderer(), createViewData(), deregister(), destroyRenderer(), destroyViewData(), registerObject(), and ~Application().

+ Here is the call graph for this function:

virtual bool seq::Application::clientInit ( co::Object *  initData)
inlinevirtual

Initialize a render client.

Also called on the master application node if it contributes to the rendering.

Parameters
initDataA slave instance of the object passed to init().
Returns
true on success, false on error.
Version
1.0

Definition at line 98 of file application.h.

virtual Renderer* seq::Application::createRenderer ( )
pure virtual

Create a new renderer instance.

Called once per rendering thread, potentially in parallel, during initialization.

Returns
the new renderer
Version
1.0

Referenced by clientExit().

+ Here is the caller graph for this function:

virtual SEQ_API ViewData* seq::Application::createViewData ( View view)
virtual

Create a new per-view data instance.

Called once for each view in the current configuration. Creates the view data objects used by the application to set parameters for the renderers.

Parameters
viewthe view requesting the view data
Returns
the new view data
Version
1.11

Referenced by clientExit().

+ Here is the caller graph for this function:

SEQ_API bool seq::Application::deregister ( co::Object *  object)

Remove and deregister an object.

Parameters
objectthe object to remove and deregister
Returns
false if object was not registered, true otherwise
Version
1.8
See also
co::ObjectMap::deregister()

Referenced by clientExit().

+ Here is the caller graph for this function:

virtual SEQ_API void seq::Application::destroyRenderer ( Renderer renderer)
virtual

Delete the given renderer.

Version
1.0

Referenced by clientExit().

+ Here is the caller graph for this function:

virtual SEQ_API void seq::Application::destroyViewData ( ViewData viewData)
virtual

Delete the given view data.

Version
1.0

Referenced by clientExit().

+ Here is the caller graph for this function:

virtual SEQ_API bool seq::Application::exit ( )
virtual

Exit this application instance.

Returns
true on success, false otherwise.
Version
1.0
SEQ_API co::NodePtr seq::Application::getMasterNode ( )
Returns
the node running the main instance.
Version
1.3.1
virtual SEQ_API bool seq::Application::init ( int  argc,
char **  argv,
co::Object *  initData 
)
virtual

Initialize the application instance.

The initData object is registered and is passed to all initialization callbacks on all processes. The object may be 0, if the application does not want to use an object during initialization.

Parameters
argcthe command line argument count.
argvthe command line arguments.
initDataa distributable object for initialization data.
Returns
true on success, false otherwise.
Version
1.0
SEQ_API bool seq::Application::registerObject ( co::Object *  object,
const uint32_t  type 
)

Add and register a new object as master instance.

Parameters
objectthe new object to add and register
typeunique object type to create object via slave factory
Returns
true on success, false otherwise.
Version
1.8
See also
co::ObjectMap::register_()

Referenced by clientExit().

+ Here is the caller graph for this function:

virtual SEQ_API bool seq::Application::run ( co::Object *  frameData)
virtual

Run the application main loop.

The frameData object is registered and is passed to all rendering callbacks on all processes. It is automatically committed at the beginning of each frame. The instance passed to the render callbacks is automatically synchronized to the version belonging to the frame rendered. The object may be 0, if the application does not want to use a per-frame object.

Returns
true on success, false otherwise.
Parameters
frameDataa distributed object holding frame-specific data.
Version
1.0
SEQ_API void seq::Application::stopRunning ( )

Request that the application leaves its run loop.

Version
1.1.6

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