evas: software_x11 - use evas_xlib_swapper_depth_get to get buffer stride.

Summary: when image cache is created, buffer's size should use stride value.

Test Plan: Create small size window, then try to resizing that.

Reviewers: tasn, seoz, raster, cedric

Reviewed By: cedric

CC: tasn, seoz, raster, cedric

Differential Revision: https://phab.enlightenment.org/D536

Signed-off-by: Cedric BAIL <cedric.bail@samsung.com>
This commit is contained in:
Wonsik Jung 2014-02-10 14:54:23 +09:00 committed by Cedric BAIL
parent 40c18743f4
commit 48b95c4538
1 changed files with 9 additions and 5 deletions

View File

@ -227,21 +227,25 @@ evas_software_xlib_swapbuf_new_region_for_update(Outbuf *buf, int x, int y, int
if (!im)
{
int ww = 0, hh = 0;
int d, bpp;
d = evas_xlib_swapper_depth_get(buf->priv.swapper);
bpp = d / 8;
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(),
bpl / sizeof (int), hh, data,
buf->priv.destination_alpha,
bpl/bpp, hh, data,
buf->priv.destination_alpha,
EVAS_COLORSPACE_ARGB8888);
else
#endif
im = (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(),
bpl / sizeof (int), hh, data,
buf->priv.destination_alpha,
bpl/bpp, hh, data,
buf->priv.destination_alpha,
EVAS_COLORSPACE_ARGB8888);
buf->priv.onebuf = im;
if (!im) return NULL;