DSWindow: add registerCallbackBufferChanged function 55/241755/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 6 Aug 2020 08:35:15 +0000 (17:35 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:10:12 +0000 (19:10 +0900)
Change-Id: If75029b9ee94c920e5c04046ccdf3f6020697652

src/DSWindow/DSWindow.cpp
src/DSWindow/DSWindow.h

index 9ac15bf..26cfa06 100644 (file)
@@ -81,16 +81,16 @@ void DSWindowPrivate::__onSurfaceCommitted(std::shared_ptr<DSWaylandSurfaceCommi
 {
        DS_GET_PUB(DSWindow);
 
-       // set the size of window with the size of commit infomation
-       // TODO: It could be changed by DSWindowShell policy later..
        std::shared_ptr<IDSBuffer> buffer = waylandSurfaceCommitInfo->getBuffer();
        if (buffer) {
+               // TODO: set the size of window with the size of commit information
+               //       It could be changed by DSWindowShell policy later..
                std::shared_ptr<stSize> bufferSize = buffer->getSize();
                __w = bufferSize->w;
                __h = bufferSize->h;
 
-               // emit a signal of the size changed
-               pub->__sizeChangedSignal.emit(bufferSize);
+               // emit a signal of the buffer changed
+               pub->__bufferChangedSignal.emit(buffer);
        }
 
        // TODO: get more information from waylandSurfaceCommitInfo. ex) damageSurface, damageBuffer, transform, scale and so on
@@ -232,4 +232,9 @@ void DSWindow::registerCallbackSizeChanged(DSObject *slot, std::function<void(st
        __sizeChangedSignal.connect(slot, func);
 }
 
+void DSWindow::registerCallbackBufferChanged(DSObject *slot, std::function<void(std::shared_ptr<IDSBuffer>)> func)
+{
+       __bufferChangedSignal.connect(slot, func);
+}
+
 } //  namespace display_server
\ No newline at end of file
index a8d2a7c..646430f 100644 (file)
@@ -5,6 +5,7 @@
 #include "DSStruct.h"
 #include "DSObject.h"
 #include "DSSignal.h"
+#include "IDSBuffer.h"
 
 namespace display_server
 {
@@ -42,6 +43,7 @@ public:
        DSWaylandSurface *surface();
 
        void registerCallbackSizeChanged(DSObject *slot, std::function<void(std::shared_ptr<stSize>)> func);
+       void registerCallbackBufferChanged(DSObject *slot, std::function<void(std::shared_ptr<IDSBuffer>)> func);
 
 protected:
        //virtual bool _onFocus(void);
@@ -50,6 +52,7 @@ protected:
 private:
        // signals
        DSSignal<std::shared_ptr<stSize>> __sizeChangedSignal;
+       DSSignal<std::shared_ptr<IDSBuffer>> __bufferChangedSignal;
 };
 
 }