mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 04:58:04 +02:00
Patch from Martin Kretzschmar <martink@gnome.org>, #3798
prevent sign-extension of masks.*_mask on 64bit architectures. ditto.
This commit is contained in:
parent
02c6aec91d
commit
95beb7be67
3 changed files with 17 additions and 8 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2005-07-16 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
Patch from Martin Kretzschmar <martink@gnome.org>, #3798
|
||||
|
||||
* src/cairo-xlib-surface.c (_get_image_surface): prevent
|
||||
sign-extension of masks.*_mask on 64bit architectures.
|
||||
|
||||
* src/cairo-xcb-surface.c (_get_image_surface): ditto.
|
||||
|
||||
2005-07-28 Owen Taylor <otaylor@redhat.com>
|
||||
|
||||
* src/cairo-image-surface.c (_cairo_image_surface_acquire_source,dest_image)
|
||||
|
|
|
|||
|
|
@ -481,10 +481,10 @@ _get_image_surface (cairo_xcb_surface_t *surface,
|
|||
masks.blue_mask = surface->visual->blue_mask;
|
||||
} else if (surface->has_format) {
|
||||
masks.bpp = bpp;
|
||||
masks.red_mask = surface->format.direct.red_mask << surface->format.direct.red_shift;
|
||||
masks.green_mask = surface->format.direct.green_mask << surface->format.direct.green_shift;
|
||||
masks.blue_mask = surface->format.direct.blue_mask << surface->format.direct.blue_shift;
|
||||
masks.alpha_mask = surface->format.direct.alpha_mask << surface->format.direct.alpha_shift;
|
||||
masks.red_mask = (unsigned long)surface->format.direct.red_mask << surface->format.direct.red_shift;
|
||||
masks.green_mask = (unsigned long)surface->format.direct.green_mask << surface->format.direct.green_shift;
|
||||
masks.blue_mask = (unsigned long)surface->format.direct.blue_mask << surface->format.direct.blue_shift;
|
||||
masks.alpha_mask = (unsigned long)surface->format.direct.alpha_mask << surface->format.direct.alpha_shift;
|
||||
} else {
|
||||
masks.bpp = bpp;
|
||||
masks.red_mask = 0;
|
||||
|
|
|
|||
|
|
@ -413,10 +413,10 @@ _get_image_surface (cairo_xlib_surface_t *surface,
|
|||
masks.blue_mask = surface->visual->blue_mask;
|
||||
} else if (surface->format) {
|
||||
masks.bpp = ximage->bits_per_pixel;
|
||||
masks.red_mask = surface->format->direct.redMask << surface->format->direct.red;
|
||||
masks.green_mask = surface->format->direct.greenMask << surface->format->direct.green;
|
||||
masks.blue_mask = surface->format->direct.blueMask << surface->format->direct.blue;
|
||||
masks.alpha_mask = surface->format->direct.alphaMask << surface->format->direct.alpha;
|
||||
masks.red_mask = (unsigned long)surface->format->direct.redMask << surface->format->direct.red;
|
||||
masks.green_mask = (unsigned long)surface->format->direct.greenMask << surface->format->direct.green;
|
||||
masks.blue_mask = (unsigned long)surface->format->direct.blueMask << surface->format->direct.blue;
|
||||
masks.alpha_mask = (unsigned long)surface->format->direct.alphaMask << surface->format->direct.alpha;
|
||||
} else {
|
||||
masks.bpp = ximage->bits_per_pixel;
|
||||
masks.red_mask = 0;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue