From: Mariusz Grzegorczyk <mariusz.g@samsung.com>
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 30 May 2012 07:05:50 +0000 (07:05 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 30 May 2012 07:05:50 +0000 (07:05 +0000)
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
src/lib/ecore_evas/ecore_evas_buffer.c

index 43d7962..ec93cb5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 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).
+
index 4c81db7..9067adf 100644 (file)
@@ -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;