{
__eventLoop = std::make_unique<DSEventLoop>();
- __wlCompositor = std::make_unique<DSWaylandCompositor>(new DSObject);
+ __wlCompositor = std::make_shared<DSWaylandCompositor>(new DSObject);
__displayDevice = std::make_unique<DSDisplayDeviceTDMImpl>();
- __seat = std::make_unique<DSSeat>();
- __input = std::make_shared<DSInput>();
}
DSCompositorPrivate::~DSCompositorPrivate()
DS_GET_PUB(DSCompositor);
__initializeWlDisplay();
- __initializeInput();
__initializeOutputs();
__canvas = pub->_onInitialized();
if (!__canvas) {
__wlCompositor->create();
}
-void DSCompositorPrivate::__initializeInput()
+DSWaylandCompositor *DSCompositorPrivate::getWlCompositor()
{
- __seat->addInput(__input);
- __input->Init();
+ return __wlCompositor.get();
}
void DSCompositorPrivate::__initializeOutputs()
class DSSeat;
class DSInput;
class DSWaylandCompositor;
+
class DSCompositorPrivate : public DSObjectPrivate
{
DS_PIMPL_USE_PUBLIC(DSCompositor);
DSCompositorPrivate(DSCompositor *p_ptr);
~DSCompositorPrivate();
- static DSCompositorPrivate *getPrivate(DSCompositor *q) { return q->__d_func(); }
bool run();
bool quit();
+ static DSCompositorPrivate *getPrivate(DSCompositor *q) { return q->__d_func(); }
+ DSWaylandCompositor *getWlCompositor();
+
protected:
private:
std::unique_ptr<DSEventLoop> __eventLoop;
std::unique_ptr<IDSDisplayDevice> __displayDevice;
- std::unique_ptr<DSSeat> __seat;
- std::shared_ptr<DSInput> __input;
- std::unique_ptr<DSWaylandCompositor> __wlCompositor;
+ std::shared_ptr<DSWaylandCompositor> __wlCompositor;
+
std::list<std::shared_ptr<IDSOutput>> __outputList;
std::shared_ptr<DSCanvas> __canvas;
void __initializeWlDisplay();
- void __initializeInput();
void __initializeOutputs();
};