DSDisplayArea: add __onEventIdleEnterer method 99/241699/1
authorSooChan Lim <sc1.lim@samsung.com>
Fri, 31 Jul 2020 03:39:14 +0000 (12:39 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:04:59 +0000 (19:04 +0900)
__onEventIdleEnterer method is called at the idle enterer in DSEventLoop

Change-Id: I204dc463e6b747d28d9ce74a549b3e2e6d459deb

src/DSDisplayArea/DSDisplayArea.cpp
src/DSDisplayArea/DSDisplayAreaPrivate.h

index a67494d..c97da10 100644 (file)
@@ -84,6 +84,9 @@ DSDisplayAreaPrivate::DSDisplayAreaPrivate(DSDisplayArea *p_ptr, std::shared_ptr
        __renderEngine = std::make_shared<DSRenderEngineEcoreEvasImpl>(bufferQueue);
        if (!__renderEngine)
                DSLOG_ERR("DSCanvasPrivate", "__RenderEngine is null.");
+
+       // add idle enterer event on __onEventIdleEnterer for rendereing and displaying
+       DSEventLoop::addIdleEnterer(this, __onEventIdleEnterer);
 }
 
 DSDisplayAreaPrivate::~DSDisplayAreaPrivate()
@@ -140,4 +143,11 @@ void DSDisplayAreaPrivate::__onWindowCreated(std::shared_ptr<DSWindow> window)
        __displayDeviceHWCWindowList.push_back(__displayDeviceHWC->makeHWCWindow(window));
 }
 
+Eina_Bool DSDisplayAreaPrivate::__onEventIdleEnterer(void *data)
+{
+       // TODO:: __displayDeviceHWC->commit();
+       // TODO:: __renderEngine->renderFrame();
+       return true;
+}
+
 } // namespace display_server
index 32d7c70..8022219 100644 (file)
@@ -8,6 +8,7 @@
 #include <IDSOutput.h>
 #include "IDSDisplayDeviceOutput.h"
 #include "IDSDisplayDeviceHWC.h"
+#include "DSEventLoop.h"
 #include <memory>
 
 namespace display_server
@@ -33,6 +34,7 @@ public:
 
 private:
        void __onWindowCreated(std::shared_ptr<DSWindow> window);
+       static Eina_Bool __onEventIdleEnterer(void *data);
 
        std::shared_ptr<IDSOutput> __output;
        std::shared_ptr<IDSDisplayDeviceOutput> __displayDeviceOutput;