From 266ed850304eb3bd31c167413efb0681faeab0cc Mon Sep 17 00:00:00 2001 From: raster 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. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/ecore@71537 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- ChangeLog | 6 ++++++ src/lib/ecore_evas/ecore_evas_buffer.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 43d7962..ec93cb5 100644 --- a/ChangeLog +++ b/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/src/lib/ecore_evas/ecore_evas_buffer.c b/src/lib/ecore_evas/ecore_evas_buffer.c index 4c81db7..9067adf 100644 --- a/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/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; -- 2.7.4