Fix pre-multiplied alpha issue
authorHeeJu Kang <mobum.kang@samsung.com>
Wed, 8 May 2013 10:28:47 +0000 (19:28 +0900)
committerHeeJu Kang <mobum.kang@samsung.com>
Wed, 8 May 2013 10:28:47 +0000 (19:28 +0900)
Change-Id: I5b52dd3dcfbd9eac86e05975b5c49f45f978e7d1
Signed-off-by: HeeJu Kang <mobum.kang@samsung.com>
src/FShell_AppWidgetLayer.cpp

index f66e071..ec3b421 100644 (file)
@@ -382,12 +382,22 @@ _AppWidgetLayer::Flush(void)
        if (needed)
        {
                __pAppWidgetBuffer->LockBuffer();
+
+               Evas* pEvas = ecore_evas_get(__pEcoreEvas.get());
+               SysTryReturnVoidResult(NID_SHELL, pEvas, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY));
+
+               evas_damage_rectangle_add(pEvas, 0, 0, __size.width, __size.height);
        }
 
        _EflLayer::Flush();
 
        if (needed)
-       {
+       {\r
+               void* pBuffer = const_cast<void*>(ecore_evas_buffer_pixels_get(__pEcoreEvas.get()));\r
+               SysTryReturnVoidResult(NID_SHELL, pBuffer, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY));\r
+\r
+               evas_data_argb_unpremul(static_cast<unsigned int*>(pBuffer), __size.width * __size.height);
+
                OnRendered();
 
                __pAppWidgetBuffer->UnlockBuffer();