mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-03 05:28:01 +02:00
xcb: Fix _put_image_boxes() if no SHM is available
This function tries to use _cairo_xcb_connection_put_image() to do the actual work. However, that function can only be used for images with "native" stride. If we only want to upload a rectangle from within an image, the function _cairo_xcb_connection_put_subimage() has to be used. This function makes sure that the correct information is sent to the X11 server. No unit test for this, because we currently do not test the !SHM case automatically. Perhaps we should? Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
d31dc73f9b
commit
25a55822b4
1 changed files with 9 additions and 9 deletions
|
|
@ -691,15 +691,15 @@ _put_image_boxes (cairo_xcb_surface_t *surface,
|
|||
int y = _cairo_fixed_integer_part (b->p1.y);
|
||||
int width = _cairo_fixed_integer_part (b->p2.x - b->p1.x);
|
||||
int height = _cairo_fixed_integer_part (b->p2.y - b->p1.y);
|
||||
_cairo_xcb_connection_put_image (surface->connection,
|
||||
surface->drawable, gc,
|
||||
width, height,
|
||||
x, y,
|
||||
image->depth,
|
||||
image->stride,
|
||||
image->data +
|
||||
x * PIXMAN_FORMAT_BPP (image->pixman_format) / 8 +
|
||||
y * image->stride);
|
||||
_cairo_xcb_connection_put_subimage (surface->connection,
|
||||
surface->drawable, gc,
|
||||
x, y,
|
||||
width, height,
|
||||
PIXMAN_FORMAT_BPP (image->pixman_format) / 8,
|
||||
image->stride,
|
||||
x, y,
|
||||
image->depth,
|
||||
image->data);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue