From 4e2c262eee5f91372fec2fb4436e4ea5a5b97f10 Mon Sep 17 00:00:00 2001 From: HeeJu Kang Date: Wed, 8 May 2013 19:28:47 +0900 Subject: [PATCH] Fix pre-multiplied alpha issue Change-Id: I5b52dd3dcfbd9eac86e05975b5c49f45f978e7d1 Signed-off-by: HeeJu Kang --- src/FShell_AppWidgetLayer.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/FShell_AppWidgetLayer.cpp b/src/FShell_AppWidgetLayer.cpp index f66e071..ec3b421 100644 --- a/src/FShell_AppWidgetLayer.cpp +++ b/src/FShell_AppWidgetLayer.cpp @@ -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) - { + { + void* pBuffer = const_cast(ecore_evas_buffer_pixels_get(__pEcoreEvas.get())); + SysTryReturnVoidResult(NID_SHELL, pBuffer, E_OUT_OF_MEMORY, "[%s] Propagating.", GetErrorMessage(E_OUT_OF_MEMORY)); + + evas_data_argb_unpremul(static_cast(pBuffer), __size.width * __size.height); + OnRendered(); __pAppWidgetBuffer->UnlockBuffer(); -- 2.7.4