DSRenderViewEcoreEvasImpl: register BufferChanged instead of SizeChanged 57/241757/1
authorSooChan Lim <sc1.lim@samsung.com>
Thu, 6 Aug 2020 08:36:43 +0000 (17:36 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 20 Aug 2020 10:10:14 +0000 (19:10 +0900)
Change-Id: I9a7ea3b7f8c4e2c044b64f588ee3e80a924000e3

src/DSRender/DSRenderViewEcoreEvasImpl.cpp
src/DSRender/DSRenderViewEcoreEvasImpl.h

index ea80459..7781f3a 100644 (file)
@@ -12,7 +12,7 @@ DSRenderViewEcoreEvasImpl::DSRenderViewEcoreEvasImpl(Ecore_Evas *ee, std::shared
        evas_object_image_colorspace_set(__evasView, EVAS_COLORSPACE_ARGB8888);
 
        // callbacks
-       window->registerCallbackSizeChanged(this, std::bind(&DSRenderViewEcoreEvasImpl::__onWindowSizeChanged, this, std::placeholders::_1));
+       window->registerCallbackBufferChanged(this, std::bind(&DSRenderViewEcoreEvasImpl::__onWindowBufferChanged, this, std::placeholders::_1));
 }
 
 DSRenderViewEcoreEvasImpl::~DSRenderViewEcoreEvasImpl()
@@ -33,10 +33,21 @@ bool DSRenderViewEcoreEvasImpl::setBuffer(std::shared_ptr<IDSBuffer> buffer)
        return true;
 }
 
-
-void DSRenderViewEcoreEvasImpl::__onWindowSizeChanged(std::shared_ptr<stSize> size)
+void DSRenderViewEcoreEvasImpl::__onWindowBufferChanged(std::shared_ptr<IDSBuffer> buffer)
 {
-       //TODO: set the View Size with size
+       std::shared_ptr<stSize> bufferSize = buffer->getSize();
+
+       DSLOG_INF("DSRenderViewEcoreEvasImpl", "Window Buffer changed. buffer(%p) size(%d, %d)", buffer.get(), bufferSize->w, bufferSize->h);
+
+       if (!setBuffer(buffer)) {
+               DSLOG_ERR("DSRenderViewEcoreEvasImpl", "setBuffer fails.");
+               return;
+       }
+
+       evas_object_image_size_set(__evasView, bufferSize->w, bufferSize->h);
+       evas_object_image_pixels_dirty_set(__evasView, 1);
+       evas_object_resize(__evasView, bufferSize->w, bufferSize->h);
+       evas_object_show(__evasView);
 }
 
 } // namespace display_server
index d6ba6cb..731e997 100644 (file)
@@ -17,7 +17,7 @@ public:
        bool setBuffer(std::shared_ptr<IDSBuffer> buffer) override;
 
 private:
-       void __onWindowSizeChanged(std::shared_ptr<stSize> size);
+       void __onWindowBufferChanged(std::shared_ptr<IDSBuffer> buffer);
 
        Evas_Object *__evasView;
        std::shared_ptr<DSWindow> __window;