Lumiera
0.pre.03
»edit your freedom«
|
#include "stage/display-service.hpp"
Actual implementation of the DisplayService.
Creating an instance of this class automatically registers the interface lumieraorg_Display with the Lumiera Interface/Plugin system and creates a forwarding proxy within the application core to route calls through this interface.
In addition to the Display interface, this class implements an additional service for the GUI, allowing actually to set up display slots, which then can be handed out to client code in the course of the play process for outputting frames.
Definition at line 120 of file display-service.hpp.
Public Member Functions | |
void | allocate (LumieraDisplaySlot, bool doAllocate) |
prepare and the given slot for output More... | |
DisplayerSlot & | resolve (LumieraDisplaySlot) |
resolve the given display slot handle to yield a ref to an actual implementation object. More... | |
Static Public Member Functions | |
static LumieraDisplaySlot | setUp (FrameDestination const &) |
open a new display, sending frames to the given output destination More... | |
Private Types | |
typedef lumiera::InstanceHandle< LUMIERA_INTERFACE_INAME(lumieraorg_Display, 0), lumiera::Display > | ServiceInstanceHandle |
Private Attributes | |
string | error_ |
ServiceInstanceHandle | serviceInstance_ |
DisplayerTab | slots_ |
Additional Inherited Members | |
Private Member Functions inherited from NonCopyable | |
NonCopyable (NonCopyable const &)=delete | |
NonCopyable & | operator= (NonCopyable const &)=delete |
|
static |
open a new display, sending frames to the given output destination
Definition at line 178 of file display-service.cpp.
References stage::anonymous_namespace{display-service.cpp}::_instance, and ScopedPtrVect< T >::manage().
void allocate | ( | LumieraDisplaySlot | handle, |
bool | doAllocate | ||
) |
prepare and the given slot for output
doAllocate | allocate when true, else release it |
lumiera::error::Logic | when already in use |
Definition at line 187 of file display-service.cpp.
DisplayerSlot & resolve | ( | LumieraDisplaySlot | handle | ) |
resolve the given display slot handle to yield a ref to an actual implementation object.
In order to be resolvable, the DisplayerSlot needs to be locked (=allocated) for output use.
Definition at line 208 of file display-service.cpp.
References DisplayerSlot::displayCurrentFrame().