evas: take stride into account with swapbuf.
authorCedric Bail <cedric.bail@samsung.com>
Tue, 23 Apr 2013 07:48:27 +0000 (16:48 +0900)
committerCedric Bail <cedric.bail@samsung.com>
Tue, 23 Apr 2013 07:48:50 +0000 (16:48 +0900)
src/modules/evas/engines/software_x11/evas_xlib_swapbuf.c

index 2c83f6a..edcb63a 100644 (file)
@@ -230,16 +230,17 @@ evas_software_xlib_swapbuf_new_region_for_update(Outbuf *buf, int x, int y, int
              
              data = evas_xlib_swapper_buffer_map(buf->priv.swapper, &bpl, 
                                                  &(ww), &(hh));
+            // To take stride into account, we do use bpl as the real image width, but return the real useful one.
 #ifdef EVAS_CSERVE2
              if (evas_cserve2_use_get())
                im = (RGBA_Image *)evas_cache2_image_data(evas_common_image_cache2_get(),
-                                                         ww, hh, data,
+                                                         bpl / sizeof (int), hh, data,
                                                          buf->priv.destination_alpha, 
                                                          EVAS_COLORSPACE_ARGB8888);
              else
 #endif
                im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
-                                                        ww, hh, data,
+                                                        bpl / sizeof (int), hh, data,
                                                         buf->priv.destination_alpha, 
                                                         EVAS_COLORSPACE_ARGB8888);
              buf->priv.onebuf = im;