#include "DSCanvas.h"
#include "DSCanvasPrivate.h"
+#include "DSOutputImpl.h"
+#include "DSRenderEngineEcoreEvasImpl.h"
#include "DSDebugLog.h"
namespace display_server
: DSObjectPrivate(p_ptr),
__p_ptr(p_ptr),
__policyArea(nullptr),
- __displayArea(nullptr)
+ __displayArea(nullptr),
+ __RenderEngine(nullptr)
{}
DSCanvasPrivate::~DSCanvasPrivate()
return false;
}
+ auto output = displayArea->getOutput();
+ if (!output) {
+ DSLOG_ERR("DSCanvasPrivate", "output is null.");
+ return false;
+ }
+
+ auto outputImpl = std::dynamic_pointer_cast<DSOutputImpl>(output); // down-casting of std::shared_ptr
+ auto bufferQueue = outputImpl->getDisplayBufferQueue();
+ if (!bufferQueue) {
+ DSLOG_ERR("DSCanvasPrivate", "bufferQueue is null.");
+ return false;
+ }
+
+ __RenderEngine = std::make_shared<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ if (!__RenderEngine) {
+ DSLOG_ERR("DSCanvasPrivate", "__RenderEngine is null.");
+ return false;
+ }
+
__displayArea = displayArea;
return true;
#define __DS_CANVAS_PRIVATE_H__
#include "DSCanvas.h"
+#include "IDSRenderEngine.h"
namespace display_server
{
private:
std::shared_ptr<DSPolicyArea> __policyArea;
std::shared_ptr<DSDisplayArea> __displayArea;
+ std::shared_ptr<IDSRenderEngine> __RenderEngine;
};
}