From a3dd1169dac8fac942f915de9b9d8e828f98ad07 Mon Sep 17 00:00:00 2001 From: Mariusz Grzegorczyk Date: Wed, 30 May 2012 07:05:50 +0000 Subject: [PATCH] From: Mariusz Grzegorczyk Subject: [E-devel] Ecore: Save proper evas engine buffer depth when _ecore_evas_resize is done I have found bug in ecore evas buffer. It is created by default as RGB32, and then it can be changed by ecore_evas_alpha_set function, but when resize is done it is always created as ARGB32. Patch in attachment checks in resize if alpha channel is set, and then set appropriate buffer depth. SVN revision: 71537 --- legacy/ecore/ChangeLog | 6 ++++++ legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/legacy/ecore/ChangeLog b/legacy/ecore/ChangeLog index 43d796216f..ec93cb57aa 100644 --- a/legacy/ecore/ChangeLog +++ b/legacy/ecore/ChangeLog @@ -692,3 +692,9 @@ 2012-05-30 Cedric Bail * Force cancel of all running Ecore_Thread on shutdown. + +2012-05-30 Mariusz Grzegorczyk + + * Small fix to ecore-evas buffer engine on resize to make the + right kind of buffer cavas (ARGB32 vs RGB32). + diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c index 4c81db74d1..9067adf39c 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c @@ -77,7 +77,10 @@ _ecore_evas_resize(Ecore_Evas *ee, int w, int h) einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas); if (einfo) { - einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; + if (ee->alpha) + einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; + else + einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_RGB32; einfo->info.dest_buffer = ee->engine.buffer.pixels; einfo->info.dest_buffer_row_bytes = stride; einfo->info.use_color_key = 0;