forked from enlightenment/efl
fix some core swapper logic isue with rect updates... nasty nasty
nasty to catch! :( SVN revision: 82859
This commit is contained in:
parent
b86a5cd30f
commit
73b2f09b74
|
@ -275,7 +275,7 @@ evas_software_xlib_swapbuf_new_region_for_update(Outbuf *buf, int x, int y, int
|
||||||
im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
|
im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get());
|
||||||
if (!im)
|
if (!im)
|
||||||
{
|
{
|
||||||
free(rect);
|
eina_rectangle_free(rect);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
im->cache_entry.flags.alpha |= buf->priv.destination_alpha ? 1 : 0;
|
im->cache_entry.flags.alpha |= buf->priv.destination_alpha ? 1 : 0;
|
||||||
|
@ -313,7 +313,7 @@ evas_software_xlib_swapbuf_flush(Outbuf *buf)
|
||||||
Eina_Array_Iterator it;
|
Eina_Array_Iterator it;
|
||||||
unsigned int n, i;
|
unsigned int n, i;
|
||||||
RGBA_Image *im;
|
RGBA_Image *im;
|
||||||
|
|
||||||
n = eina_array_count_get(&buf->priv.onebuf_regions);
|
n = eina_array_count_get(&buf->priv.onebuf_regions);
|
||||||
if (n == 0) return;
|
if (n == 0) return;
|
||||||
rects = alloca(n * sizeof(Eina_Rectangle));
|
rects = alloca(n * sizeof(Eina_Rectangle));
|
||||||
|
@ -351,7 +351,6 @@ evas_software_xlib_swapbuf_flush(Outbuf *buf)
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
|
|
||||||
x = rect->x; y = rect->y; w = rect->w; h = rect->h;
|
x = rect->x; y = rect->y; w = rect->w; h = rect->h;
|
||||||
rects[i] = *rect;
|
|
||||||
if (buf->rot == 0)
|
if (buf->rot == 0)
|
||||||
{
|
{
|
||||||
rects[i].x = x;
|
rects[i].x = x;
|
||||||
|
@ -382,13 +381,14 @@ evas_software_xlib_swapbuf_flush(Outbuf *buf)
|
||||||
rects[i].w = h;
|
rects[i].w = h;
|
||||||
rects[i].h = w;
|
rects[i].h = w;
|
||||||
}
|
}
|
||||||
free(rect);
|
eina_rectangle_free(rect);
|
||||||
#ifdef EVAS_CSERVE2
|
#ifdef EVAS_CSERVE2
|
||||||
if (evas_cserve2_use_get())
|
if (evas_cserve2_use_get())
|
||||||
evas_cache2_image_close(&im->cache_entry);
|
evas_cache2_image_close(&im->cache_entry);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
evas_cache_image_drop(&im->cache_entry);
|
evas_cache_image_drop(&im->cache_entry);
|
||||||
|
i++;
|
||||||
}
|
}
|
||||||
evas_xlib_swapper_buffer_unmap(buf->priv.swapper);
|
evas_xlib_swapper_buffer_unmap(buf->priv.swapper);
|
||||||
evas_xlib_swapper_swap(buf->priv.swapper, rects, n);
|
evas_xlib_swapper_swap(buf->priv.swapper, rects, n);
|
||||||
|
|
|
@ -222,6 +222,7 @@ evas_xlib_swapper_free(X_Swapper *swp)
|
||||||
{
|
{
|
||||||
_buf_free(swp, &(swp->buf[i]));
|
_buf_free(swp, &(swp->buf[i]));
|
||||||
}
|
}
|
||||||
|
XFreeGC(swp->disp, swp->gc);
|
||||||
free(swp);
|
free(swp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue