Fixed sync issue
authorHeeJu Kang <mobum.kang@samsung.com>
Mon, 8 Apr 2013 10:13:21 +0000 (19:13 +0900)
committerHeeJu Kang <mobum.kang@samsung.com>
Mon, 8 Apr 2013 10:13:21 +0000 (19:13 +0900)
Change-Id: I85f1c4c05da35583dd3125da33df108558277f2f
Signed-off-by: HeeJu Kang <mobum.kang@samsung.com>
src/FShell_AppWidgetFrame.cpp
src/FShell_AppWidgetLayer.cpp
src/FShell_AppWidgetLayer.h
src/FShell_AppWidgetPopup.cpp
src/FShell_AppWidgetPopupView.cpp
src/FShell_AppWidgetView.cpp
src/FShell_AppWidgetViewManager.cpp

index 420bf78..63afc95 100644 (file)
@@ -230,6 +230,8 @@ _AppWidgetFrame::OnDraw(void)
        {
                __pAppWidgetFramePresenter->Draw();
        }
+
+       __pAppWidgetLayer->SetRenderEnabled(true);
 }
 
 }} // Tizen::Shell
index 523378b..54c94f2 100644 (file)
@@ -92,6 +92,7 @@ _AppWidgetLayer::_AppWidgetLayer(const FloatDimension& size)
        , __pRenderBuffer(null)
        , __bufferSize(0)
        , __pixmapId(-1)
+       , __rendered(true)
 {
 }
 
@@ -168,6 +169,8 @@ _AppWidgetLayer::GetPixmapId(void) const
 void
 _AppWidgetLayer::SetLayerBounds(const FloatRectangle& bounds)
 {
+       SetRenderEnabled(false);
+
        __size = FloatDimension(bounds.width, bounds.height);
 
        ecore_evas_resize(__pEcoreEvas.get(), __size.width, __size.height);
@@ -261,7 +264,7 @@ _AppWidgetLayer::SyncPixmap(const FloatDimension& size)
                FILE* pFile = null;\r
                static int idx = 0;\r
                char filename[1024];\r
-               snprintf(filename, sizeof(filename), "/opt/out%d.raw", idx++);\r
+               snprintf(filename, sizeof(filename), "/tmp/provider%d.raw", idx++);\r
                pFile = fopen(filename, "w+b");\r
                if (pFile)\r
                {\r
@@ -322,8 +325,20 @@ CATCH:
 }
 
 void
+_AppWidgetLayer::SetRenderEnabled(bool enable)
+{
+       __rendered = enable;
+}
+
+void
 _AppWidgetLayer::OnRendered(void)
 {
+       if (!__rendered)
+       {
+               SysLog(NID_UI_CTRL, "do not sync");
+               return;
+       }
+
        if (__pixmapId == -1)
        {
                __pixmapId = AcquirePixmap();
index db60470..fd32e4c 100644 (file)
@@ -60,6 +60,7 @@ public:
        void FreeCanvas(void* pCanvas);
        int EventHandler(int eventType, double timestamp, double x, double y);
        result SyncPixmap(const Tizen::Graphics::FloatDimension& size);
+       void SetRenderEnabled(bool enable);
        void OnRendered(void);
 
        virtual result RegisterTouchEventListener(void);
@@ -99,6 +100,7 @@ private:
        void* __pRenderBuffer;
        int __bufferSize;
        int __pixmapId;
+       bool __rendered;
 };
 
 }} // Tizen::Shell
index d3e3ed0..3a854dc 100644 (file)
@@ -104,7 +104,7 @@ _AppWidgetPopupLayer::AcquirePixmap(void)
        SystemTime::GetTicks(ticks);\r
        SysLog(NID_UI_CTRL, "%lld", ticks);\r
 \r
-       SysLog(NID_UI_CTRL, "pixmapId(%d) size(%d %d)", pixmapId, __size.width, __size.height);\r
+       SysLog(NID_UI_CTRL, "pixmapId(%d) size(%f %f)", pixmapId, __size.width, __size.height);\r
 \r
        return pixmapId;\r
 }\r
@@ -368,6 +368,8 @@ _AppWidgetPopup::OnDraw(void)
        {\r
                __pAppWidgetPopupPresenter->Draw();\r
        }\r
+\r
+       __pAppWidgetPopupLayer->SetRenderEnabled(true);\r
 }\r
 \r
 }} // Tizen::Shell\r
