From 6a41d0968ad98aaed1d9a40116db9e6773ebe9b4 Mon Sep 17 00:00:00 2001 From: SooChan Lim Date: Tue, 25 Aug 2020 11:56:13 +0900 Subject: [PATCH] DSRenderView: add registerCallbackUpdated method Change-Id: I49f1d68a3da95d7f6b5a9459db47b55cc3b141e9 --- src/DSRender/DSRenderView.h | 3 +++ src/DSRender/DSRenderViewDaliImpl.cpp | 7 +++++++ src/DSRender/DSRenderViewDaliImpl.h | 4 ++++ src/DSRender/DSRenderViewEcoreEvasImpl.cpp | 6 ++++++ src/DSRender/DSRenderViewEcoreEvasImpl.h | 4 ++++ 5 files changed, 24 insertions(+) diff --git a/src/DSRender/DSRenderView.h b/src/DSRender/DSRenderView.h index 74a4a2c..e5c85b4 100644 --- a/src/DSRender/DSRenderView.h +++ b/src/DSRender/DSRenderView.h @@ -26,6 +26,8 @@ #include "IDSBuffer.h" #include "DSWindow.h" +#include "DSObject.h" +#include "DSSignal.h" namespace display_server { @@ -38,6 +40,7 @@ public: virtual bool setBuffer(std::shared_ptr buffer) = 0; virtual std::shared_ptr getWindow() = 0; + virtual void registerCallbackUpdated(DSObject *slot, std::function func) = 0; private: /* data */ diff --git a/src/DSRender/DSRenderViewDaliImpl.cpp b/src/DSRender/DSRenderViewDaliImpl.cpp index 1b64d5b..d860d64 100644 --- a/src/DSRender/DSRenderViewDaliImpl.cpp +++ b/src/DSRender/DSRenderViewDaliImpl.cpp @@ -146,6 +146,11 @@ std::shared_ptr DSRenderViewDaliImpl::getWindow() return __window; } +void DSRenderViewDaliImpl::registerCallbackUpdated(DSObject *slot, std::function func) +{ + __updatedSignal.connect(slot, func); +} + void DSRenderViewDaliImpl::__onWindowBufferChanged(std::shared_ptr buffer) { if (buffer) { @@ -159,6 +164,8 @@ void DSRenderViewDaliImpl::__onWindowBufferChanged(std::shared_ptr bu DSLOG_ERR("DSRenderViewDaliImpl", "setBuffer fails."); return; } + + __updatedSignal.emit(nullptr); } } // namespace display_server diff --git a/src/DSRender/DSRenderViewDaliImpl.h b/src/DSRender/DSRenderViewDaliImpl.h index 47c72ff..356b787 100644 --- a/src/DSRender/DSRenderViewDaliImpl.h +++ b/src/DSRender/DSRenderViewDaliImpl.h @@ -43,6 +43,8 @@ public: bool setBuffer(std::shared_ptr buffer) override; std::shared_ptr getWindow() override; + void registerCallbackUpdated(DSObject *slot, std::function func) override; + Dali::Geometry CreateTexturedQuad(); private: @@ -52,6 +54,8 @@ private: Dali::OffscreenWindow __offscreenWindow; Dali::Renderer __renderer; Dali::Actor __textureViewActor; + + DSSignal __updatedSignal; }; } diff --git a/src/DSRender/DSRenderViewEcoreEvasImpl.cpp b/src/DSRender/DSRenderViewEcoreEvasImpl.cpp index e66845c..9fe237d 100644 --- a/src/DSRender/DSRenderViewEcoreEvasImpl.cpp +++ b/src/DSRender/DSRenderViewEcoreEvasImpl.cpp @@ -78,4 +78,10 @@ std::shared_ptr DSRenderViewEcoreEvasImpl::getWindow() return __window; } +void DSRenderViewEcoreEvasImpl::registerCallbackUpdated(DSObject *slot, std::function func) +{ + // No updated signal at ecore evas implementation yet. + //__updatedSignal.connect(slot, func); +} + } // namespace display_server diff --git a/src/DSRender/DSRenderViewEcoreEvasImpl.h b/src/DSRender/DSRenderViewEcoreEvasImpl.h index 11ab261..0572a19 100644 --- a/src/DSRender/DSRenderViewEcoreEvasImpl.h +++ b/src/DSRender/DSRenderViewEcoreEvasImpl.h @@ -40,11 +40,15 @@ public: bool setBuffer(std::shared_ptr buffer) override; std::shared_ptr getWindow() override; + void registerCallbackUpdated(DSObject *slot, std::function func) override; + private: void __onWindowBufferChanged(std::shared_ptr buffer); Evas_Object *__evasView; std::shared_ptr __window; + + DSSignal __updatedSignal; }; -- 2.7.4