#include "DSCanvas.h"
#include "DSCanvasPrivate.h"
-#include "DSOutputImpl.h"
-#include "DSRenderEngineEcoreEvasImpl.h"
-#include "DSDebugLog.h"
+#include "DSPolicyAreaPrivate.h"
+#include "DSDisplayAreaPrivate.h"
namespace display_server
{
: DSObjectPrivate(p_ptr),
__p_ptr(p_ptr),
__zone(nullptr),
- __displayArea(nullptr),
- __RenderEngine(nullptr)
+ __policyArea(nullptr),
+ __displayArea(nullptr)
{}
DSCanvasPrivate::~DSCanvasPrivate()
}
__zone = std::make_shared<DSZone>(policyArea);
- __zone->registerCallbackWindowCreated(this, std::bind(&DSCanvasPrivate::__onWindowCreated, this, std::placeholders::_1));
+
+ // add zone to DSDisplayAreaPrivate
+ if (__displayArea) {
+ DSDisplayAreaPrivate *displayAreaPriv = DSDisplayAreaPrivate::getPrivate(__displayArea.get());
+ if (displayAreaPriv)
+ displayAreaPriv->addZone(__zone);
+ }
+
+ __policyArea = policyArea;
return true;
}
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;
+ // add zone to DSDisplayAreaPrivate
+ if (__policyArea) {
+ DSDisplayAreaPrivate *displayAreaPriv = DSDisplayAreaPrivate::getPrivate(__displayArea.get());
+ if (displayAreaPriv)
+ displayAreaPriv->addZone(__zone);
}
__displayArea = displayArea;
return true;
}
-void DSCanvasPrivate::__onWindowCreated(std::shared_ptr<DSWindow> window)
-{
- std::shared_ptr<DSRenderView> renderView = __RenderEngine->makeRenderView(window);
-}
-
} // namespace display_server
#include "DSCanvas.h"
#include "DSZone.h"
-#include "IDSRenderEngine.h"
namespace display_server
{
bool attachDisplayArea(std::shared_ptr<DSDisplayArea> displayArea);
private:
- void __onWindowCreated(std::shared_ptr<DSWindow> window);
-
std::shared_ptr<DSZone> __zone;
+ std::shared_ptr<DSPolicyArea> __policyArea;
std::shared_ptr<DSDisplayArea> __displayArea;
- std::shared_ptr<IDSRenderEngine> __RenderEngine;
};
}
#include "DSDisplayArea.h"
#include "DSDisplayAreaPrivate.h"
-#include "DSDebugLog.h"
+#include "DSOutputImpl.h"
+#include "DSRenderEngineEcoreEvasImpl.h"
namespace display_server
{
: DSObjectPrivate(p_ptr),
__p_ptr(p_ptr),
__output(output),
+ __zone(nullptr),
+ __renderEngine(nullptr),
__x(0),
__y(0),
__width(0),
__height(0)
-{}
+{
+ auto outputImpl = std::dynamic_pointer_cast<DSOutputImpl>(output); // down-casting of std::shared_ptr
+ auto bufferQueue = outputImpl->getDisplayBufferQueue();
+ if (!bufferQueue)
+ DSLOG_ERR("DSDisplayAreaPrivate", "bufferQueue is null.");
+
+ __renderEngine = std::make_shared<DSRenderEngineEcoreEvasImpl>(bufferQueue);
+ if (!__renderEngine)
+ DSLOG_ERR("DSCanvasPrivate", "__RenderEngine is null.");
+}
DSDisplayAreaPrivate::~DSDisplayAreaPrivate()
{}
return __output;
}
+bool DSDisplayAreaPrivate::addZone(std::shared_ptr<DSZone> zone)
+{
+ __zone->registerCallbackWindowCreated(this, std::bind(&DSDisplayAreaPrivate::__onWindowCreated, this, std::placeholders::_1));
+
+ return true;
+}
+
+void DSDisplayAreaPrivate::__onWindowCreated(std::shared_ptr<DSWindow> window)
+{
+ std::shared_ptr<DSRenderView> renderView = __renderEngine->makeRenderView(window);
+}
} // namespace display_server
#define __DS_DISPLAY_AREA_PRIVATE_H__
#include "DSDisplayArea.h"
+#include "DSWindow.h"
+#include "DSZone.h"
+#include "IDSRenderEngine.h"
#include <IDSOutput.h>
#include <memory>
namespace display_server
{
-class DSDisplayAreaPrivate : public DSObjectPrivate
+class DSDisplayAreaPrivate : public DSObjectPrivate, public DSObject
{
DS_PIMPL_USE_PUBLIC(DSDisplayArea);
public:
bool setOutput(std::shared_ptr<IDSOutput> output);
std::shared_ptr<IDSOutput> getOutput();
+ bool addZone(std::shared_ptr<DSZone> zone);
private:
+ void __onWindowCreated(std::shared_ptr<DSWindow> window);
+
std::shared_ptr<IDSOutput> __output;
+ std::shared_ptr<DSZone> __zone;
+ std::shared_ptr<IDSRenderEngine> __renderEngine;
int __x, __y;
int __width, __height;
};
#include "IDSOutput.h"
#include "DSOutputImpl.h"
#include "IDSDisplayDeviceOutput.h"
-#include "DSDisplayDeviceOutputTDMImpl.h"
+#include "DSDisplayDeviceTDMImpl.h"
using namespace display_server;
TEST_F(DSCanvasTest, NewDSCanvas)
{
- std::unique_ptr<DSCanvas> canvas = std::make_unique<DSCanvas>();
+ auto canvas = std::make_unique<DSCanvas>();
EXPECT_TRUE(canvas != nullptr);
}
TEST_F(DSCanvasTest, attachPolicyArea)
{
- std::unique_ptr<DSCanvas> canvas = std::make_unique<DSCanvas>();
+ auto canvas = std::make_unique<DSCanvas>();
EXPECT_TRUE(canvas != nullptr);
auto policyArea = std::make_shared<DSPolicyArea>();
EXPECT_TRUE(policyArea != nullptr);
TEST_F(DSCanvasTest, displayArea_Negetive1)
{
- std::unique_ptr<DSCanvas> canvas = std::make_unique<DSCanvas>();
+ auto canvas = std::make_unique<DSCanvas>();
EXPECT_TRUE(canvas != nullptr);
- auto displayDeviceOutput = std::make_shared<DSDisplayDeviceOutputTDMImpl>();
- EXPECT_TRUE(displayDeviceOutput != nullptr);
- auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
- EXPECT_TRUE(output != nullptr);
- auto displayArea = std::make_shared<DSDisplayArea>(output);
- EXPECT_TRUE(displayArea != nullptr);
- EXPECT_TRUE(canvas->attachDisplayArea(displayArea) == false);
+
+ auto displayDevice = std::make_unique<DSDisplayDeviceTDMImpl>();
+ auto outputList = displayDevice->getOutputList();
+ for (auto displayDeviceOutput : outputList) {
+ auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
+ EXPECT_TRUE(output != nullptr);
+ EXPECT_TRUE(output->applyResolutionAuto() == true);
+ auto displayArea = std::make_shared<DSDisplayArea>(output);
+ EXPECT_TRUE(displayArea != nullptr);
+ EXPECT_TRUE(canvas->attachDisplayArea(displayArea) == false);
+ }
}
#include "IDSOutput.h"
#include "DSOutputImpl.h"
#include "IDSDisplayDeviceOutput.h"
-#include "DSDisplayDeviceOutputTDMImpl.h"
+#include "DSDisplayDeviceTDMImpl.h"
using namespace display_server;
TEST_F(DSDisplayAreaTest, NewDSDisplayArea)
{
- auto displayDeviceOutput = std::make_shared<DSDisplayDeviceOutputTDMImpl>();
- EXPECT_TRUE(displayDeviceOutput != nullptr);
- auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
- EXPECT_TRUE(output != nullptr);
-
- auto displayArea = std::make_unique<DSDisplayArea>(output);
- EXPECT_TRUE(displayArea != nullptr);
+ auto displayDevice = std::make_unique<DSDisplayDeviceTDMImpl>();
+ auto outputList = displayDevice->getOutputList();
+ for (auto displayDeviceOutput : outputList) {
+ auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
+ EXPECT_TRUE(output != nullptr);
+ EXPECT_TRUE(output->applyResolutionAuto() == true);
+ auto displayArea = std::make_shared<DSDisplayArea>(output);
+ }
}
TEST_F(DSDisplayAreaTest, BasicMethods)
{
- auto displayDeviceOutput = std::make_shared<DSDisplayDeviceOutputTDMImpl>();
- EXPECT_TRUE(displayDeviceOutput != nullptr);
- auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
- EXPECT_TRUE(output != nullptr);
-
- auto displayArea = std::make_unique<DSDisplayArea>(output);
- EXPECT_TRUE(displayArea != nullptr);
-
- EXPECT_TRUE(displayArea->setPosition(0, 0) != 0);
- EXPECT_TRUE(displayArea->setSize(100, 100) != 0);
- EXPECT_TRUE(displayArea->getHeight() != 0);
- EXPECT_TRUE(displayArea->getWidth() != 0);
+ auto displayDevice = std::make_unique<DSDisplayDeviceTDMImpl>();
+ auto outputList = displayDevice->getOutputList();
+ for (auto displayDeviceOutput : outputList) {
+ auto output = std::make_shared<DSOutputImpl>(displayDeviceOutput);
+ EXPECT_TRUE(output != nullptr);
+ EXPECT_TRUE(output->applyResolutionAuto() == true);
+ auto displayArea = std::make_shared<DSDisplayArea>(output);
+ EXPECT_TRUE(displayArea->setPosition(0, 0) != 0);
+ EXPECT_TRUE(displayArea->setSize(100, 100) != 0);
+ EXPECT_TRUE(displayArea->getHeight() != 0);
+ EXPECT_TRUE(displayArea->getWidth() != 0);
+ }
}