index ed8bb20..b16916a 100644 (file)
@@ -462,6 +462,7 @@ _AppWidgetPopupView::OnAppWidgetUpdated(const Tizen::Graphics::Bitmap& bitmap, c
 
        if (!__firstUpdated)
        {
+               Draw(true);
                PlayAnimation(true);
                __firstUpdated = true;
        }
@@ -579,7 +580,7 @@ _AppWidgetPopupView::OnPixmapDamaged(void* pData, int type, void* pEvent)
        Ecore_X_Event_Damage* pDamageEvent = static_cast<Ecore_X_Event_Damage*>(pEvent);
        SysTryReturn(NID_UI_CTRL, pDamageEvent != null, ECORE_CALLBACK_PASS_ON, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
-       int pixmap = pPopupView->__pixmap;
+       unsigned int pixmap = static_cast<unsigned int>(pPopupView->__pixmap);
        SysTryReturn(NID_UI_CTRL, pDamageEvent->drawable == pixmap, ECORE_CALLBACK_PASS_ON, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid [%d %d].", pDamageEvent->drawable, pixmap);
 
        int x = 0;
index 888b405..697f894 100644 (file)
@@ -20,6 +20,8 @@
  */
 
 #include <new>
+#include <errno.h>\r
+#include <string.h>
 #include <livebox.h>
 #include <livebox-service.h>
 #include <FBaseColLinkedListT.h>
@@ -713,7 +715,7 @@ _AppWidgetView::OnPixmapDamaged(void* pData, int type, void* pEvent)
        Ecore_X_Event_Damage* pDamageEvent = static_cast<Ecore_X_Event_Damage*>(pEvent);
        SysTryReturn(NID_UI_CTRL, pDamageEvent != null, ECORE_CALLBACK_PASS_ON, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
-       int pixmap = pAppWidgetView->__pixmap;
+       unsigned int pixmap = static_cast<unsigned int>(pAppWidgetView->__pixmap);
        SysTryReturn(NID_UI_CTRL, pDamageEvent->drawable == pixmap, ECORE_CALLBACK_PASS_ON, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid [%d %d].", pDamageEvent->drawable, pixmap);
 
        int x = 0;
index 6ef9901..ab1057f 100644 (file)
@@ -20,6 +20,8 @@
  */
 
 #include <new>
+#include <errno.h>\r
+#include <string.h>
 #include <Ecore_X.h>
 #include <Evas.h>
 extern "C"
@@ -51,6 +53,7 @@ extern "C"
 #include "FShell_AppWidgetPopupView.h"
 
 //#define _PIXMAP_TEST
+//#define _BUFFER_TEST
 
 #if defined(_PIXMAP_TEST)
 extern "C"
@@ -576,6 +579,26 @@ _AppWidgetViewManager::GetBitmapN(void* pBuffer, const FloatDimension& size) con
        const int BITS_PER_PIXEL = 32;
        int length = size.width * size.height * BITS_PER_PIXEL / 8;
 
+#if defined(_BUFFER_TEST)
+       {
+               FILE* pFile = null;\r
+               static int idx = 0;\r
+               char filename[1024];\r
+               snprintf(filename, sizeof(filename), "/tmp/view%d.raw", idx++);\r
+               pFile = fopen(filename, "w+b");\r
+               if (pFile)\r
+               {\r
+                       fwrite(pBuffer, length, 1, pFile);\r
+                       fclose(pFile);\r
+                       SysLog(NID_UI_CTRL, "_BUFFER_TEST: buffer (0x%x) size (%d) width(%f) height(%f)", pBuffer, length, size.width, size.height);\r
+               }\r
+               else\r
+               {\r
+                       SysLog(NID_UI_CTRL, "File open failed: (%s) buffer (0x%x) size (%d)", strerror(errno), pBuffer, length);\r
+               }\r
+       }
+#endif // _BUFFER_TEST
+
        unique_ptr<ByteBuffer> pByteBuffer(new (std::nothrow) ByteBuffer());
        SysTryReturn(NID_UI_CTRL, pByteBuffer, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
 
@@ -862,7 +885,7 @@ _AppWidgetViewManager::OnAppWidgetResized(livebox* pAppWidget, int ret, void* pD
        _AppWidgetViewManager* pAppWidgetViewManager = static_cast<_AppWidgetViewManager*>(pData);
        SysTryReturnVoidResult(NID_UI_CTRL, pAppWidgetViewManager, E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
 
-       pAppWidgetViewManager->OnAppWidgetUpdated(pAppWidget);
+//     pAppWidgetViewManager->OnAppWidgetUpdated(pAppWidget);
 }
 
 void