forked from enlightenment/efl
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:
parent
40c18743f4
commit
48b95c4538
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue