mirror of
https://github.com/brl/mutter.git
synced 2024-12-24 12:02:04 +00:00
iconcache: Fix icon data copy into cairo surface
The stride is in bytes but we're copying ints. https://bugzilla.gnome.org/show_bug.cgi?id=742825
This commit is contained in:
parent
73c4342580
commit
6609d9c6a4
@ -163,18 +163,18 @@ argbdata_to_surface (gulong *argb_data, int w, int h)
|
|||||||
{
|
{
|
||||||
cairo_surface_t *surface;
|
cairo_surface_t *surface;
|
||||||
int y, x, stride;
|
int y, x, stride;
|
||||||
uint8_t *data;
|
uint32_t *data;
|
||||||
|
|
||||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h);
|
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, w, h);
|
||||||
stride = cairo_image_surface_get_stride (surface);
|
stride = cairo_image_surface_get_stride (surface) / sizeof (uint32_t);
|
||||||
data = cairo_image_surface_get_data (surface);
|
data = (uint32_t *) cairo_image_surface_get_data (surface);
|
||||||
|
|
||||||
/* One could speed this up a lot. */
|
/* One could speed this up a lot. */
|
||||||
for (y = 0; y < h; y++)
|
for (y = 0; y < h; y++)
|
||||||
{
|
{
|
||||||
for (x = 0; x < w; x++)
|
for (x = 0; x < w; x++)
|
||||||
{
|
{
|
||||||
uint32_t *p = (uint32_t *) &data[y * stride + x];
|
uint32_t *p = &data[y * stride + x];
|
||||||
gulong *d = &argb_data[y * w + x];
|
gulong *d = &argb_data[y * w + x];
|
||||||
*p = *d;
|
*p = *d;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user