DSCanvas makes DSRenderView when DSZone creates the DSWindow.
Change-Id: Ia9e180b26b45457a8e6c0fd58bbee9353ec534ec
}
__zone = std::make_shared<DSZone>(policyArea);
+ __zone->registerCallbackWindowCreated(this, std::bind(&DSCanvasPrivate::__onWindowCreated, this, std::placeholders::_1));
return true;
}
return true;
}
+void DSCanvasPrivate::__onWindowCreated(std::shared_ptr<DSWindow> window)
+{
+ std::shared_ptr<DSRenderView> renderView = __RenderEngine->makeRenderView(window);
+}
+
} // namespace display_server
namespace display_server
{
-class DSCanvasPrivate : public DSObjectPrivate
+class DSCanvasPrivate : public DSObjectPrivate, public DSObject
{
DS_PIMPL_USE_PUBLIC(DSCanvas);
public:
bool attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea);
private:
+ void __onWindowCreated(std::shared_ptr<DSWindow> window);
+
std::shared_ptr<DSZone> __zone;
std::shared_ptr<DSDisplayArea> __displayArea;
std::shared_ptr<IDSRenderEngine> __RenderEngine;
DSRenderEngineDaliImpl::~DSRenderEngineDaliImpl()
{}
-std::shared_ptr<DSRenderView> DSRenderEngineDaliImpl::makeRenderView()
+std::shared_ptr<DSRenderView> DSRenderEngineDaliImpl::makeRenderView(std::shared_ptr<DSWindow> window)
{
- std::shared_ptr<DSRenderView> renderView = std::make_shared<DSRenderViewDaliImpl>();
+ std::shared_ptr<DSRenderView> renderView = std::make_shared<DSRenderViewDaliImpl>(window);
return renderView;
}
DSRenderEngineDaliImpl(std::shared_ptr<IDSBufferQueue> bufferQueue);
~DSRenderEngineDaliImpl();
- std::shared_ptr<DSRenderView> makeRenderView() override;
+ std::shared_ptr<DSRenderView> makeRenderView(std::shared_ptr<DSWindow> window) override;
bool renderFrame() override;
private:
evas_shutdown();
}
-std::shared_ptr<DSRenderView> DSRenderEngineEcoreEvasImpl::makeRenderView()
+std::shared_ptr<DSRenderView> DSRenderEngineEcoreEvasImpl::makeRenderView(std::shared_ptr<DSWindow> window)
{
- std::shared_ptr<DSRenderView> renderView = std::make_shared<DSRenderViewEcoreEvasImpl>(__ee);
+ std::shared_ptr<DSRenderView> renderView = std::make_shared<DSRenderViewEcoreEvasImpl>(__ee, window);
return renderView;
}
DSRenderEngineEcoreEvasImpl(std::shared_ptr<IDSBufferQueue> bufferQueue);
~DSRenderEngineEcoreEvasImpl();
- std::shared_ptr<DSRenderView> makeRenderView() override;
+ std::shared_ptr<DSRenderView> makeRenderView(std::shared_ptr<DSWindow> window) override;
bool renderFrame() override;
private:
-#ifndef __DS_RENDER_VIEW_H_
-#define __DS_RENDER_VIEW_H_
+#ifndef __DS_RENDER_VIEW_H__
+#define __DS_RENDER_VIEW_H__
#include "IDSBuffer.h"
+#include "DSWindow.h"
#include <memory>
namespace display_server
namespace display_server
{
-DSRenderViewDaliImpl::DSRenderViewDaliImpl()
+DSRenderViewDaliImpl::DSRenderViewDaliImpl(std::shared_ptr<DSWindow> window)
+ : __window(window)
{}
DSRenderViewDaliImpl::~DSRenderViewDaliImpl()
class DSRenderViewDaliImpl : public DSRenderView
{
public:
- DSRenderViewDaliImpl();
+ DSRenderViewDaliImpl(std::shared_ptr<DSWindow> window);
~DSRenderViewDaliImpl();
bool setBuffer(std::shared_ptr<IDSBuffer> buffer) override;
private:
- /* data */
+ std::shared_ptr<DSWindow> __window;
};
}
namespace display_server
{
-DSRenderViewEcoreEvasImpl::DSRenderViewEcoreEvasImpl(Ecore_Evas *ee)
+DSRenderViewEcoreEvasImpl::DSRenderViewEcoreEvasImpl(Ecore_Evas *ee, std::shared_ptr<DSWindow> window)
+ : __window(window)
{
__evasView = evas_object_image_filled_add(ecore_evas_get(ee));
evas_object_image_border_center_fill_set(__evasView, EVAS_BORDER_FILL_SOLID);
class DSRenderViewEcoreEvasImpl : public DSRenderView
{
public:
- DSRenderViewEcoreEvasImpl(Ecore_Evas *ee);
+ DSRenderViewEcoreEvasImpl(Ecore_Evas *ee, std::shared_ptr<DSWindow> window);
~DSRenderViewEcoreEvasImpl();
bool setBuffer(std::shared_ptr<IDSBuffer> buffer) override;
private:
Evas_Object *__evasView;
+ std::shared_ptr<DSWindow> __window;
};
#define __I_DS_RENDER_ENGINE_H_
#include "DSRenderView.h"
+#include "DSWindow.h"
#include <memory>
namespace display_server
public:
virtual ~IDSRenderEngine() = default;
- virtual std::shared_ptr<DSRenderView> makeRenderView() = 0;
+ virtual std::shared_ptr<DSRenderView> makeRenderView(std::shared_ptr<DSWindow> window) = 0;
virtual bool renderFrame() = 0;
};
TEST_F(DSRenderEngineDaliTest, RenderEngine_Create)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
-
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
}
TEST_F(DSRenderEngineDaliTest, RenderEngine_CreateRenderView)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
-
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
-
- std::shared_ptr<DSRenderView> renderView = renderEngine->makeRenderView();
+ auto window = std::make_shared<DSWindow>();
+ EXPECT_TRUE(window != nullptr);
+ auto renderView = renderEngine->makeRenderView(window);
EXPECT_TRUE(renderView != nullptr);
}
TEST_F(DSRenderEngineDaliTest, RenderView_SetBuffer)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
-
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineDaliImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
-
- std::shared_ptr<DSRenderView> renderView = renderEngine->makeRenderView();
+ auto window = std::make_shared<DSWindow>();
+ EXPECT_TRUE(window != nullptr);
+ auto renderView = renderEngine->makeRenderView(window);
EXPECT_TRUE(renderView != nullptr);
-
- std::shared_ptr<IDSBuffer> buffer = std::make_shared<DSBufferTBMImpl>(100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto buffer = std::make_shared<DSBufferTBMImpl>(100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(renderView->setBuffer(buffer));
}
\ No newline at end of file
TEST_F(DSRenderEngineEcoreEvasTest, RenderEngine_Create)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
}
TEST_F(DSRenderEngineEcoreEvasTest, RenderEngine_MakeRenderView)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
- std::shared_ptr<DSRenderView> renderView = renderEngine->makeRenderView();
+ auto window = std::make_shared<DSWindow>();
+ EXPECT_TRUE(window != nullptr);
+ auto renderView = renderEngine->makeRenderView(window);
EXPECT_TRUE(renderView != nullptr);
}
TEST_F(DSRenderEngineEcoreEvasTest, RenderView_SetBuffer)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
- std::shared_ptr<DSRenderView> renderView = renderEngine->makeRenderView();
+ auto window = std::make_shared<DSWindow>();
+ EXPECT_TRUE(window != nullptr);
+ auto renderView = renderEngine->makeRenderView(window);
EXPECT_TRUE(renderView != nullptr);
- std::shared_ptr<IDSBuffer> buffer = std::make_shared<DSBufferTBMImpl> (100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto buffer = std::make_shared<DSBufferTBMImpl> (100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(renderView->setBuffer(buffer));
}
TEST_F(DSRenderEngineEcoreEvasTest, RenderEngine_RenderFrame)
{
- std::shared_ptr<IDSBufferQueue> bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto bufferQueue = std::make_shared<DSBufferQueueTBMImpl>(3, 100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(bufferQueue != nullptr);
- std::unique_ptr<IDSRenderEngine> renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ auto renderEngine = std::make_unique<DSRenderEngineEcoreEvasImpl>(bufferQueue);
EXPECT_TRUE(renderEngine != nullptr);
- std::shared_ptr<DSRenderView> renderView = renderEngine->makeRenderView();
+ auto window = std::make_shared<DSWindow>();
+ EXPECT_TRUE(window != nullptr);
+ auto renderView = renderEngine->makeRenderView(window);
EXPECT_TRUE(renderView != nullptr);
- std::shared_ptr<IDSBuffer> buffer = std::make_shared<DSBufferTBMImpl> (100, 100, IDSBuffer::FORMAT_ARGB8888);
+ auto buffer = std::make_shared<DSBufferTBMImpl> (100, 100, IDSBuffer::FORMAT_ARGB8888);
EXPECT_TRUE(renderView->setBuffer(buffer));
EXPECT_TRUE(renderEngine->renderFrame());
}